Add unit tests to increase the sonar coverage
[aai/model-loader.git] / src / test / java / org / onap / aai / modelloader / notification / EventCallbackTest.java
diff --git a/src/test/java/org/onap/aai/modelloader/notification/EventCallbackTest.java b/src/test/java/org/onap/aai/modelloader/notification/EventCallbackTest.java
new file mode 100644 (file)
index 0000000..79c29bf
--- /dev/null
@@ -0,0 +1,613 @@
+/**\r
+ * ============LICENSE_START=======================================================\r
+ * org.onap.aai\r
+ * ================================================================================\r
+ * Copyright © 2017 AT&T Intellectual Property.\r
+ * Copyright © 2017 Amdocs\r
+ * All rights reserved.\r
+ * ================================================================================\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *     http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ * ============LICENSE_END=========================================================\r
+ *\r
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.\r
+ */\r
+package org.onap.aai.modelloader.notification;\r
+\r
+import com.google.gson.Gson;\r
+import com.google.gson.GsonBuilder;\r
+import com.google.gson.InstanceCreator;\r
+import org.junit.Before;\r
+import org.junit.Test;\r
+import org.mockito.Mock;\r
+import org.mockito.Mockito;\r
+import org.mockito.MockitoAnnotations;\r
+import org.onap.aai.modelloader.config.ModelLoaderConfig;\r
+import org.openecomp.sdc.api.IDistributionClient;\r
+import org.openecomp.sdc.api.consumer.INotificationCallback;\r
+import org.openecomp.sdc.api.notification.IArtifactInfo;\r
+import org.openecomp.sdc.api.notification.INotificationData;\r
+import org.openecomp.sdc.api.notification.IResourceInstance;\r
+import org.openecomp.sdc.api.results.IDistributionClientDownloadResult;\r
+import org.openecomp.sdc.api.results.IDistributionClientResult;\r
+import org.openecomp.sdc.impl.DistributionClientFactory;\r
+import org.openecomp.sdc.impl.DistributionClientImpl;\r
+import org.openecomp.sdc.utils.DistributionActionResultEnum;\r
+\r
+import java.lang.reflect.Type;\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import java.util.Properties;\r
+\r
+public class EventCallbackTest {\r
+\r
+    ModelLoaderConfig config;\r
+    DistributionClientImpl client;\r
+    EventCallback callBack;\r
+\r
+    @Before\r
+    public void init(){\r
+        MockitoAnnotations.initMocks(this);\r
+        Properties props = new Properties();\r
+        props.setProperty("ml.distribution.ARTIFACT_TYPES",\r
+                "MODEL_INVENTORY_PROFILE,MODEL_QUERY_SPEC,VNF_CATALOG");\r
+        config = new ModelLoaderConfig(props, null);\r
+        client = Mockito.spy(DistributionClientImpl.class);\r
+        callBack = new EventCallback(client, config);\r
+    }\r
+\r
+    @Test\r
+    public void testActivateCallBack_PublishFailure(){\r
+        Gson gson = new GsonBuilder().setPrettyPrinting().create();\r
+        NotificationDataInstance notification = gson.fromJson(getNotificationWithMultipleResources(),\r
+                NotificationDataInstance.class);\r
+\r
+        TestConfiguration testConfig = new TestConfiguration();\r
+        Mockito.when(client.getConfiguration()).thenReturn(testConfig);\r
+        callBack.activateCallback(notification);\r
+    }\r
+\r
+    @Test\r
+    public void testActivateCallBack_PublishSuccess(){\r
+        Gson gson = new GsonBuilder().setPrettyPrinting().create();\r
+        NotificationDataInstance notification = gson.fromJson(getNotificationWithMultipleResources(),\r
+                NotificationDataInstance.class);\r
+\r
+        TestConfiguration testConfig = new TestConfiguration();\r
+        Mockito.when(client.download(Mockito.any(IArtifactInfo.class))).thenReturn(buildSuccessResult());\r
+        Mockito.when(client.getConfiguration()).thenReturn(testConfig);\r
+        callBack.activateCallback(notification);\r
+    }\r
+\r
+    private static IDistributionClientDownloadResult buildSuccessResult() {\r
+        return new IDistributionClientDownloadResult() {\r
+\r
+            @Override\r
+            public byte[] getArtifactPayload() {\r
+                return new byte[0];\r
+            }\r
+\r
+            @Override\r
+            public String getArtifactName() {\r
+                return "";\r
+            }\r
+\r
+            @Override\r
+            public String getArtifactFilename() {\r
+                return "";\r
+            }\r
+\r
+            @Override\r
+            public String getDistributionMessageResult() {\r
+                return "";\r
+            }\r
+\r
+            @Override\r
+            public DistributionActionResultEnum getDistributionActionResult() {\r
+                return DistributionActionResultEnum.SUCCESS;\r
+            }\r
+        };\r
+    }\r
+\r
+    private String getNotificationWithMultipleResources(){\r
+        return "{\"distributionID\" : \"bcc7a72e-90b1-4c5f-9a37-28dc3cd86416\",\r\n" +\r
+                "      \"serviceName\" : \"Testnotificationser1\",\r\n" +\r
+                "      \"serviceVersion\" : \"1.0\",\r\n" +\r
+                "      \"serviceUUID\" : \"7f7f94f4-373a-4b71-a0e3-80ae2ba4eb5d\",\r\n" +\r
+                "      \"serviceDescription\" : \"TestNotificationVF1\",\r\n" +\r
+                "      \"resources\" : [{\r\n" +\r
+                "                      \"resourceInstanceName\" : \"testnotificationvf11\",\r\n" +\r
+                "                      \"resourceName\" : \"TestNotificationVF1\",\r\n" +\r
+                "                      \"resourceVersion\" : \"1.0\",\r\n" +\r
+                "                      \"resoucreType\" : \"VF\",\r\n" +\r
+                "                      \"resourceUUID\" : \"907e1746-9f69-40f5-9f2a-313654092a2d\",\r\n" +\r
+                "                      \"artifacts\" : [{\r\n" +\r
+                "                                      \"artifactName\" : \"sample-xml-alldata-1-1.xml\",\r\n" +\r
+                "                                      \"artifactType\" : \"YANG_XML\",\r\n" +\r
+                "                                      \"artifactURL\" : \"/sdc/v1/catalog/services/Testnotificationser1/1.0/" +\r
+                "                                       resourceInstances/testnotificationvf11/artifacts/" +\r
+                "                                       sample-xml-alldata-1-1.xml\",\r\n" +\r
+                "                                      \"artifactChecksum\" : \"MTUxODFkMmRlOTNhNjYxMGYyYTI1ZjA5Y2QyNWQyYTk\\u003d\",\r\n" +\r
+                "                                      \"artifactDescription\" : \"MyYang\",\r\n" +\r
+                "                                      \"artifactTimeout\" : 0,\r\n" +\r
+                "                                      \"artifactUUID\" : \"0005bc4a-2c19-452e-be6d-d574a56be4d0\",\r\n" +\r
+                "                                      \"artifactVersion\" : \"1\"\r\n" +\r
+                "                              }" +\r
+                "                      ]\r\n" +\r
+                "              },\r\n" +\r
+                "       {\r\n" +\r
+                "                      \"resourceInstanceName\" : \"testnotificationvf12\",\r\n" +\r
+                "                      \"resourceName\" : \"TestNotificationVF1\",\r\n" +\r
+                "                      \"resourceVersion\" : \"1.0\",\r\n" +\r
+                "                      \"resoucreType\" : \"VF\",\r\n" +\r
+                "                      \"resourceUUID\" : \"907e1746-9f69-40f5-9f2a-313654092a2e\",\r\n" +\r
+                "                      \"artifacts\" : [{\r\n" +\r
+                "                                      \"artifactName\" : \"heat.yaml\",\r\n" +\r
+                "                                      \"artifactType\" : \"HEAT\",\r\n" +\r
+                "                                      \"artifactURL\" : \"/sdc/v1/catalog/services/Testnotificationser1/1.0/" +\r
+                "                                       resourceInstances/testnotificationvf11/artifacts/" +\r
+                "                                       heat.yaml\",\r\n" +\r
+                "                                      \"artifactChecksum\" : \"ODEyNjE4YTMzYzRmMTk2ODVhNTU2NTg3YWEyNmIxMTM\\u003d\",\r\n" +\r
+                "                                      \"artifactDescription\" : \"heat\",\r\n" +\r
+                "                                      \"artifactTimeout\" : 60,\r\n" +\r
+                "                                      \"artifactUUID\" : \"8df6123c-f368-47d3-93be-1972cefbcc35\",\r\n" +\r
+                "                                      \"artifactVersion\" : \"1\"\r\n" +\r
+                "                              }" +\r
+                "                      ]\r\n" +\r
+                "              }\r\n" +\r
+                "      ]}";\r
+    }\r
+}\r
+\r
+class NotificationDataInstance implements INotificationData{\r
+\r
+    private String distributionID;\r
+    private String serviceName;\r
+    private String serviceVersion;\r
+    private String serviceUUID;\r
+    private String serviceDescription;\r
+    private String serviceInvariantUUID;\r
+    private List<JsonContainerResourceInstance> resources;\r
+    private List<ArtifactInfoImpl> serviceArtifacts;\r
+    private String workloadContext;\r
+\r
+    @Override\r
+    public String getDistributionID() {\r
+        return distributionID;\r
+    }\r
+\r
+    @Override\r
+    public String getServiceName() {\r
+        return serviceName;\r
+    }\r
+\r
+    @Override\r
+    public String getServiceVersion() {\r
+        return serviceVersion;\r
+    }\r
+\r
+    @Override\r
+    public String getServiceUUID() {\r
+        return serviceUUID;\r
+    }\r
+\r
+    public void setDistributionID(String distributionID) {\r
+        this.distributionID = distributionID;\r
+    }\r
+\r
+    public void setServiceName(String serviceName) {\r
+        this.serviceName = serviceName;\r
+    }\r
+\r
+    public void setServiceVersion(String serviceVersion) {\r
+        this.serviceVersion = serviceVersion;\r
+    }\r
+\r
+    public void setServiceUUID(String serviceUUID) {\r
+        this.serviceUUID = serviceUUID;\r
+    }\r
+\r
+\r
+\r
+    public String getServiceDescription() {\r
+        return serviceDescription;\r
+    }\r
+\r
+    public void setServiceDescription(String serviceDescription) {\r
+        this.serviceDescription = serviceDescription;\r
+    }\r
+\r
+    public String getWorkloadContext() {\r
+        return workloadContext;\r
+    }\r
+\r
+    public void setWorkloadContext(String workloadContext) {\r
+        this.workloadContext = workloadContext;\r
+    }\r
+\r
+    @Override\r
+    public String toString() {\r
+        return "NotificationDataImpl [distributionID=" + distributionID + ", serviceName=" + serviceName\r
+                + ", serviceVersion=" + serviceVersion + ", serviceUUID=" + serviceUUID + ", serviceDescription="\r
+                + serviceDescription + ", serviceInvariantUUID=" + serviceInvariantUUID + ", resources=" + resources\r
+                + ", serviceArtifacts=" + serviceArtifacts + ", workloadContext=" + workloadContext + "]";\r
+    }\r
+\r
+    @Override\r
+    public List<IResourceInstance> getResources() {\r
+        List<IResourceInstance> ret = new ArrayList<IResourceInstance>();\r
+        if( resources != null ){\r
+            ret.addAll(resources);\r
+        }\r
+        return ret;\r
+    }\r
+\r
+    public void setResources(List<IResourceInstance> resources){\r
+        this.resources = JsonContainerResourceInstance.convertToJsonContainer(resources);\r
+    }\r
+\r
+    public List<JsonContainerResourceInstance> getResourcesImpl(){\r
+        return resources;\r
+    }\r
+\r
+    List<ArtifactInfoImpl> getServiceArtifactsImpl(){\r
+        return serviceArtifacts;\r
+    }\r
+\r
+    @Override\r
+    public List<IArtifactInfo> getServiceArtifacts() {\r
+\r
+        List<IArtifactInfo> temp = new ArrayList<IArtifactInfo>();\r
+        if( serviceArtifacts != null ){\r
+            temp.addAll(serviceArtifacts);\r
+        }\r
+        return temp;\r
+    }\r
+\r
+    void setServiceArtifacts(List<ArtifactInfoImpl> relevantServiceArtifacts) {\r
+        serviceArtifacts = relevantServiceArtifacts;\r
+\r
+    }\r
+\r
+    @Override\r
+    public String getServiceInvariantUUID() {\r
+        return serviceInvariantUUID;\r
+    }\r
+\r
+\r
+    public void setServiceInvariantUUID(String serviceInvariantUUID) {\r
+        this.serviceInvariantUUID = serviceInvariantUUID;\r
+    }\r
+    @Override\r
+    public IArtifactInfo getArtifactMetadataByUUID(String artifactUUID){\r
+        IArtifactInfo ret = findArtifactInfoByUUID(artifactUUID, serviceArtifacts);\r
+        if( ret == null && resources != null ){\r
+            for( JsonContainerResourceInstance currResourceInstance : resources ){\r
+                ret = findArtifactInfoByUUID(artifactUUID, currResourceInstance.getArtifactsImpl());\r
+                if( ret != null ){\r
+                    break;\r
+                }\r
+            }\r
+        }\r
+        return ret;\r
+\r
+    }\r
+\r
+    private IArtifactInfo findArtifactInfoByUUID(String artifactUUID, List<ArtifactInfoImpl> listToCheck) {\r
+        IArtifactInfo ret = null;\r
+        if( listToCheck != null ){\r
+            for(IArtifactInfo curr: listToCheck ){\r
+                if(curr.getArtifactUUID().equals(artifactUUID) ){\r
+                    ret = curr;\r
+                    break;\r
+                }\r
+            }\r
+        }\r
+        return ret;\r
+    }\r
+}\r
+\r
+class ArtifactInfoImpl implements IArtifactInfo{\r
+\r
+    private String artifactName;\r
+    private String artifactType;\r
+    private String artifactURL;\r
+    private String artifactChecksum;\r
+    private String artifactDescription;\r
+    private Integer artifactTimeout;\r
+    private String artifactVersion;\r
+    private String artifactUUID;\r
+    private String generatedFromUUID;\r
+    private IArtifactInfo generatedArtifact;\r
+    private List<String> relatedArtifacts;\r
+    private List<IArtifactInfo> relatedArtifactsInfo;\r
+    ArtifactInfoImpl(){}\r
+\r
+    private ArtifactInfoImpl(IArtifactInfo iArtifactInfo){\r
+        artifactName = iArtifactInfo.getArtifactName();\r
+        artifactType = iArtifactInfo.getArtifactType();\r
+        artifactURL = iArtifactInfo.getArtifactURL();\r
+        artifactChecksum = iArtifactInfo.getArtifactChecksum();\r
+        artifactDescription = iArtifactInfo.getArtifactDescription();\r
+        artifactTimeout = iArtifactInfo.getArtifactTimeout();\r
+        artifactVersion = iArtifactInfo.getArtifactVersion();\r
+        artifactUUID = iArtifactInfo.getArtifactUUID();\r
+        generatedArtifact = iArtifactInfo.getGeneratedArtifact();\r
+        relatedArtifactsInfo = iArtifactInfo.getRelatedArtifacts();\r
+        relatedArtifacts = fillRelatedArtifactsUUID(relatedArtifactsInfo);\r
+\r
+    }\r
+\r
+\r
+    private List<String> fillRelatedArtifactsUUID(List<IArtifactInfo> relatedArtifactsInfo) {\r
+        List<String> relatedArtifactsUUID = null;\r
+        if( relatedArtifactsInfo != null && !relatedArtifactsInfo.isEmpty()){\r
+            relatedArtifactsUUID = new ArrayList<>();\r
+            for(IArtifactInfo curr: relatedArtifactsInfo){\r
+                relatedArtifactsUUID.add(curr.getArtifactUUID());\r
+            }\r
+        }\r
+        return relatedArtifactsUUID;\r
+    }\r
+\r
+    public static List<ArtifactInfoImpl> convertToArtifactInfoImpl(List<IArtifactInfo> list){\r
+        List<ArtifactInfoImpl> ret = new ArrayList<ArtifactInfoImpl>();\r
+        if( list != null ){\r
+            for(IArtifactInfo artifactInfo : list  ){\r
+                ret.add(new ArtifactInfoImpl(artifactInfo));\r
+            }\r
+        }\r
+        return ret;\r
+    }\r
+\r
+    public String getArtifactName() {\r
+        return artifactName;\r
+    }\r
+\r
+    public void setArtifactName(String artifactName) {\r
+        this.artifactName = artifactName;\r
+    }\r
+\r
+    public String getArtifactType() {\r
+        return artifactType;\r
+    }\r
+\r
+    public void setArtifactType(String artifactType) {\r
+        this.artifactType = artifactType;\r
+    }\r
+\r
+    public String getArtifactURL() {\r
+        return artifactURL;\r
+    }\r
+\r
+    public void setArtifactURL(String artifactURL) {\r
+        this.artifactURL = artifactURL;\r
+    }\r
+\r
+    public String getArtifactChecksum() {\r
+        return artifactChecksum;\r
+    }\r
+\r
+    public void setArtifactChecksum(String artifactChecksum) {\r
+        this.artifactChecksum = artifactChecksum;\r
+    }\r
+\r
+    public String getArtifactDescription() {\r
+        return artifactDescription;\r
+    }\r
+\r
+    public void setArtifactDescription(String artifactDescription) {\r
+        this.artifactDescription = artifactDescription;\r
+    }\r
+\r
+    public Integer getArtifactTimeout() {\r
+        return artifactTimeout;\r
+    }\r
+\r
+    public void setArtifactTimeout(Integer artifactTimeout) {\r
+        this.artifactTimeout = artifactTimeout;\r
+    }\r
+\r
+    @Override\r
+    public String toString() {\r
+        return "BaseArtifactInfoImpl [artifactName=" + artifactName\r
+                + ", artifactType=" + artifactType + ", artifactURL="\r
+                + artifactURL + ", artifactChecksum=" + artifactChecksum\r
+                + ", artifactDescription=" + artifactDescription\r
+                + ", artifactVersion=" + artifactVersion\r
+                + ", artifactUUID=" + artifactUUID\r
+                + ", artifactTimeout=" + artifactTimeout + "]";\r
+    }\r
+\r
+    public String getArtifactVersion() {\r
+        return artifactVersion;\r
+    }\r
+\r
+    public void setArtifactVersion(String artifactVersion) {\r
+        this.artifactVersion = artifactVersion;\r
+    }\r
+\r
+    public String getArtifactUUID() {\r
+        return artifactUUID;\r
+    }\r
+\r
+    public void setArtifactUUID(String artifactUUID) {\r
+        this.artifactUUID = artifactUUID;\r
+    }\r
+\r
+    public String getGeneratedFromUUID() {\r
+        return generatedFromUUID;\r
+    }\r
+\r
+    public void setGeneratedFromUUID(String generatedFromUUID) {\r
+        this.generatedFromUUID = generatedFromUUID;\r
+    }\r
+\r
+    public IArtifactInfo getGeneratedArtifact() {\r
+        return generatedArtifact;\r
+    }\r
+\r
+    public void setGeneratedArtifact(IArtifactInfo generatedArtifact) {\r
+        this.generatedArtifact = generatedArtifact;\r
+    }\r
+\r
+    public List<IArtifactInfo> getRelatedArtifacts(){\r
+        List<IArtifactInfo> temp = new ArrayList<IArtifactInfo>();\r
+        if( relatedArtifactsInfo != null ){\r
+            temp.addAll(relatedArtifactsInfo);\r
+        }\r
+        return temp;\r
+    }\r
+\r
+    public void setRelatedArtifacts(List<String> relatedArtifacts) {\r
+        this.relatedArtifacts = relatedArtifacts;\r
+    }\r
+\r
+    public void setRelatedArtifactsInfo(List<IArtifactInfo> relatedArtifactsInfo) {\r
+        this.relatedArtifactsInfo = relatedArtifactsInfo;\r
+    }\r
+\r
+    public List<String> getRelatedArtifactsUUID(){\r
+        return relatedArtifacts;\r
+    }\r
+}\r
+\r
+class JsonContainerResourceInstance implements IResourceInstance{\r
+    JsonContainerResourceInstance (){}\r
+    private String resourceInstanceName;\r
+    private String resourceCustomizationUUID;\r
+    private String resourceName;\r
+    private String resourceVersion;\r
+    private String resoucreType;\r
+    private String resourceUUID;\r
+    private String resourceInvariantUUID;\r
+    private String category;\r
+    private String subcategory;\r
+    private List<ArtifactInfoImpl> artifacts;\r
+\r
+    private JsonContainerResourceInstance(IResourceInstance resourceInstance){\r
+        resourceInstanceName = resourceInstance.getResourceInstanceName();\r
+        resourceCustomizationUUID = resourceInstance.getResourceCustomizationUUID();\r
+        resourceName = resourceInstance.getResourceName();\r
+        resourceVersion = resourceInstance.getResourceVersion();\r
+        resoucreType = resourceInstance.getResourceType();\r
+        resourceUUID = resourceInstance.getResourceUUID();\r
+        resourceInvariantUUID = resourceInstance.getResourceInvariantUUID();\r
+        category = resourceInstance.getCategory();\r
+        subcategory = resourceInstance.getSubcategory();\r
+        artifacts = ArtifactInfoImpl.convertToArtifactInfoImpl(resourceInstance.getArtifacts());\r
+    }\r
+\r
+    public static List<JsonContainerResourceInstance> convertToJsonContainer(List<IResourceInstance> resources){\r
+        List<JsonContainerResourceInstance> buildResources = new ArrayList<JsonContainerResourceInstance>();\r
+        if( resources != null ){\r
+            for( IResourceInstance resourceInstance : resources ){\r
+                buildResources.add(new JsonContainerResourceInstance(resourceInstance));\r
+            }\r
+        }\r
+        return buildResources;\r
+    }\r
+\r
+    @Override\r
+    public String getResourceInstanceName() {\r
+        return resourceInstanceName;\r
+    }\r
+\r
+    public void setResourceInstanceName(String resourceInstanceName) {\r
+        this.resourceInstanceName = resourceInstanceName;\r
+    }\r
+\r
+    @Override\r
+    public String getResourceName() {\r
+        return resourceName;\r
+    }\r
+\r
+    public void setResourceName(String resourceName) {\r
+        this.resourceName = resourceName;\r
+    }\r
+\r
+    @Override\r
+    public String getResourceVersion() {\r
+        return resourceVersion;\r
+    }\r
+\r
+    public void setResourceVersion(String resourceVersion) {\r
+        this.resourceVersion = resourceVersion;\r
+    }\r
+\r
+    @Override\r
+    public String getResourceType() {\r
+        return resoucreType;\r
+    }\r
+\r
+    public void setResoucreType(String resoucreType) {\r
+        this.resoucreType = resoucreType;\r
+    }\r
+\r
+    @Override\r
+    public String getResourceUUID() {\r
+        return resourceUUID;\r
+    }\r
+\r
+    public void setResourceUUID(String resourceUUID) {\r
+        this.resourceUUID = resourceUUID;\r
+    }\r
+\r
+    @Override\r
+    public List<IArtifactInfo> getArtifacts() {\r
+        List<IArtifactInfo> temp = new ArrayList<IArtifactInfo>();\r
+        if( artifacts != null ){\r
+            temp.addAll(artifacts);\r
+        }\r
+        return temp;\r
+    }\r
+\r
+    public void setArtifacts(List<ArtifactInfoImpl> artifacts) {\r
+        this.artifacts = artifacts;\r
+    }\r
+\r
+    public List<ArtifactInfoImpl> getArtifactsImpl(){\r
+        return artifacts;\r
+    }\r
+\r
+    @Override\r
+    public String getResourceInvariantUUID() {\r
+        return resourceInvariantUUID;\r
+    }\r
+\r
+    public void setResourceInvariantUUID(String resourceInvariantUUID) {\r
+        this.resourceInvariantUUID = resourceInvariantUUID;\r
+    }\r
+    public String getResourceCustomizationUUID() {\r
+        return resourceCustomizationUUID;\r
+    }\r
+\r
+    public void setResourceCustomizationUUID(String resourceCustomizationUUID) {\r
+        this.resourceCustomizationUUID = resourceCustomizationUUID;\r
+    }\r
+\r
+    public String getCategory() {\r
+        return category;\r
+    }\r
+\r
+    public void setCategory(String category) {\r
+        this.category = category;\r
+    }\r
+\r
+    public String getSubcategory() {\r
+        return subcategory;\r
+    }\r
+\r
+    public void setSubcategory(String subcategory) {\r
+        this.subcategory = subcategory;\r
+    }\r
+}\r