split single and plural graph inventory uris
[so.git] / common / src / main / java / org / onap / so / client / aai / entities / uri / AAISimpleUri.java
index 1fe9da9..49dab59 100644 (file)
 package org.onap.so.client.aai.entities.uri;
 
 import java.net.URI;
-import java.util.regex.Pattern;
 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 {
+public class AAISimpleUri extends SimpleUri<AAIResourceUri, AAIPluralResourceUri, AAIObjectType, AAIObjectPlurals>
+        implements AAIResourceUri {
 
     private static final long serialVersionUID = -6397024057188453229L;
 
@@ -46,102 +44,30 @@ public class AAISimpleUri extends SimpleUri implements AAIResourceUri {
         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);
-    }
-
     protected AAISimpleUri(AAIResourceUri parentUri, AAIObjectType childType, Object... childValues) {
         super(parentUri, childType, childValues);
     }
 
-    protected AAISimpleUri(AAIResourceUri parentUri, AAIObjectPlurals childType) {
-        super(parentUri, childType);
-    }
-
-    @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);
+    // copy constructor
+    protected AAISimpleUri(AAISimpleUri copy) {
+        super(copy);
     }
 
     @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;
+        return new AAISimpleUri(this);
     }
 
     @Override
-    public AAISimpleUri depth(Depth depth) {
-        return (AAISimpleUri) super.depth(depth);
-    }
-
-    @Override
-    public AAISimpleUri nodesOnly(boolean nodesOnly) {
-        return (AAISimpleUri) super.nodesOnly(nodesOnly);
+    public AAISimpleUri relatedTo(AAIObjectType type, String... values) {
+        this.internalURI = internalURI.path(relatedTo);
+        return new AAISimpleUri(this, type, values);
     }
 
     @Override
-    public AAISimpleUri format(Format format) {
-        return (AAISimpleUri) super.format(format);
+    public AAISimplePluralUri relatedTo(AAIObjectPlurals plural) {
+        this.internalURI.path(relatedTo);
+        return new AAISimplePluralUri(this, plural);
     }
 
-    @Override
-    protected Pattern getPrefixPattern() {
-        return Pattern.compile("/aai/v\\d+");
-    }
 }