int getPropertiesCount() { PropertyMap primaryParent = getPrimaryParent(); if (primaryParent == null) { return this.properties.size(); } Set<String> props = new HashSet<>(); collectPropertyNames(props); return props.size(); }
int getPropertiesCount() { PropertyMap primaryParent = getPrimaryParent(); if (primaryParent == null) { return this.properties.size(); } Set<String> props = new HashSet<String>(); collectPropertyNames(props); return props.size(); }
void collectPropertyNames(Set<String> props) { props.addAll(properties.keySet()); PropertyMap primaryParent = getPrimaryParent(); if (primaryParent != null) { primaryParent.collectPropertyNames(props); } for (PropertyMap p : getSecondaryParents()) { if (p != null) { p.collectPropertyNames(props); } } }
private void collectPropertyNamesHelper( Set<String> props, Set<PropertyMap> cache) { if (!cache.add(this)) { return; } props.addAll(properties.keySet()); PropertyMap primaryParent = getPrimaryParent(); if (primaryParent != null) { primaryParent.collectPropertyNamesHelper(props, cache); } for (ObjectType o : getSecondaryParentObjects()) { PropertyMap p = o.getPropertyMap(); if (p != null) { p.collectPropertyNamesHelper(props, cache); } } }
Property getSlot(String name) { if (properties.containsKey(name)) { return properties.get(name); } PropertyMap primaryParent = getPrimaryParent(); if (primaryParent != null) { Property prop = primaryParent.getSlot(name); if (prop != null) { return prop; } } for (PropertyMap p : getSecondaryParents()) { if (p != null) { Property prop = p.getSlot(name); if (prop != null) { return prop; } } } return null; }
Property getSlot(String name) { Property prop = properties.get(name); if (prop != null) { return prop; } PropertyMap primaryParent = getPrimaryParent(); if (primaryParent != null) { prop = primaryParent.getSlot(name); if (prop != null) { return prop; } } for (ObjectType o : getSecondaryParentObjects()) { PropertyMap p = o.getPropertyMap(); if (p != null) { prop = p.getSlot(name); if (prop != null) { return prop; } } } return null; }