Add unit tests to increase the sonar coverage
[aai/model-loader.git] / src / test / java / org / onap / aai / modelloader / notification / EventCallbackTest.java
1 /**\r
2  * ============LICENSE_START=======================================================\r
3  * org.onap.aai\r
4  * ================================================================================\r
5  * Copyright © 2017 AT&T Intellectual Property.\r
6  * Copyright © 2017 Amdocs\r
7  * All rights reserved.\r
8  * ================================================================================\r
9  * Licensed under the Apache License, Version 2.0 (the "License");\r
10  * you may not use this file except in compliance with the License.\r
11  * You may obtain a copy of the License at\r
12  *\r
13  *     http://www.apache.org/licenses/LICENSE-2.0\r
14  *\r
15  * Unless required by applicable law or agreed to in writing, software\r
16  * distributed under the License is distributed on an "AS IS" BASIS,\r
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
18  * See the License for the specific language governing permissions and\r
19  * limitations under the License.\r
20  * ============LICENSE_END=========================================================\r
21  *\r
22  * ECOMP is a trademark and service mark of AT&T Intellectual Property.\r
23  */\r
24 package org.onap.aai.modelloader.notification;\r
25 \r
26 import com.google.gson.Gson;\r
27 import com.google.gson.GsonBuilder;\r
28 import com.google.gson.InstanceCreator;\r
29 import org.junit.Before;\r
30 import org.junit.Test;\r
31 import org.mockito.Mock;\r
32 import org.mockito.Mockito;\r
33 import org.mockito.MockitoAnnotations;\r
34 import org.onap.aai.modelloader.config.ModelLoaderConfig;\r
35 import org.openecomp.sdc.api.IDistributionClient;\r
36 import org.openecomp.sdc.api.consumer.INotificationCallback;\r
37 import org.openecomp.sdc.api.notification.IArtifactInfo;\r
38 import org.openecomp.sdc.api.notification.INotificationData;\r
39 import org.openecomp.sdc.api.notification.IResourceInstance;\r
40 import org.openecomp.sdc.api.results.IDistributionClientDownloadResult;\r
41 import org.openecomp.sdc.api.results.IDistributionClientResult;\r
42 import org.openecomp.sdc.impl.DistributionClientFactory;\r
43 import org.openecomp.sdc.impl.DistributionClientImpl;\r
44 import org.openecomp.sdc.utils.DistributionActionResultEnum;\r
45 \r
46 import java.lang.reflect.Type;\r
47 import java.util.ArrayList;\r
48 import java.util.List;\r
49 import java.util.Properties;\r
50 \r
51 public class EventCallbackTest {\r
52 \r
53     ModelLoaderConfig config;\r
54     DistributionClientImpl client;\r
55     EventCallback callBack;\r
56 \r
57     @Before\r
58     public void init(){\r
59         MockitoAnnotations.initMocks(this);\r
60         Properties props = new Properties();\r
61         props.setProperty("ml.distribution.ARTIFACT_TYPES",\r
62                 "MODEL_INVENTORY_PROFILE,MODEL_QUERY_SPEC,VNF_CATALOG");\r
63         config = new ModelLoaderConfig(props, null);\r
64         client = Mockito.spy(DistributionClientImpl.class);\r
65         callBack = new EventCallback(client, config);\r
66     }\r
67 \r
68     @Test\r
69     public void testActivateCallBack_PublishFailure(){\r
70         Gson gson = new GsonBuilder().setPrettyPrinting().create();\r
71         NotificationDataInstance notification = gson.fromJson(getNotificationWithMultipleResources(),\r
72                 NotificationDataInstance.class);\r
73 \r
74         TestConfiguration testConfig = new TestConfiguration();\r
75         Mockito.when(client.getConfiguration()).thenReturn(testConfig);\r
76         callBack.activateCallback(notification);\r
77     }\r
78 \r
79     @Test\r
80     public void testActivateCallBack_PublishSuccess(){\r
81         Gson gson = new GsonBuilder().setPrettyPrinting().create();\r
82         NotificationDataInstance notification = gson.fromJson(getNotificationWithMultipleResources(),\r
83                 NotificationDataInstance.class);\r
84 \r
85         TestConfiguration testConfig = new TestConfiguration();\r
86         Mockito.when(client.download(Mockito.any(IArtifactInfo.class))).thenReturn(buildSuccessResult());\r
87         Mockito.when(client.getConfiguration()).thenReturn(testConfig);\r
88         callBack.activateCallback(notification);\r
89     }\r
90 \r
91     private static IDistributionClientDownloadResult buildSuccessResult() {\r
92         return new IDistributionClientDownloadResult() {\r
93 \r
94             @Override\r
95             public byte[] getArtifactPayload() {\r
96                 return new byte[0];\r
97             }\r
98 \r
99             @Override\r
100             public String getArtifactName() {\r
101                 return "";\r
102             }\r
103 \r
104             @Override\r
105             public String getArtifactFilename() {\r
106                 return "";\r
107             }\r
108 \r
109             @Override\r
110             public String getDistributionMessageResult() {\r
111                 return "";\r
112             }\r
113 \r
114             @Override\r
115             public DistributionActionResultEnum getDistributionActionResult() {\r
116                 return DistributionActionResultEnum.SUCCESS;\r
117             }\r
118         };\r
119     }\r
120 \r
121     private String getNotificationWithMultipleResources(){\r
122         return "{\"distributionID\" : \"bcc7a72e-90b1-4c5f-9a37-28dc3cd86416\",\r\n" +\r
123                 "       \"serviceName\" : \"Testnotificationser1\",\r\n" +\r
124                 "       \"serviceVersion\" : \"1.0\",\r\n" +\r
125                 "       \"serviceUUID\" : \"7f7f94f4-373a-4b71-a0e3-80ae2ba4eb5d\",\r\n" +\r
126                 "       \"serviceDescription\" : \"TestNotificationVF1\",\r\n" +\r
127                 "       \"resources\" : [{\r\n" +\r
128                 "                       \"resourceInstanceName\" : \"testnotificationvf11\",\r\n" +\r
129                 "                       \"resourceName\" : \"TestNotificationVF1\",\r\n" +\r
130                 "                       \"resourceVersion\" : \"1.0\",\r\n" +\r
131                 "                       \"resoucreType\" : \"VF\",\r\n" +\r
132                 "                       \"resourceUUID\" : \"907e1746-9f69-40f5-9f2a-313654092a2d\",\r\n" +\r
133                 "                       \"artifacts\" : [{\r\n" +\r
134                 "                                       \"artifactName\" : \"sample-xml-alldata-1-1.xml\",\r\n" +\r
135                 "                                       \"artifactType\" : \"YANG_XML\",\r\n" +\r
136                 "                                       \"artifactURL\" : \"/sdc/v1/catalog/services/Testnotificationser1/1.0/" +\r
137                 "                                       resourceInstances/testnotificationvf11/artifacts/" +\r
138                 "                                       sample-xml-alldata-1-1.xml\",\r\n" +\r
139                 "                                       \"artifactChecksum\" : \"MTUxODFkMmRlOTNhNjYxMGYyYTI1ZjA5Y2QyNWQyYTk\\u003d\",\r\n" +\r
140                 "                                       \"artifactDescription\" : \"MyYang\",\r\n" +\r
141                 "                                       \"artifactTimeout\" : 0,\r\n" +\r
142                 "                                       \"artifactUUID\" : \"0005bc4a-2c19-452e-be6d-d574a56be4d0\",\r\n" +\r
143                 "                                       \"artifactVersion\" : \"1\"\r\n" +\r
144                 "                               }" +\r
145                 "                       ]\r\n" +\r
146                 "               },\r\n" +\r
147                 "       {\r\n" +\r
148                 "                       \"resourceInstanceName\" : \"testnotificationvf12\",\r\n" +\r
149                 "                       \"resourceName\" : \"TestNotificationVF1\",\r\n" +\r
150                 "                       \"resourceVersion\" : \"1.0\",\r\n" +\r
151                 "                       \"resoucreType\" : \"VF\",\r\n" +\r
152                 "                       \"resourceUUID\" : \"907e1746-9f69-40f5-9f2a-313654092a2e\",\r\n" +\r
153                 "                       \"artifacts\" : [{\r\n" +\r
154                 "                                       \"artifactName\" : \"heat.yaml\",\r\n" +\r
155                 "                                       \"artifactType\" : \"HEAT\",\r\n" +\r
156                 "                                       \"artifactURL\" : \"/sdc/v1/catalog/services/Testnotificationser1/1.0/" +\r
157                 "                                       resourceInstances/testnotificationvf11/artifacts/" +\r
158                 "                                       heat.yaml\",\r\n" +\r
159                 "                                       \"artifactChecksum\" : \"ODEyNjE4YTMzYzRmMTk2ODVhNTU2NTg3YWEyNmIxMTM\\u003d\",\r\n" +\r
160                 "                                       \"artifactDescription\" : \"heat\",\r\n" +\r
161                 "                                       \"artifactTimeout\" : 60,\r\n" +\r
162                 "                                       \"artifactUUID\" : \"8df6123c-f368-47d3-93be-1972cefbcc35\",\r\n" +\r
163                 "                                       \"artifactVersion\" : \"1\"\r\n" +\r
164                 "                               }" +\r
165                 "                       ]\r\n" +\r
166                 "               }\r\n" +\r
167                 "       ]}";\r
168     }\r
169 }\r
170 \r
171 class NotificationDataInstance implements INotificationData{\r
172 \r
173     private String distributionID;\r
174     private String serviceName;\r
175     private String serviceVersion;\r
176     private String serviceUUID;\r
177     private String serviceDescription;\r
178     private String serviceInvariantUUID;\r
179     private List<JsonContainerResourceInstance> resources;\r
180     private List<ArtifactInfoImpl> serviceArtifacts;\r
181     private String workloadContext;\r
182 \r
183     @Override\r
184     public String getDistributionID() {\r
185         return distributionID;\r
186     }\r
187 \r
188     @Override\r
189     public String getServiceName() {\r
190         return serviceName;\r
191     }\r
192 \r
193     @Override\r
194     public String getServiceVersion() {\r
195         return serviceVersion;\r
196     }\r
197 \r
198     @Override\r
199     public String getServiceUUID() {\r
200         return serviceUUID;\r
201     }\r
202 \r
203     public void setDistributionID(String distributionID) {\r
204         this.distributionID = distributionID;\r
205     }\r
206 \r
207     public void setServiceName(String serviceName) {\r
208         this.serviceName = serviceName;\r
209     }\r
210 \r
211     public void setServiceVersion(String serviceVersion) {\r
212         this.serviceVersion = serviceVersion;\r
213     }\r
214 \r
215     public void setServiceUUID(String serviceUUID) {\r
216         this.serviceUUID = serviceUUID;\r
217     }\r
218 \r
219 \r
220 \r
221     public String getServiceDescription() {\r
222         return serviceDescription;\r
223     }\r
224 \r
225     public void setServiceDescription(String serviceDescription) {\r
226         this.serviceDescription = serviceDescription;\r
227     }\r
228 \r
229     public String getWorkloadContext() {\r
230         return workloadContext;\r
231     }\r
232 \r
233     public void setWorkloadContext(String workloadContext) {\r
234         this.workloadContext = workloadContext;\r
235     }\r
236 \r
237     @Override\r
238     public String toString() {\r
239         return "NotificationDataImpl [distributionID=" + distributionID + ", serviceName=" + serviceName\r
240                 + ", serviceVersion=" + serviceVersion + ", serviceUUID=" + serviceUUID + ", serviceDescription="\r
241                 + serviceDescription + ", serviceInvariantUUID=" + serviceInvariantUUID + ", resources=" + resources\r
242                 + ", serviceArtifacts=" + serviceArtifacts + ", workloadContext=" + workloadContext + "]";\r
243     }\r
244 \r
245     @Override\r
246     public List<IResourceInstance> getResources() {\r
247         List<IResourceInstance> ret = new ArrayList<IResourceInstance>();\r
248         if( resources != null ){\r
249             ret.addAll(resources);\r
250         }\r
251         return ret;\r
252     }\r
253 \r
254     public void setResources(List<IResourceInstance> resources){\r
255         this.resources = JsonContainerResourceInstance.convertToJsonContainer(resources);\r
256     }\r
257 \r
258     public List<JsonContainerResourceInstance> getResourcesImpl(){\r
259         return resources;\r
260     }\r
261 \r
262     List<ArtifactInfoImpl> getServiceArtifactsImpl(){\r
263         return serviceArtifacts;\r
264     }\r
265 \r
266     @Override\r
267     public List<IArtifactInfo> getServiceArtifacts() {\r
268 \r
269         List<IArtifactInfo> temp = new ArrayList<IArtifactInfo>();\r
270         if( serviceArtifacts != null ){\r
271             temp.addAll(serviceArtifacts);\r
272         }\r
273         return temp;\r
274     }\r
275 \r
276     void setServiceArtifacts(List<ArtifactInfoImpl> relevantServiceArtifacts) {\r
277         serviceArtifacts = relevantServiceArtifacts;\r
278 \r
279     }\r
280 \r
281     @Override\r
282     public String getServiceInvariantUUID() {\r
283         return serviceInvariantUUID;\r
284     }\r
285 \r
286 \r
287     public void setServiceInvariantUUID(String serviceInvariantUUID) {\r
288         this.serviceInvariantUUID = serviceInvariantUUID;\r
289     }\r
290     @Override\r
291     public IArtifactInfo getArtifactMetadataByUUID(String artifactUUID){\r
292         IArtifactInfo ret = findArtifactInfoByUUID(artifactUUID, serviceArtifacts);\r
293         if( ret == null && resources != null ){\r
294             for( JsonContainerResourceInstance currResourceInstance : resources ){\r
295                 ret = findArtifactInfoByUUID(artifactUUID, currResourceInstance.getArtifactsImpl());\r
296                 if( ret != null ){\r
297                     break;\r
298                 }\r
299             }\r
300         }\r
301         return ret;\r
302 \r
303     }\r
304 \r
305     private IArtifactInfo findArtifactInfoByUUID(String artifactUUID, List<ArtifactInfoImpl> listToCheck) {\r
306         IArtifactInfo ret = null;\r
307         if( listToCheck != null ){\r
308             for(IArtifactInfo curr: listToCheck ){\r
309                 if(curr.getArtifactUUID().equals(artifactUUID) ){\r
310                     ret = curr;\r
311                     break;\r
312                 }\r
313             }\r
314         }\r
315         return ret;\r
316     }\r
317 }\r
318 \r
319 class ArtifactInfoImpl implements IArtifactInfo{\r
320 \r
321     private String artifactName;\r
322     private String artifactType;\r
323     private String artifactURL;\r
324     private String artifactChecksum;\r
325     private String artifactDescription;\r
326     private Integer artifactTimeout;\r
327     private String artifactVersion;\r
328     private String artifactUUID;\r
329     private String generatedFromUUID;\r
330     private IArtifactInfo generatedArtifact;\r
331     private List<String> relatedArtifacts;\r
332     private List<IArtifactInfo> relatedArtifactsInfo;\r
333     ArtifactInfoImpl(){}\r
334 \r
335     private ArtifactInfoImpl(IArtifactInfo iArtifactInfo){\r
336         artifactName = iArtifactInfo.getArtifactName();\r
337         artifactType = iArtifactInfo.getArtifactType();\r
338         artifactURL = iArtifactInfo.getArtifactURL();\r
339         artifactChecksum = iArtifactInfo.getArtifactChecksum();\r
340         artifactDescription = iArtifactInfo.getArtifactDescription();\r
341         artifactTimeout = iArtifactInfo.getArtifactTimeout();\r
342         artifactVersion = iArtifactInfo.getArtifactVersion();\r
343         artifactUUID = iArtifactInfo.getArtifactUUID();\r
344         generatedArtifact = iArtifactInfo.getGeneratedArtifact();\r
345         relatedArtifactsInfo = iArtifactInfo.getRelatedArtifacts();\r
346         relatedArtifacts = fillRelatedArtifactsUUID(relatedArtifactsInfo);\r
347 \r
348     }\r
349 \r
350 \r
351     private List<String> fillRelatedArtifactsUUID(List<IArtifactInfo> relatedArtifactsInfo) {\r
352         List<String> relatedArtifactsUUID = null;\r
353         if( relatedArtifactsInfo != null && !relatedArtifactsInfo.isEmpty()){\r
354             relatedArtifactsUUID = new ArrayList<>();\r
355             for(IArtifactInfo curr: relatedArtifactsInfo){\r
356                 relatedArtifactsUUID.add(curr.getArtifactUUID());\r
357             }\r
358         }\r
359         return relatedArtifactsUUID;\r
360     }\r
361 \r
362     public static List<ArtifactInfoImpl> convertToArtifactInfoImpl(List<IArtifactInfo> list){\r
363         List<ArtifactInfoImpl> ret = new ArrayList<ArtifactInfoImpl>();\r
364         if( list != null ){\r
365             for(IArtifactInfo artifactInfo : list  ){\r
366                 ret.add(new ArtifactInfoImpl(artifactInfo));\r
367             }\r
368         }\r
369         return ret;\r
370     }\r
371 \r
372     public String getArtifactName() {\r
373         return artifactName;\r
374     }\r
375 \r
376     public void setArtifactName(String artifactName) {\r
377         this.artifactName = artifactName;\r
378     }\r
379 \r
380     public String getArtifactType() {\r
381         return artifactType;\r
382     }\r
383 \r
384     public void setArtifactType(String artifactType) {\r
385         this.artifactType = artifactType;\r
386     }\r
387 \r
388     public String getArtifactURL() {\r
389         return artifactURL;\r
390     }\r
391 \r
392     public void setArtifactURL(String artifactURL) {\r
393         this.artifactURL = artifactURL;\r
394     }\r
395 \r
396     public String getArtifactChecksum() {\r
397         return artifactChecksum;\r
398     }\r
399 \r
400     public void setArtifactChecksum(String artifactChecksum) {\r
401         this.artifactChecksum = artifactChecksum;\r
402     }\r
403 \r
404     public String getArtifactDescription() {\r
405         return artifactDescription;\r
406     }\r
407 \r
408     public void setArtifactDescription(String artifactDescription) {\r
409         this.artifactDescription = artifactDescription;\r
410     }\r
411 \r
412     public Integer getArtifactTimeout() {\r
413         return artifactTimeout;\r
414     }\r
415 \r
416     public void setArtifactTimeout(Integer artifactTimeout) {\r
417         this.artifactTimeout = artifactTimeout;\r
418     }\r
419 \r
420     @Override\r
421     public String toString() {\r
422         return "BaseArtifactInfoImpl [artifactName=" + artifactName\r
423                 + ", artifactType=" + artifactType + ", artifactURL="\r
424                 + artifactURL + ", artifactChecksum=" + artifactChecksum\r
425                 + ", artifactDescription=" + artifactDescription\r
426                 + ", artifactVersion=" + artifactVersion\r
427                 + ", artifactUUID=" + artifactUUID\r
428                 + ", artifactTimeout=" + artifactTimeout + "]";\r
429     }\r
430 \r
431     public String getArtifactVersion() {\r
432         return artifactVersion;\r
433     }\r
434 \r
435     public void setArtifactVersion(String artifactVersion) {\r
436         this.artifactVersion = artifactVersion;\r
437     }\r
438 \r
439     public String getArtifactUUID() {\r
440         return artifactUUID;\r
441     }\r
442 \r
443     public void setArtifactUUID(String artifactUUID) {\r
444         this.artifactUUID = artifactUUID;\r
445     }\r
446 \r
447     public String getGeneratedFromUUID() {\r
448         return generatedFromUUID;\r
449     }\r
450 \r
451     public void setGeneratedFromUUID(String generatedFromUUID) {\r
452         this.generatedFromUUID = generatedFromUUID;\r
453     }\r
454 \r
455     public IArtifactInfo getGeneratedArtifact() {\r
456         return generatedArtifact;\r
457     }\r
458 \r
459     public void setGeneratedArtifact(IArtifactInfo generatedArtifact) {\r
460         this.generatedArtifact = generatedArtifact;\r
461     }\r
462 \r
463     public List<IArtifactInfo> getRelatedArtifacts(){\r
464         List<IArtifactInfo> temp = new ArrayList<IArtifactInfo>();\r
465         if( relatedArtifactsInfo != null ){\r
466             temp.addAll(relatedArtifactsInfo);\r
467         }\r
468         return temp;\r
469     }\r
470 \r
471     public void setRelatedArtifacts(List<String> relatedArtifacts) {\r
472         this.relatedArtifacts = relatedArtifacts;\r
473     }\r
474 \r
475     public void setRelatedArtifactsInfo(List<IArtifactInfo> relatedArtifactsInfo) {\r
476         this.relatedArtifactsInfo = relatedArtifactsInfo;\r
477     }\r
478 \r
479     public List<String> getRelatedArtifactsUUID(){\r
480         return relatedArtifacts;\r
481     }\r
482 }\r
483 \r
484 class JsonContainerResourceInstance implements IResourceInstance{\r
485     JsonContainerResourceInstance (){}\r
486     private String resourceInstanceName;\r
487     private String resourceCustomizationUUID;\r
488     private String resourceName;\r
489     private String resourceVersion;\r
490     private String resoucreType;\r
491     private String resourceUUID;\r
492     private String resourceInvariantUUID;\r
493     private String category;\r
494     private String subcategory;\r
495     private List<ArtifactInfoImpl> artifacts;\r
496 \r
497     private JsonContainerResourceInstance(IResourceInstance resourceInstance){\r
498         resourceInstanceName = resourceInstance.getResourceInstanceName();\r
499         resourceCustomizationUUID = resourceInstance.getResourceCustomizationUUID();\r
500         resourceName = resourceInstance.getResourceName();\r
501         resourceVersion = resourceInstance.getResourceVersion();\r
502         resoucreType = resourceInstance.getResourceType();\r
503         resourceUUID = resourceInstance.getResourceUUID();\r
504         resourceInvariantUUID = resourceInstance.getResourceInvariantUUID();\r
505         category = resourceInstance.getCategory();\r
506         subcategory = resourceInstance.getSubcategory();\r
507         artifacts = ArtifactInfoImpl.convertToArtifactInfoImpl(resourceInstance.getArtifacts());\r
508     }\r
509 \r
510     public static List<JsonContainerResourceInstance> convertToJsonContainer(List<IResourceInstance> resources){\r
511         List<JsonContainerResourceInstance> buildResources = new ArrayList<JsonContainerResourceInstance>();\r
512         if( resources != null ){\r
513             for( IResourceInstance resourceInstance : resources ){\r
514                 buildResources.add(new JsonContainerResourceInstance(resourceInstance));\r
515             }\r
516         }\r
517         return buildResources;\r
518     }\r
519 \r
520     @Override\r
521     public String getResourceInstanceName() {\r
522         return resourceInstanceName;\r
523     }\r
524 \r
525     public void setResourceInstanceName(String resourceInstanceName) {\r
526         this.resourceInstanceName = resourceInstanceName;\r
527     }\r
528 \r
529     @Override\r
530     public String getResourceName() {\r
531         return resourceName;\r
532     }\r
533 \r
534     public void setResourceName(String resourceName) {\r
535         this.resourceName = resourceName;\r
536     }\r
537 \r
538     @Override\r
539     public String getResourceVersion() {\r
540         return resourceVersion;\r
541     }\r
542 \r
543     public void setResourceVersion(String resourceVersion) {\r
544         this.resourceVersion = resourceVersion;\r
545     }\r
546 \r
547     @Override\r
548     public String getResourceType() {\r
549         return resoucreType;\r
550     }\r
551 \r
552     public void setResoucreType(String resoucreType) {\r
553         this.resoucreType = resoucreType;\r
554     }\r
555 \r
556     @Override\r
557     public String getResourceUUID() {\r
558         return resourceUUID;\r
559     }\r
560 \r
561     public void setResourceUUID(String resourceUUID) {\r
562         this.resourceUUID = resourceUUID;\r
563     }\r
564 \r
565     @Override\r
566     public List<IArtifactInfo> getArtifacts() {\r
567         List<IArtifactInfo> temp = new ArrayList<IArtifactInfo>();\r
568         if( artifacts != null ){\r
569             temp.addAll(artifacts);\r
570         }\r
571         return temp;\r
572     }\r
573 \r
574     public void setArtifacts(List<ArtifactInfoImpl> artifacts) {\r
575         this.artifacts = artifacts;\r
576     }\r
577 \r
578     public List<ArtifactInfoImpl> getArtifactsImpl(){\r
579         return artifacts;\r
580     }\r
581 \r
582     @Override\r
583     public String getResourceInvariantUUID() {\r
584         return resourceInvariantUUID;\r
585     }\r
586 \r
587     public void setResourceInvariantUUID(String resourceInvariantUUID) {\r
588         this.resourceInvariantUUID = resourceInvariantUUID;\r
589     }\r
590     public String getResourceCustomizationUUID() {\r
591         return resourceCustomizationUUID;\r
592     }\r
593 \r
594     public void setResourceCustomizationUUID(String resourceCustomizationUUID) {\r
595         this.resourceCustomizationUUID = resourceCustomizationUUID;\r
596     }\r
597 \r
598     public String getCategory() {\r
599         return category;\r
600     }\r
601 \r
602     public void setCategory(String category) {\r
603         this.category = category;\r
604     }\r
605 \r
606     public String getSubcategory() {\r
607         return subcategory;\r
608     }\r
609 \r
610     public void setSubcategory(String subcategory) {\r
611         this.subcategory = subcategory;\r
612     }\r
613 }\r