下面列出了org.apache.commons.lang3.StringUtils#compareIgnoreCase ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private int _compare(Object o1, Object o2) {
// NOTE: helper method that compares object in much the same way as
if (o1 instanceof String && o2 instanceof String) {
// sort string case insensitively
return StringUtils.compareIgnoreCase((String)o1, (String)o2);
} else if (o1 instanceof Comparable && o2 instanceof Comparable) {
// compare comparable objects
return ((Comparable)o1).compareTo((Comparable)o2);
} else if (o1 instanceof TopicIF && o2 instanceof TopicIF) {
// compare topics
TopicIF t1 = (TopicIF)o1;
TopicIF t2 = (TopicIF)o2;
String s1 = sort.toString(t1);
String s2 = sort.toString(t2);
return StringUtils.compareIgnoreCase(s1, s2);
}
//! else if (o1 instanceof TMObjectIF && o2 instanceof TMObjectIF) {
//! // compare tmobjects
//! TMObjectIF t1 = (TMObjectIF)o1;
//! TMObjectIF t2 = (TMObjectIF)o2;
//! return ObjectUtils.compareIgnoreCase(t1.getObjectId(), t2.getObjectId());
//! }
throw new OntopiaRuntimeException("Unsupported sort keys: " + o1 + " and " + o2);
}
/**
* INTERNAL: Compares two TopicMapReferenceIFs.
*/
@Override
public int compare(TopicMapReferenceIF tmr1, TopicMapReferenceIF tmr2) {
String title1 = tmr1.getTitle();
String title2 = tmr2.getTitle();
return StringUtils.compareIgnoreCase(title1, title2);
}
@Override
public int compare(Topic t1, Topic t2) {
if (t1 == null && t2 == null) return 0;
else if (t1 == null)
return 1;
else if (t2 == null)
return -1;
return StringUtils.compareIgnoreCase(t1.getName(), t2.getName());
}
/**
* Returns the priority for scan based filtering. Multivalue column evaluation is costly, so
* reorder such that multivalue columns are evaluated after single value columns.
*
* TODO: additional cost based prioritization to be added
*
* @param scanBasedFilterOperator the filter operator to prioritize
* @param debugOptions debug-options to enable/disable the optimization
* @return the priority to be associated with the filter
*/
private static int getScanBasedFilterPriority(ScanBasedFilterOperator scanBasedFilterOperator, int basePriority,
@Nullable Map<String, String> debugOptions) {
if (debugOptions != null
&& StringUtils.compareIgnoreCase(debugOptions.get(USE_SCAN_REORDER_OPTIMIZATION), "false") == 0) {
return basePriority;
}
if (scanBasedFilterOperator.getDataSourceMetadata().isSingleValue()) {
return basePriority;
} else {
// Lower priority for multi-value column
return basePriority + 1;
}
}
@Override
public int compare(Object o1, Object o2) {
TopicNameIF n1 = (TopicNameIF)o1;
TopicNameIF n2 = (TopicNameIF)o2;
return StringUtils.compareIgnoreCase(n1.getValue(), n2.getValue());
}
@Override
public int compare(Object o1, Object o2) {
OccurrenceIF occ1 = (OccurrenceIF)o1;
OccurrenceIF occ2 = (OccurrenceIF)o2;
return StringUtils.compareIgnoreCase(occ1.getValue(), occ2.getValue());
}
@Override
public int compare(Object o1, Object o2) {
LocatorIF i1 = (LocatorIF)o1;
LocatorIF i2 = (LocatorIF)o2;
return StringUtils.compareIgnoreCase(i1.getAddress(), i2.getAddress());
}
@Override
public int compare(TopicMapReference r1, TopicMapReference r2) {
return StringUtils.compareIgnoreCase(r1.getName(), r2.getName());
}