Commit 11d9038e authored by Brian Long's avatar Brian Long
Browse files

added v0 support

parent 41379c39
Loading
Loading
Loading
Loading
+7 −10
Original line number Diff line number Diff line
@@ -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);
	}

}
+92 −0
Original line number Diff line number Diff line
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<ClassInfo> 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<ClassInfo> getClassSubclasses(
    		@PathParam("classPrefix") String classPrefix,
    		@PathParam("classLocalName") String classLocalName);

    @GET
    @Path("/defclasses/{classPrefix}/{classLocalName}/associations")
    @Produces({ "application/json" })
    public List<AssociationInfo> 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<PropertyInfo> 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<PropertyInfo> getProperties(
    		@QueryParam("nsp") String namespacePrefix,
    		@QueryParam("name") String name,
    		@QueryParam("type") String dataType);

}
+106 −0
Original line number Diff line number Diff line
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;
		}
		
	}

}
+135 −0
Original line number Diff line number Diff line
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<String, AspectInfo> defaultAspects;

	@JsonProperty
	private Map<String, PropertyInfo> properties;

	@JsonProperty
	private Map<String, AssociationInfo> associations;

	@JsonProperty("childassociations")
	private Map<String, AssociationInfo> 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<String, AspectInfo> getDefaultAspects() {
		return defaultAspects;
	}

	public void setDefaultAspects(Map<String, AspectInfo> defaultAspects) {
		this.defaultAspects = defaultAspects;
	}

	public Map<String, PropertyInfo> getProperties() {
		return properties;
	}

	public void setProperties(Map<String, PropertyInfo> properties) {
		this.properties = properties;
	}

	public Map<String, AssociationInfo> 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<String, AssociationInfo> associations) {
		synchronized (this.syncAssocs) {
			this.associations = associations;
			this.correctedAssocs = false;
		}
	}

	public Map<String, AssociationInfo> 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<String, AssociationInfo> 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 {}

}
+34 −0
Original line number Diff line number Diff line
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<Map<String, String>> parameters;
	
	public String getType() {
		return type;
	}
	
	public void setType(String type) {
		this.type = type;
	}
	
	public List<Map<String, String>> getParameters() {
		return parameters;
	}
	
	public void setParameters(List<Map<String, String>> parameters) {
		this.parameters = parameters;
	}

}
Loading