Approval Batch, prep better JUnit
[aaf/authz.git] / cadi / aaf / src / main / java / org / onap / aaf / cadi / aaf / v2_0 / AAFSingleLocator.java
1 /**
2  * ============LICENSE_START====================================================
3  * org.onap.aaf
4  * ===========================================================================
5  * Copyright (c) 2018 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.onap.aaf.cadi.aaf.v2_0;
22
23 import java.net.URI;
24 import java.net.URISyntaxException;
25
26 import org.onap.aaf.cadi.Locator;
27 import org.onap.aaf.cadi.LocatorException;
28
29 /**
30  * This Locator good for using Inside Docker or K8s, where there is no real lookup, 
31  * and there is conflict between external and internal host names, due to 
32  * Service abstraction.
33  * 
34  * @author Instrumental(Jonathan)
35  *
36  */
37 public class AAFSingleLocator implements Locator<URI> {
38         
39         private final URI uri;
40
41         /**
42          * NS here is "container" ns.  AAF NS is assumed to be AAF_NS at this level of client code.
43          * @param cont_ns
44          * @param prefix
45          * @param version
46          * @throws URISyntaxException 
47          */
48         public AAFSingleLocator(final String uri) throws URISyntaxException {
49                 this.uri = new URI(uri);
50         }
51         
52         @Override
53         public URI get(Item item) throws LocatorException {
54                 return uri;
55         }
56
57         @Override
58         public boolean hasItems() {
59                 return true;
60         }
61
62         @Override
63         public void invalidate(Item item) throws LocatorException {
64         }
65
66         @Override
67         public Item best() throws LocatorException {
68                 return new SingleItem();
69         }
70
71         @Override
72         public Item first() throws LocatorException {
73                 return new SingleItem();
74         }
75
76         @Override
77         public Item next(Item item) throws LocatorException {
78                 return null; // only one item
79         }
80
81         @Override
82         public boolean refresh() {
83                 return false;
84         }
85
86         @Override
87         public void destroy() {
88         }
89         
90         private class SingleItem implements Item {
91         }
92 }