You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by fg...@apache.org on 2009/07/22 20:25:14 UTC
svn commit: r796821 - in /incubator/chemistry/trunk/chemistry:
chemistry-api/src/main/java/org/apache/chemistry/
chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/
chemistry-atompub-client/src/test/resources/ chemistry-atompub-...
Author: fguillaume
Date: Wed Jul 22 18:25:13 2009
New Revision: 796821
URL: http://svn.apache.org/viewvc?rev=796821&view=rev
Log:
CMIS-44: cleanup of type id vs name
Modified:
incubator/chemistry/trunk/chemistry/chemistry-api/src/main/java/org/apache/chemistry/CMISObject.java
incubator/chemistry/trunk/chemistry/chemistry-api/src/main/java/org/apache/chemistry/ObjectEntry.java
incubator/chemistry/trunk/chemistry/chemistry-api/src/main/java/org/apache/chemistry/Property.java
incubator/chemistry/trunk/chemistry/chemistry-api/src/main/java/org/apache/chemistry/Type.java
incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/APPConnection.java
incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/APPFolder.java
incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/APPObject.java
incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/APPObjectEntry.java
incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/APPType.java
incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/TypeEntryReader.java
incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/test/resources/feed-types.xml
incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/main/java/org/apache/chemistry/atompub/server/CMISObjectsCollection.java
incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/main/java/org/apache/chemistry/atompub/server/CMISTypesCollection.java
incubator/chemistry/trunk/chemistry/chemistry-atompub/src/main/java/org/apache/chemistry/atompub/CMIS.java
incubator/chemistry/trunk/chemistry/chemistry-atompub/src/main/java/org/apache/chemistry/atompub/abdera/PropertiesElement.java
incubator/chemistry/trunk/chemistry/chemistry-commons/src/main/java/org/apache/chemistry/impl/base/BaseObject.java
incubator/chemistry/trunk/chemistry/chemistry-commons/src/main/java/org/apache/chemistry/impl/simple/SimpleConnection.java
incubator/chemistry/trunk/chemistry/chemistry-commons/src/main/java/org/apache/chemistry/impl/simple/SimpleData.java
incubator/chemistry/trunk/chemistry/chemistry-commons/src/main/java/org/apache/chemistry/impl/simple/SimpleObject.java
incubator/chemistry/trunk/chemistry/chemistry-commons/src/main/java/org/apache/chemistry/impl/simple/SimpleObjectEntry.java
incubator/chemistry/trunk/chemistry/chemistry-commons/src/main/java/org/apache/chemistry/impl/simple/SimpleRepository.java
incubator/chemistry/trunk/chemistry/chemistry-commons/src/main/java/org/apache/chemistry/impl/simple/SimpleType.java
incubator/chemistry/trunk/chemistry/chemistry-commons/src/test/java/org/apache/chemistry/impl/simple/TestSimpleRepository.java
incubator/chemistry/trunk/chemistry/chemistry-jcr/src/main/java/org/apache/chemistry/jcr/JcrDocument.java
incubator/chemistry/trunk/chemistry/chemistry-jcr/src/main/java/org/apache/chemistry/jcr/JcrFolder.java
incubator/chemistry/trunk/chemistry/chemistry-jcr/src/main/java/org/apache/chemistry/jcr/JcrObjectEntry.java
incubator/chemistry/trunk/chemistry/chemistry-jcr/src/main/java/org/apache/chemistry/jcr/JcrType.java
Modified: incubator/chemistry/trunk/chemistry/chemistry-api/src/main/java/org/apache/chemistry/CMISObject.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-api/src/main/java/org/apache/chemistry/CMISObject.java?rev=796821&r1=796820&r2=796821&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-api/src/main/java/org/apache/chemistry/CMISObject.java (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-api/src/main/java/org/apache/chemistry/CMISObject.java Wed Jul 22 18:25:13 2009
@@ -191,6 +191,11 @@
Type getType();
/**
+ * The object's base type.
+ */
+ BaseType getBaseType();
+
+ /**
* Gets a property.
*
* @param name the property name
Modified: incubator/chemistry/trunk/chemistry/chemistry-api/src/main/java/org/apache/chemistry/ObjectEntry.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-api/src/main/java/org/apache/chemistry/ObjectEntry.java?rev=796821&r1=796820&r2=796821&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-api/src/main/java/org/apache/chemistry/ObjectEntry.java (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-api/src/main/java/org/apache/chemistry/ObjectEntry.java Wed Jul 22 18:25:13 2009
@@ -37,6 +37,13 @@
String getTypeId();
/**
+ * Gets the base type for this entry.
+ *
+ * @return the base type
+ */
+ BaseType getBaseType();
+
+ /**
* Gets a property value.
* <p>
* Returns {@code null} is the property is not set, not fetched or unknown.
Modified: incubator/chemistry/trunk/chemistry/chemistry-api/src/main/java/org/apache/chemistry/Property.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-api/src/main/java/org/apache/chemistry/Property.java?rev=796821&r1=796820&r2=796821&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-api/src/main/java/org/apache/chemistry/Property.java (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-api/src/main/java/org/apache/chemistry/Property.java Wed Jul 22 18:25:13 2009
@@ -33,6 +33,8 @@
String TYPE_ID = "ObjectTypeId";
+ String BASE_TYPE_ID = "BaseTypeId";
+
String CREATED_BY = "CreatedBy";
String CREATION_DATE = "CreationDate";
Modified: incubator/chemistry/trunk/chemistry/chemistry-api/src/main/java/org/apache/chemistry/Type.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-api/src/main/java/org/apache/chemistry/Type.java?rev=796821&r1=796820&r2=796821&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-api/src/main/java/org/apache/chemistry/Type.java (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-api/src/main/java/org/apache/chemistry/Type.java Wed Jul 22 18:25:13 2009
@@ -69,16 +69,6 @@
BaseType getBaseType();
/**
- * The base type's query name.
- * <p>
- * This can be only {@code Document}, {@code Folder}, {@code Relationship},
- * or {@code Policy}.
- *
- * @return the base type's query name
- */
- String getBaseTypeQueryName();
-
- /**
* The type's description.
* <p>
* This is an application's description of this type, such as the nature of
Modified: incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/APPConnection.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/APPConnection.java?rev=796821&r1=796820&r2=796821&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/APPConnection.java (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/APPConnection.java Wed Jul 22 18:25:13 2009
@@ -180,7 +180,7 @@
includeAllowableActions, includeRelationships,
Integer.MAX_VALUE, 0, orderBy, new boolean[1]);
for (ObjectEntry child : children) {
- BaseType childType = repository.getType(child.getTypeId()).getBaseType();
+ BaseType childType = child.getBaseType();
if (type == null || childType.equals(type)) {
list.add(child);
}
@@ -228,9 +228,7 @@
boolean done = false;
for (ObjectEntry entry : feed) {
// type filtering
- if (type != null
- && !repository.getType(entry.getTypeId()).getBaseType().equals(
- type)) {
+ if (type != null && !entry.getBaseType().equals(type)) {
continue;
}
// skip
@@ -259,8 +257,7 @@
// TODO filter, includeRelationship, includeAllowableActions
List<ObjectEntry> result = new LinkedList<ObjectEntry>();
APPObjectEntry current = getObjectEntry(folder);
- Type type = repository.getType(current.getTypeId());
- if (!type.getBaseType().equals(BaseType.FOLDER)) {
+ if (!current.getBaseType().equals(BaseType.FOLDER)) {
throw new IllegalArgumentException("Not a folder: " + folder);
}
String rootId = current.connection.getRootFolder().getId();
@@ -344,7 +341,7 @@
}
APPObjectEntry entry = getObjectEntry(object);
Type type = getRepository().getType(entry.getTypeId());
- switch (type.getBaseType()) {
+ switch (entry.getBaseType()) {
case DOCUMENT:
return new APPDocument(entry, type);
case FOLDER:
@@ -354,7 +351,7 @@
case RELATIONSHIP:
throw new UnsupportedOperationException("Not yet implemented");
default:
- throw new AssertionError(type.getBaseType());
+ throw new AssertionError(entry.getBaseType());
}
// throw new UnsupportedOperationException("Not yet implemented");
Modified: incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/APPFolder.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/APPFolder.java?rev=796821&r1=796820&r2=796821&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/APPFolder.java (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/APPFolder.java Wed Jul 22 18:25:13 2009
@@ -73,11 +73,8 @@
List<ObjectEntry> feed = resp.getObjectFeed(new ReadContext(
entry.connection));
List<CMISObject> children = new ArrayList<CMISObject>(feed.size());
- APPRepository repository = entry.connection.repository;
for (ObjectEntry child : feed) {
- if (type != null
- && !repository.getType(child.getTypeId()).getBaseType().equals(
- type)) {
+ if (type != null && !child.getBaseType().equals(type)) {
continue;
}
children.add(APPObject.construct((APPObjectEntry) child));
Modified: incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/APPObject.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/APPObject.java?rev=796821&r1=796820&r2=796821&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/APPObject.java (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/APPObject.java Wed Jul 22 18:25:13 2009
@@ -55,8 +55,7 @@
protected static APPObject construct(APPObjectEntry entry) {
Type type = entry.connection.repository.getType(entry.getTypeId());
- BaseType baseType = type.getBaseType();
- switch (baseType) {
+ switch (entry.getBaseType()) {
case DOCUMENT:
return new APPDocument(entry, type);
case FOLDER:
@@ -66,7 +65,7 @@
case RELATIONSHIP:
// return new APPRelationship(entry, type);
default:
- throw new AssertionError(baseType.toString());
+ throw new AssertionError(entry.getBaseType().toString());
}
}
@@ -164,6 +163,10 @@
return type;
}
+ public BaseType getBaseType() {
+ return type.getBaseType();
+ }
+
public Property getProperty(String name) {
PropertyDefinition pd = getType().getPropertyDefinition(name);
if (pd == null) {
Modified: incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/APPObjectEntry.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/APPObjectEntry.java?rev=796821&r1=796820&r2=796821&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/APPObjectEntry.java (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/APPObjectEntry.java Wed Jul 22 18:25:13 2009
@@ -28,6 +28,7 @@
import java.util.Set;
import java.util.Map.Entry;
+import org.apache.chemistry.BaseType;
import org.apache.chemistry.ObjectEntry;
import org.apache.chemistry.Property;
import org.apache.chemistry.PropertyDefinition;
@@ -107,6 +108,10 @@
return (String) getValue(Property.TYPE_ID);
}
+ public BaseType getBaseType() {
+ return BaseType.get((String) getValue(Property.BASE_TYPE_ID));
+ }
+
public Serializable getValue(String name) {
XmlProperty p = properties.get(name);
return p == null ? null : p.getValue();
Modified: incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/APPType.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/APPType.java?rev=796821&r1=796820&r2=796821&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/APPType.java (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/APPType.java Wed Jul 22 18:25:13 2009
@@ -56,22 +56,6 @@
propertyDefs = props;
}
- // should be added to API
- public boolean isFolder() {
- return getBaseType() == BaseType.FOLDER;
- }
-
- public BaseType getBaseType() {
- if (baseType == null) {
- baseType = BaseType.get(map.get(CMIS.BASE_TYPE.getLocalPart()));
- }
- return baseType;
- }
-
- public String getBaseTypeQueryName() {
- return map.get(CMIS.BASE_TYPE_QUERY_NAME.getLocalPart());
- }
-
public String getDescription() {
return map.get(CMIS.DESCRIPTION.getLocalPart());
}
@@ -87,7 +71,20 @@
@Override
public String getTypeId() {
- return map.get(CMIS.TYPE_ID.getLocalPart());
+ return map.get(CMIS.ID.getLocalPart());
+ }
+
+ @Override
+ public BaseType getBaseType() {
+ if (baseType == null) {
+ baseType = BaseType.get(map.get(CMIS.BASE_TYPE_ID.getLocalPart()));
+ }
+ return baseType;
+ }
+
+ // should be added to API
+ public boolean isFolder() {
+ return getBaseType() == BaseType.FOLDER;
}
public String getParentId() {
Modified: incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/TypeEntryReader.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/TypeEntryReader.java?rev=796821&r1=796820&r2=796821&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/TypeEntryReader.java (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/TypeEntryReader.java Wed Jul 22 18:25:13 2009
@@ -18,9 +18,11 @@
*/
package org.apache.chemistry.atompub.client;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
+import javax.xml.namespace.QName;
import javax.xml.stream.XMLStreamException;
import org.apache.chemistry.PropertyDefinition;
@@ -90,7 +92,7 @@
log.error("Cannot read text element for: " + name, e);
continue;
}
- if (name.equals(CMIS.BASE_TYPE.getLocalPart())) {
+ if (name.equals(CMIS.BASE_TYPE_ID.getLocalPart())) {
// check base type coherent with base element
// eg "folder" for a <cmis:folderType>
if (!localName.startsWith(text)) {
@@ -103,6 +105,30 @@
map.put(name, text);
}
}
+ // check some mandatory properties
+ // TODO also for documents: versionable, contentStreamAllowed
+ // TODO also for relationships: allowedSourceTypes, allowedTargetTypes
+ for (QName qname : Arrays.asList( //
+ CMIS.ID, //
+ // TODO localName, localNamespace
+ CMIS.QUERY_NAME, //
+ CMIS.DISPLAY_NAME, //
+ CMIS.BASE_TYPE_ID, //
+ CMIS.PARENT_ID, //
+ CMIS.DESCRIPTION, //
+ CMIS.CREATABLE, //
+ CMIS.FILEABLE, //
+ CMIS.QUERYABLE, //
+ CMIS.CONTROLLABLE, //
+ CMIS.INCLUDED_IN_SUPERTYPE_QUERY //
+ )) {
+ if (!map.containsKey(qname.getLocalPart())) {
+ throw new IllegalArgumentException(
+ "Invalid type definition: missing "
+ + qname.getPrefix() + ':'
+ + qname.getLocalPart());
+ }
+ }
entry.init(map, pdefs);
}
}
Modified: incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/test/resources/feed-types.xml
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/test/resources/feed-types.xml?rev=796821&r1=796820&r2=796821&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/test/resources/feed-types.xml (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/test/resources/feed-types.xml Wed Jul 22 18:25:13 2009
@@ -15,11 +15,10 @@
<link href="http://127.0.0.1:8080/cmis/type/document" rel="alternate" />
<link href="http://127.0.0.1:8080/cmis/repository" rel="repository" />
<cmis:documentType>
- <cmis:typeId>document</cmis:typeId>
+ <cmis:id>document</cmis:id>
<cmis:queryName>Document</cmis:queryName>
<cmis:displayName>Document Type</cmis:displayName>
- <cmis:baseType>document</cmis:baseType>
- <cmis:baseTypeQueryName>Document</cmis:baseTypeQueryName>
+ <cmis:baseTypeId>document</cmis:baseTypeId>
<cmis:parentId />
<cmis:description></cmis:description>
<cmis:creatable>true</cmis:creatable>
@@ -39,11 +38,10 @@
<link href="http://127.0.0.1:8080/cmis/type/folder" rel="alternate" />
<link href="http://127.0.0.1:8080/cmis/repository" rel="repository" />
<cmis:folderType>
- <cmis:typeId>folder</cmis:typeId>
+ <cmis:id>folder</cmis:id>
<cmis:queryName>Folder</cmis:queryName>
<cmis:displayName>Folder Type</cmis:displayName>
- <cmis:baseType>folder</cmis:baseType>
- <cmis:baseTypeQueryName>Folder</cmis:baseTypeQueryName>
+ <cmis:baseTypeId>folder</cmis:baseTypeId>
<cmis:parentId />
<cmis:description></cmis:description>
<cmis:creatable>true</cmis:creatable>
@@ -63,11 +61,10 @@
<link href="http://127.0.0.1:8080/cmis/type/relationship" rel="alternate" />
<link href="http://127.0.0.1:8080/cmis/repository" rel="repository" />
<cmis:relationshipType>
- <cmis:typeId>relationship</cmis:typeId>
+ <cmis:id>relationship</cmis:id>
<cmis:queryName>Relationship</cmis:queryName>
<cmis:displayName>Relationship Type</cmis:displayName>
- <cmis:baseType>relationship</cmis:baseType>
- <cmis:baseTypeQueryName>Relationship</cmis:baseTypeQueryName>
+ <cmis:baseTypeId>relationship</cmis:baseTypeId>
<cmis:parentId />
<cmis:description></cmis:description>
<cmis:creatable>true</cmis:creatable>
@@ -87,11 +84,10 @@
<link href="http://127.0.0.1:8080/cmis/type/policy" rel="alternate" />
<link href="http://127.0.0.1:8080/cmis/repository" rel="repository" />
<cmis:policyType>
- <cmis:typeId>policy</cmis:typeId>
+ <cmis:id>policy</cmis:id>
<cmis:queryName>Policy</cmis:queryName>
<cmis:displayName>Policy Type</cmis:displayName>
- <cmis:baseType>policy</cmis:baseType>
- <cmis:baseTypeQueryName>Policy</cmis:baseTypeQueryName>
+ <cmis:baseTypeId>policy</cmis:baseTypeId>
<cmis:parentId />
<cmis:description></cmis:description>
<cmis:creatable>true</cmis:creatable>
@@ -111,11 +107,10 @@
<link href="http://127.0.0.1:8080/cmis/type/Root" rel="alternate" />
<link href="http://127.0.0.1:8080/cmis/repository" rel="repository" />
<cmis:folderType>
- <cmis:typeId>Root</cmis:typeId>
+ <cmis:id>Root</cmis:id>
<cmis:queryName>Root</cmis:queryName>
<cmis:displayName>Root Folder Type</cmis:displayName>
- <cmis:baseType>folder</cmis:baseType>
- <cmis:baseTypeQueryName>Folder</cmis:baseTypeQueryName>
+ <cmis:baseTypeId>folder</cmis:baseTypeId>
<cmis:parentId>folder</cmis:parentId>
<cmis:description></cmis:description>
<cmis:creatable>false</cmis:creatable>
Modified: incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/main/java/org/apache/chemistry/atompub/server/CMISObjectsCollection.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/main/java/org/apache/chemistry/atompub/server/CMISObjectsCollection.java?rev=796821&r1=796820&r2=796821&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/main/java/org/apache/chemistry/atompub/server/CMISObjectsCollection.java (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/main/java/org/apache/chemistry/atompub/server/CMISObjectsCollection.java Wed Jul 22 18:25:13 2009
@@ -153,8 +153,7 @@
entry.addLink(getTypeLink(object.getTypeId(), request), CMIS.LINK_TYPE);
String oid = object.getId();
entry.addLink(getParentsLink(oid, request), CMIS.LINK_PARENTS);
- Type objectType = repository.getType(object.getTypeId());
- if (objectType.getBaseType() == BaseType.FOLDER) {
+ if (object.getBaseType() == BaseType.FOLDER) {
entry.addLink(getChildrenLink(oid, request), CMIS.LINK_CHILDREN);
entry.addLink(getDescendantsLink(oid, request),
CMIS.LINK_DESCENDANTS);
@@ -165,6 +164,7 @@
// ContentStreamUri needs to know the media link
String mediaLink = isMediaEntry(object) ? getMediaLink(object.getId(),
request) : null;
+ Type objectType = repository.getType(object.getTypeId());
entry.addExtension(new ObjectElement(factory, object, objectType,
mediaLink));
Modified: incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/main/java/org/apache/chemistry/atompub/server/CMISTypesCollection.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/main/java/org/apache/chemistry/atompub/server/CMISTypesCollection.java?rev=796821&r1=796820&r2=796821&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/main/java/org/apache/chemistry/atompub/server/CMISTypesCollection.java (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/main/java/org/apache/chemistry/atompub/server/CMISTypesCollection.java Wed Jul 22 18:25:13 2009
@@ -128,16 +128,15 @@
Element el;
// note: setText is called in a separate statement as JDK 5 has problems
// compiling when it's on one line (compiler generics bug)
- el = factory.newElement(CMIS.TYPE_ID, dt);
+ el = factory.newElement(CMIS.ID, dt);
el.setText(type.getId());
+ // TODO localName, localNamespace
el = factory.newElement(CMIS.QUERY_NAME, dt);
el.setText(type.getQueryName());
el = factory.newElement(CMIS.DISPLAY_NAME, dt);
el.setText(type.getDisplayName());
- el = factory.newElement(CMIS.BASE_TYPE, dt);
+ el = factory.newElement(CMIS.BASE_TYPE_ID, dt);
el.setText(type.getBaseType().toString());
- el = factory.newElement(CMIS.BASE_TYPE_QUERY_NAME, dt);
- el.setText(type.getBaseTypeQueryName());
el = factory.newElement(CMIS.PARENT_ID, dt);
el.setText(type.getParentId());
el = factory.newElement(CMIS.DESCRIPTION, dt);
@@ -150,12 +149,13 @@
el.setText(bool(type.isQueryable()));
el = factory.newElement(CMIS.CONTROLLABLE, dt);
el.setText(bool(type.isControllable()));
- el = factory.newElement(CMIS.VERSIONABLE, dt);
- el.setText(bool(type.isVersionable()));
- el = factory.newElement(CMIS.CONTENT_STREAM_ALLOWED, dt);
- el.setText(type.getContentStreamAllowed().toString()); // TODO null
el = factory.newElement(CMIS.INCLUDED_IN_SUPERTYPE_QUERY, dt);
el.setText(bool(type.isIncludedInSuperTypeQuery()));
+ el = factory.newElement(CMIS.VERSIONABLE, dt); // docs only
+ el.setText(bool(type.isVersionable()));
+ el = factory.newElement(CMIS.CONTENT_STREAM_ALLOWED, dt); // docs only
+ el.setText(type.getContentStreamAllowed().toString()); // TODO null
+ // TODO allowedSourceTypes, allowedTargetTypes
if ("true".equals(request.getParameter("includePropertyDefinitions"))) {
for (PropertyDefinition pd : type.getPropertyDefinitions()) {
QName qname;
Modified: incubator/chemistry/trunk/chemistry/chemistry-atompub/src/main/java/org/apache/chemistry/atompub/CMIS.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-atompub/src/main/java/org/apache/chemistry/atompub/CMIS.java?rev=796821&r1=796820&r2=796821&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-atompub/src/main/java/org/apache/chemistry/atompub/CMIS.java (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-atompub/src/main/java/org/apache/chemistry/atompub/CMIS.java Wed Jul 22 18:25:13 2009
@@ -89,16 +89,12 @@
public static final QName POLICY_TYPE = CMISName("policyType");
- public static final QName TYPE_ID = CMISName("typeId");
+ public static final QName BASE_TYPE_ID = CMISName("baseTypeId");
public static final QName QUERY_NAME = CMISName("queryName");
public static final QName DISPLAY_NAME = CMISName("displayName");
- public static final QName BASE_TYPE = CMISName("baseType");
-
- public static final QName BASE_TYPE_QUERY_NAME = CMISName("baseTypeQueryName");
-
public static final QName PARENT_ID = CMISName("parentId");
public static final QName DESCRIPTION = CMISName("description");
Modified: incubator/chemistry/trunk/chemistry/chemistry-atompub/src/main/java/org/apache/chemistry/atompub/abdera/PropertiesElement.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-atompub/src/main/java/org/apache/chemistry/atompub/abdera/PropertiesElement.java?rev=796821&r1=796820&r2=796821&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-atompub/src/main/java/org/apache/chemistry/atompub/abdera/PropertiesElement.java (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-atompub/src/main/java/org/apache/chemistry/atompub/abdera/PropertiesElement.java Wed Jul 22 18:25:13 2009
@@ -163,7 +163,7 @@
setProperty(values.get(name), propertyDefinition);
// Alfresco COMPAT (BaseType not in 0.6)
- if (name.equals(Property.TYPE_ID)) {
+ if (name.equals(Property.BASE_TYPE_ID)) {
// emit BaseType as well
ExtensibleElement el = addExtension(CMIS.PROPERTY_STRING);
el.setAttributeValue(CMIS.NAME, "BaseType");
Modified: incubator/chemistry/trunk/chemistry/chemistry-commons/src/main/java/org/apache/chemistry/impl/base/BaseObject.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-commons/src/main/java/org/apache/chemistry/impl/base/BaseObject.java?rev=796821&r1=796820&r2=796821&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-commons/src/main/java/org/apache/chemistry/impl/base/BaseObject.java (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-commons/src/main/java/org/apache/chemistry/impl/base/BaseObject.java Wed Jul 22 18:25:13 2009
@@ -145,6 +145,10 @@
return getId(Property.TYPE_ID);
}
+ public String getBaseTypeId() {
+ return getId(Property.BASE_TYPE_ID);
+ }
+
public String getCreatedBy() {
return getString(Property.CREATED_BY);
}
Modified: incubator/chemistry/trunk/chemistry/chemistry-commons/src/main/java/org/apache/chemistry/impl/simple/SimpleConnection.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-commons/src/main/java/org/apache/chemistry/impl/simple/SimpleConnection.java?rev=796821&r1=796820&r2=796821&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-commons/src/main/java/org/apache/chemistry/impl/simple/SimpleConnection.java (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-commons/src/main/java/org/apache/chemistry/impl/simple/SimpleConnection.java Wed Jul 22 18:25:13 2009
@@ -103,7 +103,8 @@
}
public SimpleObjectEntry newObjectEntry(String typeId) {
- return new SimpleObjectEntry(new SimpleData(typeId), this);
+ BaseType baseType = repository.getType(typeId).getBaseType();
+ return new SimpleObjectEntry(new SimpleData(typeId, baseType), this);
}
public Document newDocument(String typeId, Folder folder) {
@@ -380,10 +381,11 @@
Map<String, Serializable> properties, ObjectId folder,
ContentStream contentStream, VersioningState versioningState) {
Type type = repository.getType(typeId);
- if (type == null || type.getBaseType() != BaseType.DOCUMENT) {
+ BaseType baseType = type.getBaseType();
+ if (type == null || baseType != BaseType.DOCUMENT) {
throw new IllegalArgumentException(typeId);
}
- SimpleData data = new SimpleData(typeId);
+ SimpleData data = new SimpleData(typeId, baseType);
data.putAll(properties);
if (folder != null) {
data.put(Property.PARENT_ID, folder.getId());
Modified: incubator/chemistry/trunk/chemistry/chemistry-commons/src/main/java/org/apache/chemistry/impl/simple/SimpleData.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-commons/src/main/java/org/apache/chemistry/impl/simple/SimpleData.java?rev=796821&r1=796820&r2=796821&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-commons/src/main/java/org/apache/chemistry/impl/simple/SimpleData.java (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-commons/src/main/java/org/apache/chemistry/impl/simple/SimpleData.java Wed Jul 22 18:25:13 2009
@@ -19,6 +19,7 @@
import java.io.Serializable;
import java.util.concurrent.ConcurrentHashMap;
+import org.apache.chemistry.BaseType;
import org.apache.chemistry.Property;
/**
@@ -31,8 +32,9 @@
private static final long serialVersionUID = 1L;
- public SimpleData(String typeId) {
+ public SimpleData(String typeId, BaseType baseType) {
put(Property.TYPE_ID, typeId);
+ put(Property.BASE_TYPE_ID, baseType.toString());
}
}
Modified: incubator/chemistry/trunk/chemistry/chemistry-commons/src/main/java/org/apache/chemistry/impl/simple/SimpleObject.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-commons/src/main/java/org/apache/chemistry/impl/simple/SimpleObject.java?rev=796821&r1=796820&r2=796821&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-commons/src/main/java/org/apache/chemistry/impl/simple/SimpleObject.java (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-commons/src/main/java/org/apache/chemistry/impl/simple/SimpleObject.java Wed Jul 22 18:25:13 2009
@@ -120,6 +120,10 @@
return type;
}
+ public BaseType getBaseType() {
+ return type.getBaseType();
+ }
+
public Serializable getValue(String name) {
PropertyDefinition pd = getType().getPropertyDefinition(name);
if (pd == null) {
Modified: incubator/chemistry/trunk/chemistry/chemistry-commons/src/main/java/org/apache/chemistry/impl/simple/SimpleObjectEntry.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-commons/src/main/java/org/apache/chemistry/impl/simple/SimpleObjectEntry.java?rev=796821&r1=796820&r2=796821&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-commons/src/main/java/org/apache/chemistry/impl/simple/SimpleObjectEntry.java (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-commons/src/main/java/org/apache/chemistry/impl/simple/SimpleObjectEntry.java Wed Jul 22 18:25:13 2009
@@ -21,6 +21,7 @@
import java.util.HashMap;
import java.util.Map;
+import org.apache.chemistry.BaseType;
import org.apache.chemistry.ObjectEntry;
import org.apache.chemistry.Property;
@@ -48,6 +49,10 @@
return (String) data.get(Property.TYPE_ID);
}
+ public BaseType getBaseType() {
+ return BaseType.get((String) data.get(Property.BASE_TYPE_ID));
+ }
+
public Map<String, Serializable> getValues() {
return new HashMap<String, Serializable>(data);
}
Modified: incubator/chemistry/trunk/chemistry/chemistry-commons/src/main/java/org/apache/chemistry/impl/simple/SimpleRepository.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-commons/src/main/java/org/apache/chemistry/impl/simple/SimpleRepository.java?rev=796821&r1=796820&r2=796821&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-commons/src/main/java/org/apache/chemistry/impl/simple/SimpleRepository.java (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-commons/src/main/java/org/apache/chemistry/impl/simple/SimpleRepository.java Wed Jul 22 18:25:13 2009
@@ -26,6 +26,7 @@
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
+import org.apache.chemistry.BaseType;
import org.apache.chemistry.Connection;
import org.apache.chemistry.JoinCapability;
import org.apache.chemistry.ObjectId;
@@ -65,7 +66,7 @@
children = new ConcurrentHashMap<String, Set<String>>();
parents = new ConcurrentHashMap<String, Set<String>>();
- SimpleData rootData = new SimpleData(ROOT_TYPE_ID);
+ SimpleData rootData = new SimpleData(ROOT_TYPE_ID, BaseType.FOLDER);
if (rootId == null) {
rootId = generateId();
}
Modified: incubator/chemistry/trunk/chemistry/chemistry-commons/src/main/java/org/apache/chemistry/impl/simple/SimpleType.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-commons/src/main/java/org/apache/chemistry/impl/simple/SimpleType.java?rev=796821&r1=796820&r2=796821&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-commons/src/main/java/org/apache/chemistry/impl/simple/SimpleType.java (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-commons/src/main/java/org/apache/chemistry/impl/simple/SimpleType.java Wed Jul 22 18:25:13 2009
@@ -49,6 +49,11 @@
PropertyType.ID, false, null, false, true, null,
Updatability.READ_ONLY, true, true, 0, null, null, -1, null);
+ public static final SimplePropertyDefinition PROP_BASE_TYPE_ID = new SimplePropertyDefinition(
+ Property.BASE_TYPE_ID, "def:basetypeid", "Base Type ID", "", false,
+ PropertyType.ID, false, null, false, true, null,
+ Updatability.READ_ONLY, true, true, 0, null, null, -1, null);
+
public static final SimplePropertyDefinition PROP_CREATED_BY = new SimplePropertyDefinition(
Property.CREATED_BY, "def:createdby", "Created By", "", false,
PropertyType.STRING, false, null, false, true, null,
@@ -188,10 +193,10 @@
PropertyType.STRING, false, null, false, true, null,
Updatability.READ_WRITE, true, true, 0, null, null, -1, null);
- private static final PropertyDefinition[] PROPS_COMMON = {
- PROP_ID, //
+ private static final PropertyDefinition[] PROPS_COMMON = { PROP_ID, //
PROP_URI, //
PROP_TYPE_ID, //
+ PROP_BASE_TYPE_ID, //
PROP_CREATED_BY, //
PROP_CREATION_DATE, //
PROP_LAST_MODIFIED_BY, //
@@ -354,20 +359,6 @@
return baseType;
}
- public String getBaseTypeQueryName() {
- switch (baseType) {
- case DOCUMENT:
- return "Document";
- case FOLDER:
- return "Folder";
- case POLICY:
- return "Policy";
- case RELATIONSHIP:
- return "Relationship";
- }
- throw new UnsupportedOperationException(baseType.toString());
- }
-
public String getDescription() {
return description;
}
Modified: incubator/chemistry/trunk/chemistry/chemistry-commons/src/test/java/org/apache/chemistry/impl/simple/TestSimpleRepository.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-commons/src/test/java/org/apache/chemistry/impl/simple/TestSimpleRepository.java?rev=796821&r1=796820&r2=796821&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-commons/src/test/java/org/apache/chemistry/impl/simple/TestSimpleRepository.java (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-commons/src/test/java/org/apache/chemistry/impl/simple/TestSimpleRepository.java Wed Jul 22 18:25:13 2009
@@ -116,7 +116,8 @@
Connection conn = repo.getConnection(null);
Folder root = conn.getRootFolder();
Folder f1 = root.newFolder("fold");
- assertEquals(12 + 1, f1.getType().getPropertyDefinitions().size());
+ assertEquals(SimpleType.PROPS_FOLDER_BASE.size() + 2,
+ f1.getType().getPropertyDefinitions().size());
List<CMISObject> children = root.getChildren(null);
assertEquals(0, children.size());
@@ -140,7 +141,8 @@
Connection conn = repo.getConnection(null);
Folder root = conn.getRootFolder();
Document d1 = root.newDocument("doc");
- assertEquals(22 + 3, d1.getType().getPropertyDefinitions().size());
+ assertEquals(SimpleType.PROPS_DOCUMENT_BASE.size() + 3,
+ d1.getType().getPropertyDefinitions().size());
d1.save();
assertEquals(root.getId(), d1.getParent().getId());
Modified: incubator/chemistry/trunk/chemistry/chemistry-jcr/src/main/java/org/apache/chemistry/jcr/JcrDocument.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-jcr/src/main/java/org/apache/chemistry/jcr/JcrDocument.java?rev=796821&r1=796820&r2=796821&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-jcr/src/main/java/org/apache/chemistry/jcr/JcrDocument.java (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-jcr/src/main/java/org/apache/chemistry/jcr/JcrDocument.java Wed Jul 22 18:25:13 2009
@@ -153,8 +153,7 @@
throw new UnsupportedOperationException();
}
- @Override
- protected BaseType getBaseType() {
+ public BaseType getBaseType() {
return BaseType.DOCUMENT;
}
}
Modified: incubator/chemistry/trunk/chemistry/chemistry-jcr/src/main/java/org/apache/chemistry/jcr/JcrFolder.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-jcr/src/main/java/org/apache/chemistry/jcr/JcrFolder.java?rev=796821&r1=796820&r2=796821&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-jcr/src/main/java/org/apache/chemistry/jcr/JcrFolder.java (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-jcr/src/main/java/org/apache/chemistry/jcr/JcrFolder.java Wed Jul 22 18:25:13 2009
@@ -63,7 +63,7 @@
} else {
continue;
}
- if (type == null || type == entry.getType().getBaseType()) {
+ if (type == null || type == entry.getBaseType()) {
result.add(entry);
}
}
@@ -136,8 +136,7 @@
throw new UnsupportedOperationException();
}
- @Override
- protected BaseType getBaseType() {
+ public BaseType getBaseType() {
return BaseType.FOLDER;
}
}
Modified: incubator/chemistry/trunk/chemistry/chemistry-jcr/src/main/java/org/apache/chemistry/jcr/JcrObjectEntry.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-jcr/src/main/java/org/apache/chemistry/jcr/JcrObjectEntry.java?rev=796821&r1=796820&r2=796821&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-jcr/src/main/java/org/apache/chemistry/jcr/JcrObjectEntry.java (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-jcr/src/main/java/org/apache/chemistry/jcr/JcrObjectEntry.java Wed Jul 22 18:25:13 2009
@@ -32,7 +32,6 @@
import javax.jcr.RepositoryException;
import javax.jcr.Value;
-import org.apache.chemistry.BaseType;
import org.apache.chemistry.Document;
import org.apache.chemistry.Folder;
import org.apache.chemistry.ObjectEntry;
@@ -350,8 +349,6 @@
return null;
}
- protected abstract BaseType getBaseType();
-
public String getTypeId() {
return getType().getId();
}
Modified: incubator/chemistry/trunk/chemistry/chemistry-jcr/src/main/java/org/apache/chemistry/jcr/JcrType.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-jcr/src/main/java/org/apache/chemistry/jcr/JcrType.java?rev=796821&r1=796820&r2=796821&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-jcr/src/main/java/org/apache/chemistry/jcr/JcrType.java (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-jcr/src/main/java/org/apache/chemistry/jcr/JcrType.java Wed Jul 22 18:25:13 2009
@@ -50,10 +50,6 @@
return baseType;
}
- public String getBaseTypeQueryName() {
- return baseType.toString();
- }
-
public ContentStreamPresence getContentStreamAllowed() {
if (baseType == BaseType.DOCUMENT) {
return ContentStreamPresence.ALLOWED;