public final Collection<Class<? extends ConfiguredObject>> getAncestorCategories(Class<? extends ConfiguredObject> category) { Set<Class<? extends ConfiguredObject>> allAncestors = new HashSet<>(); Class<? extends ConfiguredObject> clazz = getParentType(category); if(clazz != null) { if(allAncestors.add(clazz)) { allAncestors.addAll(getAncestorCategories(clazz)); } } return allAncestors; }
public Class<? extends ConfiguredObject> getAncestorClassWithGivenDescendant( final Class<? extends ConfiguredObject> category, final Class<? extends ConfiguredObject> descendantClass) { Collection<Class<? extends ConfiguredObject>> candidateClasses = Collections.<Class<? extends ConfiguredObject>>singleton(category); while(!candidateClasses.isEmpty()) { for(Class<? extends ConfiguredObject> candidate : candidateClasses) { if(hasDescendant(candidate, descendantClass)) { return candidate; } } Set<Class<? extends ConfiguredObject>> previous = new HashSet<>(candidateClasses); candidateClasses = new HashSet<>(); for(Class<? extends ConfiguredObject> prev : previous) { final Class<? extends ConfiguredObject> parentType = getParentType(prev); if(parentType != null) { candidateClasses.add(parentType); } } } return null; }
while (!rootClass.equals(parentCategory = model.getParentType(category)))
@Override public Map<String, UUID> getParents() { Map<String, UUID> parents = new LinkedHashMap<>(); Class<? extends ConfiguredObject> parentClass = getModel().getParentType(getCategoryClass()); ConfiguredObject parent = (ConfiguredObject) getParent(); if(parent != null) { parents.put(parentClass.getSimpleName(), parent.getId()); } return parents; }
private Class<? extends ConfiguredObject> findAncestorCategoryBySimpleClassName(String targetCategorySimpleClassName, Class<? extends ConfiguredObject> objectCategory) { if (targetCategorySimpleClassName.equals(objectCategory.getSimpleName().toLowerCase())) { return objectCategory; } Class<? extends ConfiguredObject> parentCategory = _object.getModel().getParentType(objectCategory); if(parentCategory != null) { Class<? extends ConfiguredObject> targetCategoryClass = findAncestorCategoryBySimpleClassName(targetCategorySimpleClassName, parentCategory); if (targetCategoryClass != null) { return targetCategoryClass; } } return null; } }
brokerModel.getParentType(element); if(parentType == null)
model.getParentType(_classNameMapping.get(record.getType())); if (parentType != null)
model.getParentType(element); if(parentType == null) model.getParentType(element); if (parentType == null)
Class<? extends ConfiguredObject> parentClass = model.getParentType(objClass); for (int i = hierarchy.length - 2; i >= 0; i--)
.getChildTypes(object.getCategoryClass())) Class<? extends ConfiguredObject> parentClass = model.getParentType(childClass); if (parentClass.equals(object.getCategoryClass()))
public <C> C getAncestor(final Class<C> ancestorClass, final Class<? extends ConfiguredObject> category, final ConfiguredObject<?> object) { if(ancestorClass.isInstance(object)) { return (C) object; } else { Class<? extends ConfiguredObject> parentClass = getParentType(category); if(parentClass != null) { ConfiguredObject<?> parent = object.getParent(); C ancestor = getAncestor(ancestorClass, parentClass, parent); if (ancestor != null) { return ancestor; } } } return null; }
static void generateInheritedContext(final Model model, final ConfiguredObject<?> object, final Map<String, String> inheritedContext) { Class<? extends ConfiguredObject> parentClass = model.getParentType(object.getCategoryClass()); if(parentClass != null) { ConfiguredObject parent = object.getParent(); if(parent != null) { generateInheritedContext(model, parent, inheritedContext); } } if(object.getContext() != null) { inheritedContext.putAll(object.getContext()); } }
Model model = configuredObject.getModel(); Class<? extends ConfiguredObject> parentClass = model.getParentType(categoryClass); if (parentClass != null)
@Override public void childAdded(ConfiguredObject<?> object, ConfiguredObject<?> child) { if (!object.managesChildStorage()) { if(object.isDurable() && child.isDurable()) { Model model = child.getModel(); Class<? extends ConfiguredObject> parentType = model.getParentType(child.getCategoryClass()); if(parentType.equals(object.getCategoryClass())) { child.addChangeListener(this); _store.update(true, child.asObjectRecord()); Class<? extends ConfiguredObject> categoryClass = child.getCategoryClass(); Collection<Class<? extends ConfiguredObject>> childTypes = model.getChildTypes(categoryClass); for (Class<? extends ConfiguredObject> childClass : childTypes) { for (ConfiguredObject<?> grandchild : child.getChildren(childClass)) { childAdded(child, grandchild); } } } } } }