/** * Result of a successful read-resource operation. * * @param description description of the result of a read-resource operation. * @param childNames the children (if any) of the managed resource. * */ public ReadResourceModel(String description, Set<String> childNames) { if (description == null) throw new IllegalArgumentException("description was null"); if (childNames == null) throw new IllegalArgumentException("childNames was null"); this.description = description; this.children = new ArrayList<NamedDescription>(childNames.size()); for (String childName : childNames) { // Core implementation will add the descriptions after so 'dynamic' extensions don't have to. children.add(new NamedDescription(childName, null)); } childDescriptionsSet = false; }
@Override public ReadResourceModel execute(OperationContext operationContext) { ManagedResource resource = operationContext.getManagedResource(); PathAddress address = operationContext.getAddress(); Set<String> children = resource.getSubResourceNames(address); ReadResourceModel readResourceModel = new ReadResourceModel("Available operations and children (sub-resources).", children); // Set children descriptions for (String child : children) { ManagedDescription desc = resource.getResourceDescription(address.append(child)); readResourceModel.setChildDescription(child, desc.getDescription()); } // Set operation descriptions Map<String, ManagedDescription> descriptions = resource.getOperationDescriptions(address); for (Map.Entry<String, ManagedDescription> desc : descriptions.entrySet()) { readResourceModel.addOperation(new NamedDescription(desc.getKey(), desc.getValue().getDescription())); } return readResourceModel; }
for (Map.Entry<String, ManagedDescription> desc : descriptions.entrySet()) readResource.addOperation(new NamedDescription(desc.getKey(), desc.getValue().getDescription()));