public Map<String, ConfiguredObjectOperation<?>> getOperations(final Class<? extends ConfiguredObject> clazz) { return getOperations(clazz, null); }
private void writeOperations(final PrintWriter writer, final Class<? extends ConfiguredObject> configuredClass, final Model model, final List<Class<? extends ConfiguredObject>> types) { writer.println("<a name=\"types\"><h2>Operations</h2></a>"); writer.println("<h2>Common Operations</h2>"); Collection<ConfiguredObjectOperation<?>> categoryOperations = model.getTypeRegistry().getOperations(configuredClass).values(); writeOperationsTables(writer, categoryOperations); for(Class<? extends ConfiguredObject> type : types) { String typeName = getTypeName(type, model); Set<ConfiguredObjectOperation<?>> typeSpecificOperations = new HashSet<>(model.getTypeRegistry().getOperations(type).values()); typeSpecificOperations.removeAll(categoryOperations); if(!typeSpecificOperations.isEmpty() && type != configuredClass) { writer.println("<h2><span class=\"type\">"+typeName+"</span> Specific Operations</h2>"); writeOperationsTables(writer, typeSpecificOperations); } } }
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); } } }
_typeRegistry.getOperations(subject.getClass());
private Map<String, Map> processOperations(final Class<? extends ConfiguredObject> type, final Model model) model.getTypeRegistry().getOperations(type).values();
public ConfiguredObjectFinder(final ConfiguredObject<?> root) { _root = root; _model = root.getModel(); final Class<? extends ConfiguredObject> managedCategory = root.getCategoryClass(); addManagedHierarchies(managedCategory, managedCategory); for (ConfiguredObjectOperation operation : _model.getTypeRegistry().getOperations(managedCategory).values()) { if (operation.isAssociateAsIfChildren() && returnsCollectionOfConfiguredObjects(operation)) { Class<? extends ConfiguredObject> associatedChildCategory = (getCollectionMemberType((ParameterizedType) operation.getGenericReturnType())); _associatedChildrenOperations.put(associatedChildCategory, operation); addManagedHierarchies(associatedChildCategory, associatedChildCategory); } } }
model.getTypeRegistry().getOperations(_configuredObject.getClass()); final ConfiguredObjectOperation operation = availableOperations.get(operationName); if (operation == null)
root.getModel().getTypeRegistry().getOperations(target.getClass()); final ConfiguredObjectOperation operation = availableOperations.get(operationName); if (operation == null)