cc300fbc7d046fd16796c0ed48b98a0a361cc9a4
[aai/aai-common.git] / aai-core / src / main / java / org / onap / aai / parsers / query / UniqueStrategy.java
1 /**
2  * ============LICENSE_START=======================================================
3  * org.onap.aai
4  * ================================================================================
5  * Copyright © 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  * ECOMP is a trademark and service mark of AT&T Intellectual Property.
21  */
22 package org.onap.aai.parsers.query;
23
24 import org.onap.aai.exceptions.AAIException;
25 import org.onap.aai.introspection.Introspector;
26 import org.onap.aai.introspection.Loader;
27 import org.onap.aai.query.builder.QueryBuilder;
28
29 import javax.ws.rs.core.MultivaluedMap;
30 import java.io.UnsupportedEncodingException;
31 import java.net.URI;
32
33 /**
34  * The Class UniqueStrategy.
35  */
36 public class UniqueStrategy extends QueryParserStrategy {
37
38         
39
40         /**
41          * Instantiates a new unique strategy.
42          *
43          * @param loader the loader
44          * @param builder the builder
45          */
46         public UniqueStrategy(Loader loader, QueryBuilder builder) {
47                 super(loader, builder);
48         }
49         
50         /**
51          * @{inheritDoc}
52          */
53         @Override
54         public QueryParser buildURIParser(URI uri) throws UnsupportedEncodingException, IllegalArgumentException, AAIException {
55                 return new UniqueURIQueryParser(loader, builder, uri);
56         }
57         
58         /**
59          * @{inheritDoc}
60          */
61         @Override
62         public QueryParser buildRelationshipParser(Introspector obj) throws UnsupportedEncodingException, AAIException {
63                 return new UniqueRelationshipQueryParser(loader, builder, obj);
64         }
65
66         /**
67          * @{inheritDoc}
68          */
69         @Override
70         public QueryParser buildURIParser(URI uri, MultivaluedMap<String, String> queryParams)
71                         throws UnsupportedEncodingException, AAIException {
72                 return new LegacyQueryParser(loader, builder, uri, queryParams);
73         }
74
75         /**
76          * @{inheritDoc}
77          */
78         @Override
79         public QueryParser buildObjectNameParser(String objName) {
80                 return new ObjectNameQueryParser(loader, builder, objName);
81         }
82 }