Merge "Reorder modifiers"
[so.git] / common / src / main / java / org / openecomp / mso / client / aai / entities / uri / AAIUriFactory.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.openecomp.mso.client.aai.entities.uri;
22
23 import java.net.URI;
24
25 import org.openecomp.mso.client.aai.AAIObjectPlurals;
26 import org.openecomp.mso.client.aai.AAIObjectType;
27
28
29 public class AAIUriFactory {
30         
31         /**
32          * values are filled into the URI template specified in {@link AAIObjectType} in order
33          * 
34          * @param type
35          * @param values
36          * @return
37          */
38         public static AAIResourceUri createResourceUri(AAIObjectType type, Object... values) {
39                 if (AAIObjectType.SERVICE_INSTANCE.equals(type)) {
40                         return new ServiceInstanceUri(values);
41                 } else {
42                         return new SimpleUri(type, values);
43                 }
44         }
45         
46         public static AAIResourceUri createNodesUri(AAIObjectType type, Object... values) {
47                 return new NodesUri(type, values);
48                 
49         }
50         
51         /**
52          * This method should only be used to wrap a URI retrieved from A&AI contained within an object response
53          * 
54          * @param type
55          * @param uri
56          * @return
57          */
58         public static AAIResourceUri createResourceFromExistingURI(AAIObjectType type, URI uri) {
59                 return new SimpleUri(type, uri);
60         }
61         
62         /**
63          * Creates a uri for a plural type e.g. /cloud-infrastructure/pservers
64          * 
65          * @param type
66          * @return
67          */
68         public static AAIResourceUri createResourceUri(AAIObjectPlurals type) {
69                 
70                 return new SimpleUri(type);
71         
72         }
73 }