return features.iterator();
}else if(o instanceof FeatureType){
final FeatureType ct = (FeatureType) o;
return new PropTypeIterator(ct.getProperties(true).iterator(),false);
}else if(o instanceof FeatureAssociationRole){
<BUG>final FeatureAssociationRole ct = (FeatureAssociationRole) o;
return new PropTypeIterator(ct.getValueType().getProperties(true).iterator(),false);
}</BUG>
return JaxenConstants.EMPTY_ITERATOR;
}

return features.iterator();
}else if(o instanceof FeatureType){
final FeatureType ct = (FeatureType) o;
return new PropTypeIterator(ct.getProperties(true).iterator(),false);
}else if(o instanceof FeatureAssociationRole){
final FeatureAssociationRole ct = (FeatureAssociationRole) o;
try {
return new PropTypeIterator(ct.getValueType().getProperties(true).iterator(),false);
} catch(IllegalStateException ex) {
}
}
return JaxenConstants.EMPTY_ITERATOR;
}
