split single and plural graph inventory uris
[so.git] / common / src / main / java / org / onap / so / client / aai / entities / uri / AAISimpleUri.java
index 8731ae7..49dab59 100644 (file)
 package org.onap.so.client.aai.entities.uri;
 
 import java.net.URI;
-
 import javax.ws.rs.core.UriBuilder;
-
 import org.onap.so.client.aai.AAIObjectPlurals;
 import org.onap.so.client.aai.AAIObjectType;
-import org.onap.so.client.graphinventory.Format;
-import org.onap.so.client.graphinventory.entities.uri.Depth;
 import org.onap.so.client.graphinventory.entities.uri.SimpleUri;
 
-public class AAISimpleUri extends SimpleUri implements AAIResourceUri {
-       
-       protected AAISimpleUri(AAIObjectType type, Object... values) {
-               super(type, values);
-               
-       }
-       protected AAISimpleUri(AAIObjectType type, URI uri) {
-               super(type, uri);
-       }
-       protected AAISimpleUri(AAIObjectType type, UriBuilder builder, Object... values) {
-               super(type, builder, values);
-       }
-       protected AAISimpleUri(AAIObjectPlurals type, UriBuilder builder, Object... values) {
-               super(type, builder, values);
-       }
-       protected AAISimpleUri(AAIObjectPlurals type) {
-               super(type);
-       }
-       protected AAISimpleUri(AAIObjectPlurals type, Object... values) {
-               super(type, values);
-       }
-       
-       @Override
-       public AAISimpleUri relationshipAPI() {
-               return (AAISimpleUri) super.relationshipAPI();
-       }
-       
-       @Override
-       public AAISimpleUri relatedTo(AAIObjectPlurals plural) {
-               return (AAISimpleUri) super.relatedTo(plural);
-       }
-       @Override
-       public AAISimpleUri relatedTo(AAIObjectType type, String... values) {
-               return (AAISimpleUri) super.relatedTo(type, values);
-       }
-       
-       @Override
-       public AAISimpleUri resourceVersion(String version) {
-               return (AAISimpleUri) super.resourceVersion(version);
-       }
-       
-       @Override
-       public AAISimpleUri queryParam(String name, String... values) {
-               return (AAISimpleUri) super.queryParam(name, values);
-       }
-       
-       @Override
-       public AAISimpleUri replaceQueryParam(String name, String... values) {
-               return (AAISimpleUri) super.replaceQueryParam(name, values);
-       }
-       
-       @Override
-       public AAISimpleUri resultIndex(int index) {
-               return (AAISimpleUri) super.resultIndex(index);
-       }
-       
-       @Override
-       public AAISimpleUri resultSize(int size) {
-               return (AAISimpleUri) super.resultSize(size);
-       }
-       
-       @Override
-       public AAISimpleUri limit(int size) {
-               return (AAISimpleUri) super.limit(size);
-       }
-       
-       @Override
-       public AAISimpleUri clone() {
-               if (this.type != null) {
-                       return new AAISimpleUri((AAIObjectType)this.type, this.internalURI.clone(), values);
-               } else {
-                       return new AAISimpleUri((AAIObjectPlurals)this.pluralType, this.internalURI.clone(), values);
-               }
-       }
-       
-       @Override
-       public AAIObjectType getObjectType() {
-               return (AAIObjectType)this.type;
-       }
+public class AAISimpleUri extends SimpleUri<AAIResourceUri, AAIPluralResourceUri, AAIObjectType, AAIObjectPlurals>
+        implements AAIResourceUri {
+
+    private static final long serialVersionUID = -6397024057188453229L;
+
+    protected AAISimpleUri(AAIObjectType type, Object... values) {
+        super(type, values);
+
+    }
+
+    protected AAISimpleUri(AAIObjectType type, URI uri) {
+        super(type, uri);
+    }
+
+    protected AAISimpleUri(AAIObjectType type, UriBuilder builder, Object... values) {
+        super(type, builder, values);
+    }
+
+    protected AAISimpleUri(AAIResourceUri parentUri, AAIObjectType childType, Object... childValues) {
+        super(parentUri, childType, childValues);
+    }
+
+    // copy constructor
+    protected AAISimpleUri(AAISimpleUri copy) {
+        super(copy);
+    }
+
+    @Override
+    public AAISimpleUri clone() {
+        return new AAISimpleUri(this);
+    }
+
+    @Override
+    public AAISimpleUri relatedTo(AAIObjectType type, String... values) {
+        this.internalURI = internalURI.path(relatedTo);
+        return new AAISimpleUri(this, type, values);
+    }
+
+    @Override
+    public AAISimplePluralUri relatedTo(AAIObjectPlurals plural) {
+        this.internalURI.path(relatedTo);
+        return new AAISimplePluralUri(this, plural);
+    }
 
-       @Override
-       public AAISimpleUri depth(Depth depth) {
-               return (AAISimpleUri) super.depth(depth);
-       }
-       @Override
-       public AAISimpleUri nodesOnly(boolean nodesOnly) {
-               return (AAISimpleUri)super.nodesOnly(nodesOnly);
-       }
-       
-       @Override
-       public AAISimpleUri format(Format format) {
-               return (AAISimpleUri)super.format(format);
-       }
 }