+
+ private Optional<ComponentInstanceProperty> getProperty(final Component parentComponent, final String componentInstanceId,
+ final String capabilityName, final String propertyName) {
+
+ if (StringUtils.isEmpty(capabilityName)) {
+ return parentComponent.getComponentInstancesProperties().get(componentInstanceId).stream()
+ .filter(property -> propertyName.equals(property.getName())).findFirst();
+ } else {
+ final Optional<ComponentInstance> componentInstanceOptional = parentComponent.getComponentInstances().stream()
+ .filter(componentInstance -> componentInstance.getUniqueId().equals(componentInstanceId)).findAny();
+ if (componentInstanceOptional.isPresent()) {
+ for (final List<CapabilityDefinition> listOfCaps : componentInstanceOptional.get().getCapabilities().values()) {
+ final Optional<CapabilityDefinition> capDef = listOfCaps.stream().filter(cap -> cap.getName().equals(capabilityName)).findAny();
+ if (capDef.isPresent()) {
+ return capDef.get().getProperties().stream().filter(property -> propertyName.equals(property.getName())).findFirst();
+ }
+ }
+ }
+ }
+ return Optional.empty();
+ }