diff --git a/pom.xml b/pom.xml
index 57d26c1..d070c5a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
4.0.0
com.inteligr8.alfresco
acs-public-rest-api
- 1.1.0-v1-acs6
+ 1.1.1-v1-acs6
Alfresco Content Services ReST API Client for Java
diff --git a/src/main/java/com/inteligr8/alfresco/acs/AcsPublicRestApi.java b/src/main/java/com/inteligr8/alfresco/acs/AcsPublicRestApi.java
index 4ae15b2..f23e50b 100644
--- a/src/main/java/com/inteligr8/alfresco/acs/AcsPublicRestApi.java
+++ b/src/main/java/com/inteligr8/alfresco/acs/AcsPublicRestApi.java
@@ -22,6 +22,7 @@ import com.inteligr8.alfresco.acs.api.SharedLinksApi;
import com.inteligr8.alfresco.acs.api.SitesApi;
import com.inteligr8.alfresco.acs.api.TagsApi;
import com.inteligr8.alfresco.acs.api.TrashcanApi;
+import com.inteligr8.alfresco.acs.api.V0Api;
import com.inteligr8.alfresco.acs.api.VersionsApi;
import com.inteligr8.rs.ClientConfiguration;
@@ -41,11 +42,7 @@ public abstract class AcsPublicRestApi {
public ActivitiesApi getActivitiesApi() {
return this.getApi(ActivitiesApi.class);
}
- /* v7
- public AspectsApi getAspectsApi() {
- return this.getApi(AspectsApi.class);
- }
- */
+
public AuditApi getAuditApi() {
return this.getApi(AuditApi.class);
}
@@ -125,13 +122,13 @@ public abstract class AcsPublicRestApi {
public TrashcanApi getTrashcanApi() {
return this.getApi(TrashcanApi.class);
}
- /*
- public TypesApi getTypesApi() {
- return this.getApi(TypesApi.class);
- }
- */
+
public VersionsApi getVersionsApi() {
return this.getApi(VersionsApi.class);
}
+
+ public V0Api getV0Api() {
+ return this.getApi(V0Api.class);
+ }
}
diff --git a/src/main/java/com/inteligr8/alfresco/acs/api/V0Api.java b/src/main/java/com/inteligr8/alfresco/acs/api/V0Api.java
new file mode 100755
index 0000000..97c734c
--- /dev/null
+++ b/src/main/java/com/inteligr8/alfresco/acs/api/V0Api.java
@@ -0,0 +1,92 @@
+package com.inteligr8.alfresco.acs.api;
+
+import java.util.List;
+
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+
+import com.inteligr8.alfresco.acs.model.v0.AssociationInfo;
+import com.inteligr8.alfresco.acs.model.v0.ClassInfo;
+import com.inteligr8.alfresco.acs.model.v0.MimeTypesData;
+import com.inteligr8.alfresco.acs.model.v0.PropertyInfo;
+import com.inteligr8.alfresco.acs.model.v0.ServerData;
+
+@Path("/service/api")
+public interface V0Api {
+
+ @GET
+ @Path("/server")
+ @Produces({ "application/json" })
+ public ServerData getServer();
+
+ @GET
+ @Path("/mimetypes/descriptions")
+ @Produces({ "application/json" })
+ public MimeTypesData getMimeTypes();
+
+ @GET
+ @Path("/defclasses")
+ @Produces({ "application/json" })
+ public List getClasses(
+ @QueryParam("cf") String classFilter,
+ @QueryParam("nsp") String namespacePrefix,
+ @QueryParam("n") String name);
+
+ @GET
+ @Path("/defclasses/{classPrefix}/{classLocalName}")
+ @Produces({ "application/json" })
+ public ClassInfo getClass(
+ @PathParam("classPrefix") String classPrefix,
+ @PathParam("classLocalName") String classLocalName);
+
+ @GET
+ @Path("/defclasses/{classPrefix}/{classLocalName}/subclasses")
+ @Produces({ "application/json" })
+ public List getClassSubclasses(
+ @PathParam("classPrefix") String classPrefix,
+ @PathParam("classLocalName") String classLocalName);
+
+ @GET
+ @Path("/defclasses/{classPrefix}/{classLocalName}/associations")
+ @Produces({ "application/json" })
+ public List getClassAssociations(
+ @PathParam("classPrefix") String classPrefix,
+ @PathParam("classLocalName") String classLocalName);
+
+ @GET
+ @Path("/defclasses/{classPrefix}/{classLocalName}/association/{assocPrefix}/{assocLocalName}")
+ @Produces({ "application/json" })
+ public AssociationInfo getClassAssociation(
+ @PathParam("classPrefix") String classPrefix,
+ @PathParam("classLocalName") String classLocalName,
+ @PathParam("assocPrefix") String assocPrefix,
+ @PathParam("assocLocalName") String assocLocalName);
+
+ @GET
+ @Path("/defclasses/{classPrefix}/{classLocalName}/properties")
+ @Produces({ "application/json" })
+ public List getClassProperties(
+ @PathParam("classPrefix") String classPrefix,
+ @PathParam("classLocalName") String classLocalName);
+
+ @GET
+ @Path("/defclasses/{classPrefix}/{classLocalName}/property/{propPrefix}/{propLocalName}")
+ @Produces({ "application/json" })
+ public PropertyInfo getClassProperty(
+ @PathParam("classPrefix") String classPrefix,
+ @PathParam("classLocalName") String classLocalName,
+ @PathParam("propPrefix") String propPrefix,
+ @PathParam("propLocalName") String propLocalName);
+
+ @GET
+ @Path("/properties")
+ @Produces({ "application/json" })
+ public List getProperties(
+ @QueryParam("nsp") String namespacePrefix,
+ @QueryParam("name") String name,
+ @QueryParam("type") String dataType);
+
+}
diff --git a/src/main/java/com/inteligr8/alfresco/acs/model/v0/AssociationInfo.java b/src/main/java/com/inteligr8/alfresco/acs/model/v0/AssociationInfo.java
new file mode 100755
index 0000000..1cd3c99
--- /dev/null
+++ b/src/main/java/com/inteligr8/alfresco/acs/model/v0/AssociationInfo.java
@@ -0,0 +1,106 @@
+package com.inteligr8.alfresco.acs.model.v0;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class AssociationInfo extends NamedObject {
+
+ @JsonProperty("isChildAssociation")
+ private boolean childAssociation;
+
+ @JsonProperty("protected")
+ private boolean protected_;
+
+ @JsonProperty
+ private boolean duplicateChildNameAllowed;
+
+ @JsonProperty
+ private EndpointInfo source;
+
+ @JsonProperty
+ private EndpointInfo target;
+
+
+
+ public boolean isChildAssociation() {
+ return childAssociation;
+ }
+
+ public void setChildAssociation(boolean childAssociation) {
+ this.childAssociation = childAssociation;
+ }
+
+ public boolean isProtected() {
+ return protected_;
+ }
+
+ public void setProtected(boolean protected_) {
+ this.protected_ = protected_;
+ }
+
+ public boolean isDuplicateChildNameAllowed() {
+ return duplicateChildNameAllowed;
+ }
+
+ public void setDuplicateChildNameAllowed(boolean duplicateChildNameAllowed) {
+ this.duplicateChildNameAllowed = duplicateChildNameAllowed;
+ }
+
+ public EndpointInfo getSource() {
+ return source;
+ }
+
+ public void setSource(EndpointInfo source) {
+ this.source = source;
+ }
+
+ public EndpointInfo getTarget() {
+ return target;
+ }
+
+ public void setTarget(EndpointInfo target) {
+ this.target = target;
+ }
+
+
+
+ @JsonIgnoreProperties(ignoreUnknown = true)
+ public static class EndpointInfo {
+
+ @JsonProperty("class")
+ private String className;
+
+ @JsonProperty
+ private boolean mandatory;
+
+ @JsonProperty
+ private boolean many;
+
+ public String getClassName() {
+ return className;
+ }
+
+ public void setClassName(String className) {
+ this.className = className;
+ }
+
+ public boolean isMandatory() {
+ return mandatory;
+ }
+
+ public void setMandatory(boolean mandatory) {
+ this.mandatory = mandatory;
+ }
+
+ public boolean isMany() {
+ return many;
+ }
+
+ public void setMany(boolean many) {
+ this.many = many;
+ }
+
+ }
+
+}
diff --git a/src/main/java/com/inteligr8/alfresco/acs/model/v0/ClassInfo.java b/src/main/java/com/inteligr8/alfresco/acs/model/v0/ClassInfo.java
new file mode 100755
index 0000000..d6fcddb
--- /dev/null
+++ b/src/main/java/com/inteligr8/alfresco/acs/model/v0/ClassInfo.java
@@ -0,0 +1,135 @@
+package com.inteligr8.alfresco.acs.model.v0;
+
+import java.util.Map;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ClassInfo extends NamedObject {
+
+ @JsonProperty
+ private boolean isAspect;
+
+ @JsonProperty
+ private boolean isContainer;
+
+ @JsonProperty
+ private String description;
+
+ @JsonProperty
+ private ParentInfo parent;
+
+ @JsonProperty
+ private Map defaultAspects;
+
+ @JsonProperty
+ private Map properties;
+
+ @JsonProperty
+ private Map associations;
+
+ @JsonProperty("childassociations")
+ private Map childAssociations;
+
+
+ private Object syncAssocs = new Object();
+ private boolean correctedAssocs = false;
+
+ private Object syncChildAssocs = new Object();
+ private boolean correctedChildAssocs = false;
+
+
+ public boolean isAspect() {
+ return isAspect;
+ }
+
+ public void setAspect(boolean isAspect) {
+ this.isAspect = isAspect;
+ }
+
+ public boolean isContainer() {
+ return isContainer;
+ }
+
+ public void setContainer(boolean isContainer) {
+ this.isContainer = isContainer;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public ParentInfo getParent() {
+ return parent;
+ }
+
+ public void setParent(ParentInfo parent) {
+ this.parent = parent;
+ }
+
+ public Map getDefaultAspects() {
+ return defaultAspects;
+ }
+
+ public void setDefaultAspects(Map defaultAspects) {
+ this.defaultAspects = defaultAspects;
+ }
+
+ public Map getProperties() {
+ return properties;
+ }
+
+ public void setProperties(Map properties) {
+ this.properties = properties;
+ }
+
+ public Map getAssociations() {
+ synchronized (this.syncAssocs) {
+ if (!this.correctedAssocs)
+ for (AssociationInfo assoc : this.associations.values())
+ assoc.setChildAssociation(false);
+ this.correctedAssocs = true;
+ }
+
+ return associations;
+ }
+
+ public void setAssociations(Map associations) {
+ synchronized (this.syncAssocs) {
+ this.associations = associations;
+ this.correctedAssocs = false;
+ }
+ }
+
+ public Map getChildAssociations() {
+ synchronized (this.syncChildAssocs) {
+ if (!this.correctedChildAssocs)
+ for (AssociationInfo assoc : this.childAssociations.values())
+ assoc.setChildAssociation(false);
+ this.correctedChildAssocs = true;
+ }
+
+ return childAssociations;
+ }
+
+ public void setChildAssociations(Map childAssociations) {
+ synchronized (this.syncChildAssocs) {
+ this.childAssociations = childAssociations;
+ this.correctedChildAssocs = false;
+ }
+ }
+
+
+
+ @JsonIgnoreProperties(ignoreUnknown = true)
+ public static class ParentInfo extends NamedObject {}
+
+ @JsonIgnoreProperties(ignoreUnknown = true)
+ public static class AspectInfo extends NamedObject {}
+
+}
diff --git a/src/main/java/com/inteligr8/alfresco/acs/model/v0/ConstraintInfo.java b/src/main/java/com/inteligr8/alfresco/acs/model/v0/ConstraintInfo.java
new file mode 100755
index 0000000..67e1519
--- /dev/null
+++ b/src/main/java/com/inteligr8/alfresco/acs/model/v0/ConstraintInfo.java
@@ -0,0 +1,34 @@
+package com.inteligr8.alfresco.acs.model.v0;
+
+import java.util.List;
+import java.util.Map;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ConstraintInfo {
+
+ @JsonProperty
+ private String type;
+
+ @JsonProperty
+ private List