3 * <p>TaxonNodePropertyTester class.</p>
8 package eu
.etaxonomy
.taxeditor
.navigation
.navigator
;
10 import java
.util
.ArrayList
;
11 import java
.util
.Collection
;
13 import org
.eclipse
.core
.expressions
.PropertyTester
;
15 import eu
.etaxonomy
.cdm
.model
.taxon
.Classification
;
16 import eu
.etaxonomy
.cdm
.model
.taxon
.Taxon
;
17 import eu
.etaxonomy
.cdm
.model
.taxon
.TaxonNode
;
18 public class TaxonNodePropertyTester
extends PropertyTester
{
20 private static final Object HAS_SYNONYMS
= "hasSynonyms"; //$NON-NLS-1$
21 private static final Object HAS_TAXA
= "hasTaxa"; //$NON-NLS-1$
22 private static final Object IS_CLASSIFICATION
= "isClassification"; //$NON-NLS-1$
25 public boolean test(Object receiver
, String property
, Object
[] args
,
26 Object expectedValue
) {
27 if (receiver
instanceof Collection
){
28 if (((Collection
)receiver
).iterator().hasNext()){
29 receiver
= ((Collection
)receiver
).iterator().next();
32 if (receiver
instanceof TaxonNode
&& HAS_SYNONYMS
.equals(property
)) {
33 Taxon taxon
= ((TaxonNode
) receiver
).getTaxon();
35 return taxon
.hasSynonyms();
39 if (receiver
instanceof TaxonNode
&& HAS_TAXA
.equals(property
)) {
40 TaxonNode node
= (TaxonNode
) receiver
;
41 if (!node
.hasTaxon()){
42 return node
.getChildNodes().size() > 0;
47 if (receiver
instanceof TaxonNode
&& IS_CLASSIFICATION
.equals(property
)) {
48 TaxonNode node
= (TaxonNode
) receiver
;
49 return !node
.hasTaxon();