private String getOnlyValidChildTypeIfKnown(final ConfiguredObject<?> parent, final String category) { if(parent != null) { final Collection<String> validChildTypes = _model.getTypeRegistry().getValidChildTypes(parent.getTypeClass(), category); if (validChildTypes != null && validChildTypes.size() == 1) { return validChildTypes.iterator().next(); } } return null; }
private void processAssociations(final ConfiguredObject<?> object) { _associatedOperations.computeIfAbsent(object.getTypeClass(), aClass -> new HashSet<>(_typeRegistry.getOperations(object.getTypeClass(), operation -> operation.isAssociateAsIfChildren() && returnsCollectionOfConfiguredObjects( operation)).values())); for(ConfiguredObjectOperation<?> operation : _associatedOperations.get(object.getTypeClass())) { @SuppressWarnings("unchecked") ConfiguredObjectOperation<ConfiguredObject<?>> configuredObjectOperation = (ConfiguredObjectOperation<ConfiguredObject<?>>) operation; @SuppressWarnings("unchecked") Collection<? extends ConfiguredObject<?>> associatedChildren = (Collection<? extends ConfiguredObject<?>>) configuredObjectOperation.perform(object, Collections.emptyMap()); if (associatedChildren != null && !associatedChildren.isEmpty()) { associatedChildren.forEach(this::processChild); } } }
private boolean managesChildren(final ConfiguredObject<?> object) { return managesChildren(object.getCategoryClass()) || managesChildren(object.getTypeClass()); }
|| object.getTypeClass().getAnnotation(ManagedObject.class).managesChildren()))