import java.util.StringTokenizer;
-import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import eu.etaxonomy.cdm.common.AbstractStringComparator;
import eu.etaxonomy.cdm.common.CdmUtils;
extends AbstractStringComparator<TaxonNode>
implements ITaxonNodeComparator<TaxonNode> {
- private static final String HYBRID_SIGN = UTF8.HYBRID.toString();
+ private static final Logger logger = LogManager.getLogger();
- private static final Logger logger = LogManager.getLogger(TaxonNodeByNameComparator.class);
+ private static final String HYBRID_SIGN = UTF8.HYBRID.toString();
private boolean ignoreHybridSign = true;
private boolean sortInfraGenericFirst = true;
String titleCache = null;
if(taxonNode.getTaxon() != null && taxonNode.getTaxon().getName() != null ){
- TaxonName name = HibernateProxyHelper.deproxy(taxonNode.getTaxon().getName(), TaxonName.class);
+ TaxonName name = HibernateProxyHelper.deproxy(taxonNode.getTaxon().getName());
if (name.isNonViral()){
if (logger.isTraceEnabled()){logger.trace(name + " isNonViralName");}
* @author k.luther
* @since 18.03.2010
*/
-public class TaxonNodeByRankAndNameComparator extends TaxonNodeByNameComparator implements Serializable {
+public class TaxonNodeByRankAndNameComparator
+ extends TaxonNodeByNameComparator
+ implements Serializable {
private static final long serialVersionUID = 2596641007876609704L;
return rankOrder;
}else {
List<TaggedText> taggedText1 = getTaggedText(node1);
- List<TaggedText> taggedText2 = getTaggedText(node2);;
+ List<TaggedText> taggedText2 = getTaggedText(node2);
if (taggedText1 != null && taggedText2 != null){
//same rank, order by name
*/
public class TaxonNodeNaturalComparator implements Comparator<TaxonNode> {
- @SuppressWarnings("null")
- @Override
+ @Override
public int compare(TaxonNode node1, TaxonNode node2) {
- // System.out.println("compare node 1: "+ node1.getTaxon().getTitleCache() + " - node 2: " + node2.getTaxon().getTitleCache());
if (node1.equals(node2)) {
return 0;
}
for (int i = 0; i < splitNode1.length; i++){
if (!splitNode1[i].equals(splitNode2[i])){
- // take the last equal ancestor and compare the sortindex
- if (lastEqualAncestorTreeIndex != null){
- TaxonNode lastEqualTreeIndexAncestorNode1 = null;
- TaxonNode lastEqualTreeIndexAncestorNode2 = null;
- for (TaxonNode next1 :ancestorAndNode1){
- if (next1.treeIndex().equals(lastEqualAncestorTreeIndex+"#"+splitNode1[i]+ "#") ){
- lastEqualTreeIndexAncestorNode1 = next1;
- }
+ // take the last equal ancestor and compare the sortindex
+ TaxonNode lastEqualTreeIndexAncestorNode1 = null;
+ TaxonNode lastEqualTreeIndexAncestorNode2 = null;
+ for (TaxonNode next1 :ancestorAndNode1){
+ if (next1.treeIndex().equals(lastEqualAncestorTreeIndex+"#"+splitNode1[i]+ "#") ){
+ lastEqualTreeIndexAncestorNode1 = next1;
}
- for (TaxonNode next2 :ancestorAndNode2){
- if (next2.treeIndex().equals(lastEqualAncestorTreeIndex+"#"+splitNode2[i]+ "#")){
- lastEqualTreeIndexAncestorNode2 = next2;
- }
- }
- if (lastEqualTreeIndexAncestorNode1 != null) {
-
+ }
+ for (TaxonNode next2 :ancestorAndNode2){
+ if (next2.treeIndex().equals(lastEqualAncestorTreeIndex+"#"+splitNode2[i]+ "#")){
+ lastEqualTreeIndexAncestorNode2 = next2;
}
- return lastEqualTreeIndexAncestorNode1.getSortIndex().compareTo(lastEqualTreeIndexAncestorNode2.getSortIndex());
}
+ if (lastEqualTreeIndexAncestorNode1 != null && lastEqualTreeIndexAncestorNode2 != null) {
+ return lastEqualTreeIndexAncestorNode1.getSortIndex().compareTo(lastEqualTreeIndexAncestorNode2.getSortIndex());
+ } //TODO do we need "else" here?
}
if (!splitNode1[i].equals("")){
lastEqualAncestorTreeIndex = lastEqualAncestorTreeIndex+"#"+splitNode1[i];