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) { 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; }