public <T> boolean isSettedFeature(Feature<T> feature) { if (getFeatureType() != feature.getType()) { throw new RuntimeException( "Try to check a feature of type:" + feature.getType() + " on a SchemaFeature of type:" + getFeatureType()); } if (hasFeature(feature)) return true; if (parent == null) return false; return parent.isSettedFeature(feature); }