public CompositeDataResourceBuilder(CompositeData resData) { CompositeData[] capsData = (CompositeData[]) resData.get(CompositeDataResourceType.ITEM_CAPABILITIES); for(CompositeData capData : capsData) { String namespace = (String) capData.get(CapabilityType.ITEM_NAMESPACE); CompositeData[] attsData = (CompositeData[]) capData.get(CapabilityType.ITEM_ATTRIBUTES); Map<String, Object> atts = getAttributes(attsData); CompositeData[] dirsData = (CompositeData[]) capData.get(CapabilityType.ITEM_DIRECTIVES); Map<String, String> dirs = getDirectives(dirsData); addCapability(namespace, atts, dirs); } CompositeData[] reqsData = (CompositeData[]) resData.get(CompositeDataResourceType.ITEM_REQUIREMENTS); for(CompositeData reqData : reqsData) { String namespace = (String) reqData.get(CapabilityType.ITEM_NAMESPACE); CompositeData[] attsData = (CompositeData[]) reqData.get(RequirementType.ITEM_ATTRIBUTES); Map<String, Object> atts = getAttributes(attsData); CompositeData[] dirsData = (CompositeData[]) reqData.get(RequirementType.ITEM_DIRECTIVES); Map<String, String> dirs = getDirectives(dirsData); addRequirement(namespace, atts, dirs); } }