Skip to content

Commit 4c4dc50

Browse files
stokitoguusdk
authored andcommitted
refactor: Use Java features
Use switch instead of if chain. Use CASE_INSENSITIVE_ORDER
1 parent 659cd0c commit 4c4dc50

1 file changed

Lines changed: 71 additions & 60 deletions

File tree

src/java/org/jivesoftware/openfire/plugin/SearchPlugin.java

Lines changed: 71 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@
6767
import org.xmpp.resultsetmanagement.ResultSet;
6868
import org.xmpp.resultsetmanagement.ResultSetImpl;
6969

70+
import static java.lang.String.CASE_INSENSITIVE_ORDER;
71+
7072
/**
7173
* Provides support for Jabber Search (<a href="http://www.xmpp.org/extensions/xep-0055.html">XEP-0055</a>).
7274
* <p>
@@ -100,23 +102,22 @@ public class SearchPlugin implements Component, Plugin, PropertyEventListener {
100102

101103
private static String serverName;
102104

103-
private TreeMap<String, String> fieldLookup = new TreeMap<String, String>(new CaseInsensitiveComparator());
105+
private TreeMap<String, String> fieldLookup = new TreeMap<>(CASE_INSENSITIVE_ORDER);
104106
private Map<String, String> reverseFieldLookup = new HashMap<String, String>();
105107

106108
/**
107109
* A list of field names that are valid in jabber:iq:search
108110
*/
109-
public final static Collection<String> validSearchRequestFields = new ArrayList<String>();
110-
static {
111-
validSearchRequestFields.add("first");
112-
validSearchRequestFields.add("last");
113-
validSearchRequestFields.add("nick");
114-
validSearchRequestFields.add("email");
115-
validSearchRequestFields.add("x"); // extended info
111+
public final static Collection<String> validSearchRequestFields = Arrays.asList(
112+
"first",
113+
"last",
114+
"nick",
115+
"email",
116+
"x", // extended info
116117

117118
// result set management (XEP-0059)
118-
validSearchRequestFields.add("set");
119-
}
119+
"set"
120+
);
120121

