/*- * ============LICENSE_START======================================================= * SDC * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= */ package org.openecomp.sdc.be.model; import static org.apache.commons.collections.MapUtils.isNotEmpty; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.commons.lang3.tuple.Pair; public class ComponentInstInputsMap { private Map> componentInstanceInputsMap; private Map> componentInstanceProperties; private Map> serviceProperties; private Map> policyProperties; private Map> groupProperties; private Map> componentPropertiesToPolicies; private Map> componentInstancePropertiesToPolicies; public Pair> resolvePropertiesToDeclare() { if (isNotEmpty(componentInstanceInputsMap)) { return singleMapEntry(componentInstanceInputsMap); } if (isNotEmpty(componentInstanceProperties)) { return singleMapEntry(componentInstanceProperties); } if (isNotEmpty(policyProperties)) { return singleMapEntry(policyProperties); } if (isNotEmpty(serviceProperties)) { return singleMapEntry(serviceProperties); } if (isNotEmpty(groupProperties)) { return singleMapEntry(groupProperties); } if (isNotEmpty(componentPropertiesToPolicies)) { return singleMapEntry(componentPropertiesToPolicies); } if (isNotEmpty(componentInstancePropertiesToPolicies)) { return singleMapEntry(componentInstancePropertiesToPolicies); } throw new IllegalStateException("there are no properties selected for declaration"); } private Pair> singleMapEntry(Map> propertiesMap) { Map.Entry> singleEntry = propertiesMap.entrySet().iterator().next(); return Pair.of(singleEntry.getKey(), singleEntry.getValue()); } public Map> getComponentInstanceInputsMap() { return componentInstanceInputsMap == null ? new HashMap<>() : componentInstanceInputsMap; } public void setComponentInstanceInputsMap(Map> componentInstanceInputsMap) { this.componentInstanceInputsMap = componentInstanceInputsMap; } public Map> getComponentInstanceProperties() { return componentInstanceProperties == null ? new HashMap<>() : componentInstanceProperties; } public void setComponentInstancePropInput(Map> componentInstanceProperties) { this.componentInstanceProperties = componentInstanceProperties; } public Map> getPolicyProperties() { return policyProperties == null ? new HashMap<>() : policyProperties; } public void setPolicyProperties(Map> policyProperties) { this.policyProperties = policyProperties; } public Map> getServiceProperties() { return serviceProperties; } public void setServiceProperties(Map> serviceProperties) { this.serviceProperties = serviceProperties; } public Map> getGroupProperties() { return groupProperties == null ? new HashMap<>() : groupProperties; } public void setGroupProperties(Map> groupProperties) { this.groupProperties = groupProperties; } public Map> getComponentPropertiesToPolicies() { return componentPropertiesToPolicies; } public void setComponentPropertiesToPolicies(Map> componentPropertiesToPolicies) { this.componentPropertiesToPolicies = componentPropertiesToPolicies; } public Map> getComponentInstancePropertiesToPolicies() { return componentInstancePropertiesToPolicies; } public void setComponentInstancePropertiesToPolicies(Map> componentInstancePropertiesToPolicies) { this.componentInstancePropertiesToPolicies = componentInstancePropertiesToPolicies; } }