diff --git a/source/java/org/alfresco/rest/api/impl/NodesImpl.java b/source/java/org/alfresco/rest/api/impl/NodesImpl.java index eb779a3f40..843290f6d7 100644 --- a/source/java/org/alfresco/rest/api/impl/NodesImpl.java +++ b/source/java/org/alfresco/rest/api/impl/NodesImpl.java @@ -53,6 +53,7 @@ import org.alfresco.service.cmr.dictionary.DictionaryService; import org.alfresco.service.cmr.model.FileFolderService; import org.alfresco.service.cmr.model.FileInfo; import org.alfresco.service.cmr.model.FileNotFoundException; +import org.alfresco.service.cmr.repository.ContentData; import org.alfresco.service.cmr.repository.ContentWriter; import org.alfresco.service.cmr.repository.InvalidNodeRefException; import org.alfresco.service.cmr.repository.NodeRef; @@ -66,6 +67,7 @@ import org.alfresco.util.Pair; import java.io.InputStream; import java.io.Serializable; +import java.math.BigInteger; import java.util.AbstractList; import java.util.ArrayList; import java.util.Arrays; @@ -278,18 +280,26 @@ public class NodesImpl implements Nodes } /** - * Returns the public api representation of a document. - * - * @deprecated review usage (backward compat') + * @deprecated note: currently required for backwards compat' (Favourites API) */ public Document getDocument(NodeRef nodeRef) { Type type = getType(nodeRef); if (type.equals(Type.DOCUMENT)) - { + { Map properties = nodeService.getProperties(nodeRef); - Document doc = new Document(nodeRef, getParentNodeRef(nodeRef), properties, sr); + Document doc = new Document(nodeRef, getParentNodeRef(nodeRef), properties, sr); + + doc.setVersionLabel((String)properties.get(ContentModel.PROP_VERSION_LABEL)); + ContentData cd = (ContentData) properties.get(ContentModel.PROP_CONTENT); + if (cd != null) + { + doc.setSizeInBytes(BigInteger.valueOf(cd.getSize())); + doc.setMimeType((cd.getMimetype())); + } + + setCommonProps(doc, nodeRef, properties); return doc; } else @@ -297,11 +307,18 @@ public class NodesImpl implements Nodes throw new InvalidArgumentException("Node is not a file"); } } + + private void setCommonProps(Node node, NodeRef nodeRef, Map properties) + { + node.setGuid(nodeRef); + node.setTitle((String)properties.get(ContentModel.PROP_TITLE)); + node.setDescription((String)properties.get(ContentModel.PROP_TITLE)); + node.setModifiedBy((String)properties.get(ContentModel.PROP_MODIFIER)); + node.setCreatedBy((String)properties.get(ContentModel.PROP_CREATOR)); + } /** - * Returns the public api representation of a folder. - * - * @deprecated review usage (backward compat') + * @deprecated note: currently required for backwards compat' (Favourites API) */ public Folder getFolder(NodeRef nodeRef) { @@ -311,6 +328,7 @@ public class NodesImpl implements Nodes Map properties = nodeService.getProperties(nodeRef); Folder folder = new Folder(nodeRef, getParentNodeRef(nodeRef), properties, sr); + setCommonProps(folder, nodeRef, properties); return folder; } else diff --git a/source/java/org/alfresco/rest/api/model/Document.java b/source/java/org/alfresco/rest/api/model/Document.java index 9303c5ee96..a658dfa05f 100644 --- a/source/java/org/alfresco/rest/api/model/Document.java +++ b/source/java/org/alfresco/rest/api/model/Document.java @@ -44,11 +44,6 @@ import org.alfresco.service.namespace.QName; */ public class Document extends Node { - // TODO backward compat' - favourites etc - private String mimeType; - private BigInteger sizeInBytes; - private String versionLabel; - private ContentInfo contentInfo; public Document() { @@ -67,25 +62,8 @@ public class Document extends Node String mimeTypeName = sr.getMimetypeService().getDisplaysByMimetype().get(mimeType); this.contentInfo = new ContentInfo(mimeType, mimeTypeName, cd.getSize(), cd.getEncoding()); } - - //this.versionLabel = (String)nodeProps.get(ContentModel.PROP_VERSION_LABEL); } - public String getMimeType() - { - return mimeType; - } - - public BigInteger getSizeInBytes() - { - return sizeInBytes; - } - - public String getVersionLabel() - { - return versionLabel; - } - public Boolean getIsFolder() { return false; @@ -96,12 +74,66 @@ public class Document extends Node return contentInfo; } - @Override - public String toString() - { + @Override + public String toString() + { return "Document [contentInfo=" + contentInfo.toString() + ", nodeRef=" + nodeRef + ", name=" + name + ", createdAt=" + createdAt - + ", modifiedAt=" + modifiedAt + ", createdBy=" + createdBy - + ", modifiedBy=" + modifiedBy + "]"; + + ", modifiedAt=" + modifiedAt + ", createdBy=" + createdBy + + ", modifiedBy=" + modifiedBy + "]"; + } + + // TODO for backwards compat' - set explicitly when needed (ie. favourites) + private String mimeType; + private BigInteger sizeInBytes; + private String versionLabel; + + /** + * @deprecated + */ + public String getMimeType() + { + return mimeType; } + + /** + * @deprecated + */ + public BigInteger getSizeInBytes() + { + return sizeInBytes; + } + + /** + * @deprecated + */ + public String getVersionLabel() + { + return versionLabel; + } + + /** + * @deprecated + */ + public void setMimeType(String mimeType) + { + this.mimeType = mimeType; + } + + /** + * @deprecated + */ + public void setSizeInBytes(BigInteger sizeInBytes) + { + this.sizeInBytes = sizeInBytes; + } + + /** + * @deprecated + */ + public void setVersionLabel(String versionLabel) + { + this.versionLabel = versionLabel; + } + } diff --git a/source/java/org/alfresco/rest/api/model/Node.java b/source/java/org/alfresco/rest/api/model/Node.java index ee1ad6495e..36bebed44b 100644 --- a/source/java/org/alfresco/rest/api/model/Node.java +++ b/source/java/org/alfresco/rest/api/model/Node.java @@ -52,13 +52,6 @@ public class Node implements Comparable protected NodeRef nodeRef; protected String name; - // TODO needed for favourties - backwards compat' - we could also choose to split of NodeInfo / Node impl's etc - protected String title; - protected NodeRef guid; - protected String description; - protected String createdBy; - protected String modifiedBy; - protected Date createdAt; protected Date modifiedAt; protected UserInfo createdByUser; @@ -84,7 +77,7 @@ public class Node implements Comparable this.nodeRef = nodeRef; this.parentNodeRef = parentNodeRef; - mapBasicInfo(nodeProps, sr); + mapMinimalInfo(nodeProps, sr); } protected Object getValue(Map> props, String name) @@ -98,7 +91,7 @@ public class Node implements Comparable { } - protected void mapBasicInfo(Map nodeProps, ServiceRegistry sr) + protected void mapMinimalInfo(Map nodeProps, ServiceRegistry sr) { PersonService personService = sr.getPersonService(); @@ -133,20 +126,6 @@ public class Node implements Comparable } } - public void setGuid(NodeRef guid) - { - this.guid = guid; - } - - public NodeRef getGuid() { - return guid; - } - - public String getTitle() - { - return title; - } - @UniqueId public NodeRef getNodeRef() { @@ -173,11 +152,6 @@ public class Node implements Comparable return modifiedAt; } - public String getModifiedBy() - { - return modifiedBy; - } - public UserInfo getModifiedByUser() { return modifiedByUser; } @@ -186,11 +160,6 @@ public class Node implements Comparable return createdByUser; } - public String getDescription() - { - return description; - } - public String getName() { return this.name; @@ -201,16 +170,6 @@ public class Node implements Comparable this.name = name; } - public String getCreatedBy() - { - return this.createdBy; - } - - public void setCreatedBy(String createdBy) - { - this.createdBy = createdBy; - } - public PathInfo getPath() { return pathInfo; @@ -282,4 +241,91 @@ public class Node implements Comparable + createdAt + ", modifiedAt=" + modifiedAt + ", createdByUser=" + createdByUser + ", modifiedBy=" + modifiedByUser + ", pathInfo =" + pathInfo +"]"; } + + // TODO for backwards compat' - set explicitly when needed (ie. favourites) (note: we could choose to have separate old Node/NodeImpl etc) + + protected String title; + protected NodeRef guid; + protected String description; + protected String createdBy; + protected String modifiedBy; + + /** + * @deprecated + */ + public NodeRef getGuid() { + return guid; + } + + /** + * @deprecated + */ + public void setGuid(NodeRef guid) + { + this.guid = guid; + } + + /** + * @deprecated + */ + public String getTitle() + { + return title; + } + + /** + * @deprecated + */ + public void setTitle(String title) + { + this.title = title; + } + + /** + * @deprecated + */ + public String getDescription() + { + return description; + } + + /** + * @deprecated + */ + public void setDescription(String description) + { + this.description = description; + } + + /** + * @deprecated + */ + public String getCreatedBy() + { + return this.createdBy; + } + + /** + * @deprecated + */ + public void setCreatedBy(String createdBy) + { + this.createdBy = createdBy; + } + + /** + * @deprecated + */ + public String getModifiedBy() + { + return modifiedBy; + } + + /** + * @deprecated + */ + public void setModifiedBy(String modifiedBy) + { + this.modifiedBy = modifiedBy; + } } \ No newline at end of file