121122
public SearchPlugin() {
122123
serviceName = JiveGlobals.getProperty(SERVICENAME, "search");
@@ -284,17 +285,22 @@ private IQ handleIQRequest(IQ iq) {
284285
return replyPacket;
285286
}
286287

287-
if (namespace.equals(NAMESPACE_JABBER_IQ_SEARCH)) {
288-
replyPacket = handleSearchRequest(iq);
289-
} else if (namespace.equals(IQDiscoInfoHandler.NAMESPACE_DISCO_INFO)) {
290-
replyPacket = handleDiscoInfo(iq);
291-
} else if (namespace.equals(IQDiscoItemsHandler.NAMESPACE_DISCO_ITEMS)) {
292-
replyPacket = IQ.createResultIQ(iq);
293-
replyPacket.setChildElement("query", IQDiscoItemsHandler.NAMESPACE_DISCO_ITEMS);
294-
} else {
295-
// don't known what to do with this.
296-
replyPacket = IQ.createResultIQ(iq);
297-
replyPacket.setError(Condition.feature_not_implemented);
288+
switch (namespace) {
289+
case NAMESPACE_JABBER_IQ_SEARCH:
290+
replyPacket = handleSearchRequest(iq);
291+
break;
292+
case IQDiscoInfoHandler.NAMESPACE_DISCO_INFO:
293+
replyPacket = handleDiscoInfo(iq);
294+
break;
295+
case IQDiscoItemsHandler.NAMESPACE_DISCO_ITEMS:
296+
replyPacket = IQ.createResultIQ(iq);
297+
replyPacket.setChildElement("query", IQDiscoItemsHandler.NAMESPACE_DISCO_ITEMS);
298+
break;
299+
default:
300+
// don't known what to do with this.
301+
replyPacket = IQ.createResultIQ(iq);
302+
replyPacket.setError(Condition.feature_not_implemented);
303+
break;
298304
}
299305

300306
return replyPacket;
@@ -784,19 +790,22 @@ private IQ replyNonDataFormResult(Collection<User> users, IQ packet) {
784790

785791
// return to the client the same fields that were submitted
786792
for (String field : reverseFieldLookup.keySet()) {
787-
if ("Username".equals(field)) {
788-
Element element = item.addElement(reverseFieldLookup.get(field));
789-
element.addText(username);
790-
}
791-
792-
if ("Name".equals(field)) {
793-
Element element = item.addElement(reverseFieldLookup.get(field));
794-
element.addText(user.isNameVisible() ? removeNull(user.getName()) : "");
795-
}
796-
797-
if ("Email".equals(field)) {
798-
Element element = item.addElement(reverseFieldLookup.get(field));
799-
element.addText(user.isEmailVisible() ? removeNull(user.getEmail()) : "");
793+
switch (field) {
794+
case "Username": {
795+
Element element = item.addElement(reverseFieldLookup.get(field));
796+
element.addText(username);
797+
break;
798+
}
799+
case "Name": {
800+
Element element = item.addElement(reverseFieldLookup.get(field));
801+
element.addText(user.isNameVisible() ? removeNull(user.getName()) : "");
802+
break;
803+
}
804+
case "Email": {
805+
Element element = item.addElement(reverseFieldLookup.get(field));
806+
element.addText(user.isEmailVisible() ? removeNull(user.getEmail()) : "");
807+
break;
808+
}
800809
}
801810
}
802811
}
@@ -843,7 +852,7 @@ public boolean getServiceEnabled() {
843852
*/
844853
public void setServiceEnabled(boolean enabled) {
845854
serviceEnabled = enabled;
846-
JiveGlobals.setProperty(SERVICEENABLED, enabled ? "true" : "false");
855+
JiveGlobals.setProperty(SERVICEENABLED, Boolean.toString(enabled));
847856
}
848857

849858
/**
@@ -897,7 +906,7 @@ public boolean isGroupOnly() {
897906
*/
898907
public void setGroupOnly(boolean groupOnly) {
899908
this.groupOnly = groupOnly;
900-
JiveGlobals.setProperty(GROUPONLY, groupOnly ? "true" : "false");
909+
JiveGlobals.setProperty(GROUPONLY, Boolean.toString(groupOnly));
901910
}
902911

903912
/*
@@ -906,14 +915,19 @@ public void setGroupOnly(boolean groupOnly) {
906915
* @see org.jivesoftware.util.PropertyEventListener#propertySet(java.lang.String, java.util.Map)
907916
*/
908917
public void propertySet(String property, Map<String, Object> params) {
909-
if (property.equals(SERVICEENABLED)) {
910-
this.serviceEnabled = Boolean.parseBoolean((String) params.get("value"));
911-
} else if (property.equals(SERVICENAME)) {
912-
changeServiceName((String) params.get("value"));
913-
} else if (property.equals(EXCLUDEDFIELDS)) {
914-
excludedFields = StringUtils.stringToCollection(JiveGlobals.getProperty(EXCLUDEDFIELDS, (String) params.get("value")));
915-
} else if (property.equals(GROUPONLY)) {
916-
this.groupOnly = Boolean.parseBoolean((String) params.get("value"));
918+
switch (property) {
919+
case SERVICEENABLED:
920+
this.serviceEnabled = Boolean.parseBoolean((String) params.get("value"));
921+
break;
922+
case SERVICENAME:
923+
changeServiceName((String) params.get("value"));
924+
break;
925+
case EXCLUDEDFIELDS:
926+
excludedFields = StringUtils.stringToCollection(JiveGlobals.getProperty(EXCLUDEDFIELDS, (String) params.get("value")));
927+
break;
928+
case GROUPONLY:
929+
this.groupOnly = Boolean.parseBoolean((String) params.get("value"));
930+
break;
917931
}
918932
}
919933

@@ -923,14 +937,19 @@ public void propertySet(String property, Map<String, Object> params) {
923937
* @see org.jivesoftware.util.PropertyEventListener#propertyDeleted(java.lang.String, java.util.Map)
924938
*/
925939
public void propertyDeleted(String property, Map<String, Object> params) {
926-
if (property.equals(SERVICEENABLED)) {
927-
this.serviceEnabled = true;
928-
} else if (property.equals(SERVICENAME)) {
929-
changeServiceName("search");
930-
} else if (property.equals(EXCLUDEDFIELDS)) {
931-
excludedFields = new ArrayList<String>();
932-
} else if (property.equals(GROUPONLY)) {
933-
this.groupOnly = false;
940+
switch (property) {
941+
case SERVICEENABLED:
942+
this.serviceEnabled = true;
943+
break;
944+
case SERVICENAME:
945+
changeServiceName("search");
946+
break;
947+
case EXCLUDEDFIELDS:
948+
excludedFields = new ArrayList<>();
949+
break;
950+
case GROUPONLY:
951+
this.groupOnly = false;
952+
break;
934953
}
935954
}
936955

@@ -977,14 +996,6 @@ private void changeServiceName(String serviceName) {
977996
this.serviceName = serviceName;
978997
}
979998

980-
/**
981-
* Comparator that compares String objects, ignoring capitalization.
982-
*/
983-
private class CaseInsensitiveComparator implements Comparator<String> {
984-
public int compare(String s1, String s2) {
985-
return s1.compareToIgnoreCase(s2);
986-
}
987-
}
988999

9891000
/**
9901001
* Returns the trimmed argument, or an empty String object of null was supplied as an argument.

0 commit comments

Comments
 (0)