You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by fm...@apache.org on 2013/09/20 16:03:48 UTC

svn commit: r1525012 [2/2] - in /chemistry/opencmis/trunk: chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/ chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/a...

Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/TypeDefinitionFactory.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/TypeDefinitionFactory.java?rev=1525012&r1=1525011&r2=1525012&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/TypeDefinitionFactory.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/TypeDefinitionFactory.java Fri Sep 20 14:03:47 2013
@@ -588,10 +588,9 @@ public final class TypeDefinitionFactory
 
     /**
      * Creates a new mutable type definition, which is a child of the provided
-     * type definition. If the parameter <code>includePropertyDefinitions</code>
-     * is set to
-     * <code>true</true> property definitions are copied from the parent
-     * and marked as inherited.
+     * type definition. If the parameter {@code includePropertyDefinitions} is
+     * set to {@code true} property definitions are copied from the parent and
+     * marked as inherited.
      */
     public MutableTypeDefinition createChildTypeDefinition(TypeDefinition parentTypeDefinition, String id,
             String localName, String queryName, String displayName, String description,
@@ -621,6 +620,182 @@ public final class TypeDefinitionFactory
     }
 
     /**
+     * Creates a property definition object.
+     * 
+     * @param id
+     *            the property ID, not {@code null}
+     * @param displayName
+     *            the display name, may be {@code null}
+     * @param description
+     *            the description, may be {@code null}
+     * @param datatype
+     *            the datatype, not {@code null}
+     * @param cardinality
+     *            the cardinality, not {@code null}
+     * @param updateability
+     *            the updateability, not {@code null}
+     * @param inherited
+     *            {@code true} if the property definition is inherited,
+     *            {@code false} otherwise
+     * @param required
+     *            {@code true} if a property value is required, {@code false}
+     *            otherwise
+     * @param queryable
+     *            {@code true} if the property can be used in the WHERE clause
+     *            of a query, {@code false} otherwise
+     * @param orderable
+     *            {@code true} if the property can be used in the ORDER BY
+     *            clause of a query, {@code false} otherwise
+     * 
+     * @return a mutable property definition object
+     */
+    public MutablePropertyDefinition<?> createPropertyDefinition(String id, String displayName, String description,
+            PropertyType datatype, Cardinality cardinality, Updatability updateability, boolean inherited,
+            boolean required, boolean queryable, boolean orderable) {
+        if (id == null) {
+            throw new IllegalArgumentException("ID must be set!");
+        }
+        if (datatype == null) {
+            throw new IllegalArgumentException("Datatype must be set!");
+        }
+        if (cardinality == null) {
+            throw new IllegalArgumentException("Cardinality must be set!");
+        }
+        if (updateability == null) {
+            throw new IllegalArgumentException("Updateability must be set!");
+        }
+
+        MutablePropertyDefinition<?> result = null;
+
+        switch (datatype) {
+        case BOOLEAN:
+            result = new PropertyBooleanDefinitionImpl();
+            break;
+        case DATETIME:
+            result = new PropertyDateTimeDefinitionImpl();
+            break;
+        case DECIMAL:
+            result = new PropertyDecimalDefinitionImpl();
+            break;
+        case HTML:
+            result = new PropertyHtmlDefinitionImpl();
+            break;
+        case ID:
+            result = new PropertyIdDefinitionImpl();
+            break;
+        case INTEGER:
+            result = new PropertyIntegerDefinitionImpl();
+            break;
+        case STRING:
+            result = new PropertyStringDefinitionImpl();
+            break;
+        case URI:
+            result = new PropertyUriDefinitionImpl();
+            break;
+        default:
+            throw new IllegalArgumentException("Unknown datatype! Spec change?");
+        }
+
+        result.setId(id);
+        result.setLocalName(id);
+        result.setDisplayName(displayName);
+        result.setDescription(description);
+        result.setPropertyType(datatype);
+        result.setCardinality(cardinality);
+        result.setUpdatability(updateability);
+        result.setIsInherited(inherited);
+        result.setIsRequired(required);
+        result.setIsQueryable(queryable);
+        result.setIsOrderable(orderable);
+        result.setQueryName(id);
+
+        return result;
+    }
+
+    /**
+     * Creates a single value Choice object.
+     * 
+     * @param displayName
+     *            the choice display name
+     * @param value
+     *            the value
+     * 
+     * @return the Choice object
+     */
+    public <T> Choice<T> createChoice(String displayName, T value) {
+        ChoiceImpl<T> result = new ChoiceImpl<T>();
+        result.setDisplayName(displayName);
+        result.setValue(value);
+
+        return result;
+    }
+
+    /**
+     * Creates a multi value Choice object.
+     * 
+     * @param displayName
+     *            the choice display name
+     * @param value
+     *            the value
+     * 
+     * @return the Choice object
+     */
+    public <T> Choice<T> createChoice(String displayName, List<T> value) {
+        ChoiceImpl<T> result = new ChoiceImpl<T>();
+        result.setDisplayName(displayName);
+        result.setValue(value);
+
+        return result;
+    }
+
+    /**
+     * Creates a Choice object with sub choices.
+     * 
+     * @param displayName
+     *            the choice display name
+     * @param subChoice
+     *            the sub choice list
+     * 
+     * @return the Choice object
+     */
+    public <T> Choice<T> createChoiceWithSubChoices(String displayName, List<Choice<T>> subChoice) {
+        ChoiceImpl<T> result = new ChoiceImpl<T>();
+        result.setDisplayName(displayName);
+        result.setChoice(subChoice);
+
+        return result;
+    }
+
+    /**
+     * Creates a type definition list.
+     * 
+     * @param list
+     *            the list of type definitions, not {@code null}
+     * @param hasMoreItems
+     *            {@code true} if there are more items, {@code false} otherwise
+     * @param numItems
+     *            the total (positive) number of types at this level or
+     *            {@code null} if the number is unknown
+     * 
+     * @return the TypeDefinitionList object
+     */
+    public TypeDefinitionList createTypeDefinitionList(List<TypeDefinition> list, boolean hasMoreItems,
+            BigInteger numItems) {
+        if (list == null) {
+            throw new IllegalArgumentException("List must be set!");
+        }
+        if (numItems != null && numItems.signum() < 0) {
+            throw new IllegalArgumentException("Number of items is negative!");
+        }
+
+        TypeDefinitionListImpl result = new TypeDefinitionListImpl(list);
+        result.setHasMoreItems(hasMoreItems);
+        result.setNumItems(numItems);
+
+        return result;
+    }
+
+    /**
      * Creates a {@link TypeDefinitionList} for
      * {@link RepositoryService#getTypeChildren(String, String, Boolean, BigInteger, BigInteger, ExtensionsData)}
      * .
@@ -706,6 +881,28 @@ public final class TypeDefinitionFactory
     }
 
     /**
+     * Creates a type definition container.
+     * 
+     * @param typeDef
+     *            the type definition, not {@code null}
+     * @param children
+     *            the child type definitions, may be {@code null}
+     * 
+     * @return the TypeDefinitionContainer object
+     */
+    public TypeDefinitionContainer createTypeDefinitionContainer(TypeDefinition typeDef,
+            List<TypeDefinitionContainer> children) {
+        if (typeDef == null) {
+            throw new IllegalArgumentException("Type definition must be set!");
+        }
+
+        TypeDefinitionContainerImpl result = new TypeDefinitionContainerImpl(typeDef);
+        result.setChildren(children);
+
+        return result;
+    }
+
+    /**
      * Creates a list of {@link TypeDefinitionContainer} for
      * {@link RepositoryService#getTypeDescendants(String, String, BigInteger, Boolean, ExtensionsData)}
      * .
@@ -1119,183 +1316,138 @@ public final class TypeDefinitionFactory
      * Adds the base property definitions to a type definition.
      */
     protected void addBasePropertyDefinitions(MutableTypeDefinition type, CmisVersion cmisVersion, boolean inherited) {
-        type.addPropertyDefinition(createPropDef(PropertyIds.NAME, "Name", "Name", PropertyType.STRING,
+        type.addPropertyDefinition(createPropertyDefinition(PropertyIds.NAME, "Name", "Name", PropertyType.STRING,
                 Cardinality.SINGLE, Updatability.READWRITE, inherited, true, true, true));
 
         if (cmisVersion != CmisVersion.CMIS_1_0) {
-            type.addPropertyDefinition(createPropDef(PropertyIds.DESCRIPTION, "Description", "Description",
+            type.addPropertyDefinition(createPropertyDefinition(PropertyIds.DESCRIPTION, "Description", "Description",
                     PropertyType.STRING, Cardinality.SINGLE, Updatability.READWRITE, inherited, false, false, false));
         }
 
-        type.addPropertyDefinition(createPropDef(PropertyIds.OBJECT_ID, "Object Id", "Object Id", PropertyType.ID,
-                Cardinality.SINGLE, Updatability.READONLY, inherited, false, true, false));
+        type.addPropertyDefinition(createPropertyDefinition(PropertyIds.OBJECT_ID, "Object Id", "Object Id",
+                PropertyType.ID, Cardinality.SINGLE, Updatability.READONLY, inherited, false, true, false));
 
-        type.addPropertyDefinition(createPropDef(PropertyIds.BASE_TYPE_ID, "Base Type Id", "Base Type Id",
+        type.addPropertyDefinition(createPropertyDefinition(PropertyIds.BASE_TYPE_ID, "Base Type Id", "Base Type Id",
                 PropertyType.ID, Cardinality.SINGLE, Updatability.READONLY, inherited, false, true, false));
 
-        type.addPropertyDefinition(createPropDef(PropertyIds.OBJECT_TYPE_ID, "Object Type Id", "Object Type Id",
-                PropertyType.ID, Cardinality.SINGLE, Updatability.ONCREATE, inherited, true, true, false));
+        type.addPropertyDefinition(createPropertyDefinition(PropertyIds.OBJECT_TYPE_ID, "Object Type Id",
+                "Object Type Id", PropertyType.ID, Cardinality.SINGLE, Updatability.ONCREATE, inherited, true, true,
+                false));
 
         if (cmisVersion != CmisVersion.CMIS_1_0) {
-            type.addPropertyDefinition(createPropDef(PropertyIds.SECONDARY_OBJECT_TYPE_IDS, "Secondary Type Ids",
-                    "Secondary Type Ids", PropertyType.ID, Cardinality.MULTI, Updatability.READONLY, inherited, false,
-                    true, false));
+            type.addPropertyDefinition(createPropertyDefinition(PropertyIds.SECONDARY_OBJECT_TYPE_IDS,
+                    "Secondary Type Ids", "Secondary Type Ids", PropertyType.ID, Cardinality.MULTI,
+                    Updatability.READONLY, inherited, false, true, false));
         }
 
-        type.addPropertyDefinition(createPropDef(PropertyIds.CREATED_BY, "Created By", "Created By",
+        type.addPropertyDefinition(createPropertyDefinition(PropertyIds.CREATED_BY, "Created By", "Created By",
                 PropertyType.STRING, Cardinality.SINGLE, Updatability.READONLY, inherited, false, true, true));
 
-        type.addPropertyDefinition(createPropDef(PropertyIds.CREATION_DATE, "Creation Date", "Creation Date",
-                PropertyType.DATETIME, Cardinality.SINGLE, Updatability.READONLY, inherited, false, true, true));
+        type.addPropertyDefinition(createPropertyDefinition(PropertyIds.CREATION_DATE, "Creation Date",
+                "Creation Date", PropertyType.DATETIME, Cardinality.SINGLE, Updatability.READONLY, inherited, false,
+                true, true));
+
+        type.addPropertyDefinition(createPropertyDefinition(PropertyIds.LAST_MODIFIED_BY, "Last Modified By",
+                "Last Modified By", PropertyType.STRING, Cardinality.SINGLE, Updatability.READONLY, inherited, false,
+                true, true));
+
+        type.addPropertyDefinition(createPropertyDefinition(PropertyIds.LAST_MODIFICATION_DATE,
+                "Last Modification Date", "Last Modification Date", PropertyType.DATETIME, Cardinality.SINGLE,
+                Updatability.READONLY, inherited, false, true, true));
 
-        type.addPropertyDefinition(createPropDef(PropertyIds.LAST_MODIFIED_BY, "Last Modified By", "Last Modified By",
-                PropertyType.STRING, Cardinality.SINGLE, Updatability.READONLY, inherited, false, true, true));
-
-        type.addPropertyDefinition(createPropDef(PropertyIds.LAST_MODIFICATION_DATE, "Last Modification Date",
-                "Last Modification Date", PropertyType.DATETIME, Cardinality.SINGLE, Updatability.READONLY, inherited,
-                false, true, true));
-
-        type.addPropertyDefinition(createPropDef(PropertyIds.CHANGE_TOKEN, "Change Token", "Change Token",
+        type.addPropertyDefinition(createPropertyDefinition(PropertyIds.CHANGE_TOKEN, "Change Token", "Change Token",
                 PropertyType.STRING, Cardinality.SINGLE, Updatability.READONLY, inherited, false, false, false));
     }
 
     protected void addDocumentPropertyDefinitions(MutableDocumentTypeDefinition type, CmisVersion cmisVersion,
             boolean inherited) {
-        type.addPropertyDefinition(createPropDef(PropertyIds.IS_IMMUTABLE, "Is Immutable", "Is Immutable",
+        type.addPropertyDefinition(createPropertyDefinition(PropertyIds.IS_IMMUTABLE, "Is Immutable", "Is Immutable",
                 PropertyType.BOOLEAN, Cardinality.SINGLE, Updatability.READONLY, inherited, false, false, false));
 
-        type.addPropertyDefinition(createPropDef(PropertyIds.IS_LATEST_VERSION, "Is Latest Version",
+        type.addPropertyDefinition(createPropertyDefinition(PropertyIds.IS_LATEST_VERSION, "Is Latest Version",
                 "Is Latest Version", PropertyType.BOOLEAN, Cardinality.SINGLE, Updatability.READONLY, inherited, false,
                 false, false));
 
-        type.addPropertyDefinition(createPropDef(PropertyIds.IS_MAJOR_VERSION, "Is Major Version", "Is Major Version",
-                PropertyType.BOOLEAN, Cardinality.SINGLE, Updatability.READONLY, inherited, false, false, false));
+        type.addPropertyDefinition(createPropertyDefinition(PropertyIds.IS_MAJOR_VERSION, "Is Major Version",
+                "Is Major Version", PropertyType.BOOLEAN, Cardinality.SINGLE, Updatability.READONLY, inherited, false,
+                false, false));
 
-        type.addPropertyDefinition(createPropDef(PropertyIds.IS_LATEST_MAJOR_VERSION, "Is Latest Major Version",
-                "Is Latest Major Version", PropertyType.BOOLEAN, Cardinality.SINGLE, Updatability.READONLY, inherited,
-                false, false, false));
+        type.addPropertyDefinition(createPropertyDefinition(PropertyIds.IS_LATEST_MAJOR_VERSION,
+                "Is Latest Major Version", "Is Latest Major Version", PropertyType.BOOLEAN, Cardinality.SINGLE,
+                Updatability.READONLY, inherited, false, false, false));
 
         if (cmisVersion != CmisVersion.CMIS_1_0) {
-            type.addPropertyDefinition(createPropDef(PropertyIds.IS_PRIVATE_WORKING_COPY, "Is Private Working Copy",
-                    "Is Private Working Copy", PropertyType.BOOLEAN, Cardinality.SINGLE, Updatability.READONLY,
-                    inherited, false, true, false));
+            type.addPropertyDefinition(createPropertyDefinition(PropertyIds.IS_PRIVATE_WORKING_COPY,
+                    "Is Private Working Copy", "Is Private Working Copy", PropertyType.BOOLEAN, Cardinality.SINGLE,
+                    Updatability.READONLY, inherited, false, true, false));
         }
 
-        type.addPropertyDefinition(createPropDef(PropertyIds.VERSION_LABEL, "Version Label", "Version Label",
-                PropertyType.STRING, Cardinality.SINGLE, Updatability.READONLY, inherited, false, true, false));
+        type.addPropertyDefinition(createPropertyDefinition(PropertyIds.VERSION_LABEL, "Version Label",
+                "Version Label", PropertyType.STRING, Cardinality.SINGLE, Updatability.READONLY, inherited, false,
+                true, false));
 
-        type.addPropertyDefinition(createPropDef(PropertyIds.VERSION_SERIES_ID, "Version Series Id",
+        type.addPropertyDefinition(createPropertyDefinition(PropertyIds.VERSION_SERIES_ID, "Version Series Id",
                 "Version Series Id", PropertyType.ID, Cardinality.SINGLE, Updatability.READONLY, inherited, false,
                 true, false));
 
-        type.addPropertyDefinition(createPropDef(PropertyIds.IS_VERSION_SERIES_CHECKED_OUT,
+        type.addPropertyDefinition(createPropertyDefinition(PropertyIds.IS_VERSION_SERIES_CHECKED_OUT,
                 "Is Verison Series Checked Out", "Is Verison Series Checked Out", PropertyType.BOOLEAN,
                 Cardinality.SINGLE, Updatability.READONLY, inherited, false, true, false));
 
-        type.addPropertyDefinition(createPropDef(PropertyIds.VERSION_SERIES_CHECKED_OUT_BY,
+        type.addPropertyDefinition(createPropertyDefinition(PropertyIds.VERSION_SERIES_CHECKED_OUT_BY,
                 "Version Series Checked Out By", "Version Series Checked Out By", PropertyType.STRING,
                 Cardinality.SINGLE, Updatability.READONLY, inherited, false, false, false));
 
-        type.addPropertyDefinition(createPropDef(PropertyIds.VERSION_SERIES_CHECKED_OUT_ID,
+        type.addPropertyDefinition(createPropertyDefinition(PropertyIds.VERSION_SERIES_CHECKED_OUT_ID,
                 "Version Series Checked Out Id", "Version Series Checked Out Id", PropertyType.ID, Cardinality.SINGLE,
                 Updatability.READONLY, inherited, false, false, false));
 
-        type.addPropertyDefinition(createPropDef(PropertyIds.CHECKIN_COMMENT, "Checkin Comment", "Checkin Comment",
-                PropertyType.STRING, Cardinality.SINGLE, Updatability.READONLY, inherited, false, false, false));
+        type.addPropertyDefinition(createPropertyDefinition(PropertyIds.CHECKIN_COMMENT, "Checkin Comment",
+                "Checkin Comment", PropertyType.STRING, Cardinality.SINGLE, Updatability.READONLY, inherited, false,
+                false, false));
 
-        type.addPropertyDefinition(createPropDef(PropertyIds.CONTENT_STREAM_LENGTH, "Content Stream Length",
+        type.addPropertyDefinition(createPropertyDefinition(PropertyIds.CONTENT_STREAM_LENGTH, "Content Stream Length",
                 "Content Stream Length", PropertyType.INTEGER, Cardinality.SINGLE, Updatability.READONLY, inherited,
                 false, false, false));
 
-        type.addPropertyDefinition(createPropDef(PropertyIds.CONTENT_STREAM_MIME_TYPE, "MIME Type", "MIME Type",
-                PropertyType.STRING, Cardinality.SINGLE, Updatability.READONLY, inherited, false, false, false));
-
-        type.addPropertyDefinition(createPropDef(PropertyIds.CONTENT_STREAM_FILE_NAME, "Filename", "Filename",
-                PropertyType.STRING, Cardinality.SINGLE, Updatability.READONLY, inherited, false, false, false));
+        type.addPropertyDefinition(createPropertyDefinition(PropertyIds.CONTENT_STREAM_MIME_TYPE, "MIME Type",
+                "MIME Type", PropertyType.STRING, Cardinality.SINGLE, Updatability.READONLY, inherited, false, false,
+                false));
+
+        type.addPropertyDefinition(createPropertyDefinition(PropertyIds.CONTENT_STREAM_FILE_NAME, "Filename",
+                "Filename", PropertyType.STRING, Cardinality.SINGLE, Updatability.READONLY, inherited, false, false,
+                false));
 
-        type.addPropertyDefinition(createPropDef(PropertyIds.CONTENT_STREAM_ID, "Content Stream Id",
+        type.addPropertyDefinition(createPropertyDefinition(PropertyIds.CONTENT_STREAM_ID, "Content Stream Id",
                 "Content Stream Id", PropertyType.ID, Cardinality.SINGLE, Updatability.READONLY, inherited, false,
                 false, false));
     }
 
     protected void addFolderPropertyDefinitions(MutableFolderTypeDefinition type, CmisVersion cmisVersion,
             boolean inherited) {
-        type.addPropertyDefinition(createPropDef(PropertyIds.PARENT_ID, "Parent Id", "Parent Id", PropertyType.ID,
-                Cardinality.SINGLE, Updatability.READONLY, inherited, false, false, false));
+        type.addPropertyDefinition(createPropertyDefinition(PropertyIds.PARENT_ID, "Parent Id", "Parent Id",
+                PropertyType.ID, Cardinality.SINGLE, Updatability.READONLY, inherited, false, false, false));
 
-        type.addPropertyDefinition(createPropDef(PropertyIds.PATH, "Path", "Path", PropertyType.STRING,
+        type.addPropertyDefinition(createPropertyDefinition(PropertyIds.PATH, "Path", "Path", PropertyType.STRING,
                 Cardinality.SINGLE, Updatability.READONLY, inherited, false, false, false));
 
-        type.addPropertyDefinition(createPropDef(PropertyIds.ALLOWED_CHILD_OBJECT_TYPE_IDS,
+        type.addPropertyDefinition(createPropertyDefinition(PropertyIds.ALLOWED_CHILD_OBJECT_TYPE_IDS,
                 "Allowed Child Object Type Ids", "Allowed Child Object Type Ids", PropertyType.ID, Cardinality.MULTI,
                 Updatability.READONLY, inherited, false, false, false));
     }
 
     protected void addPolicyPropertyDefinitions(MutablePolicyTypeDefinition type, CmisVersion cmisVersion,
             boolean inherited) {
-        type.addPropertyDefinition(createPropDef(PropertyIds.POLICY_TEXT, "Policy Text", "Policy Text",
+        type.addPropertyDefinition(createPropertyDefinition(PropertyIds.POLICY_TEXT, "Policy Text", "Policy Text",
                 PropertyType.STRING, Cardinality.SINGLE, Updatability.READWRITE, inherited, false, false, false));
     }
 
     protected void addRelationshipPropertyDefinitions(MutableRelationshipTypeDefinition type, CmisVersion cmisVersion,
             boolean inherited) {
-        type.addPropertyDefinition(createPropDef(PropertyIds.SOURCE_ID, "Source Id", "Source Id", PropertyType.ID,
-                Cardinality.SINGLE, Updatability.READWRITE, inherited, true, false, false));
-
-        type.addPropertyDefinition(createPropDef(PropertyIds.TARGET_ID, "Target Id", "Target Id", PropertyType.ID,
-                Cardinality.SINGLE, Updatability.READWRITE, inherited, true, false, false));
-    }
-
-    /**
-     * Creates a property definition object.
-     */
-    protected MutablePropertyDefinition<?> createPropDef(String id, String displayName, String description,
-            PropertyType datatype, Cardinality cardinality, Updatability updateability, boolean inherited,
-            boolean required, boolean queryable, boolean orderable) {
-        MutablePropertyDefinition<?> result = null;
-
-        switch (datatype) {
-        case BOOLEAN:
-            result = new PropertyBooleanDefinitionImpl();
-            break;
-        case DATETIME:
-            result = new PropertyDateTimeDefinitionImpl();
-            break;
-        case DECIMAL:
-            result = new PropertyDecimalDefinitionImpl();
-            break;
-        case HTML:
-            result = new PropertyHtmlDefinitionImpl();
-            break;
-        case ID:
-            result = new PropertyIdDefinitionImpl();
-            break;
-        case INTEGER:
-            result = new PropertyIntegerDefinitionImpl();
-            break;
-        case STRING:
-            result = new PropertyStringDefinitionImpl();
-            break;
-        case URI:
-            result = new PropertyUriDefinitionImpl();
-            break;
-        default:
-            throw new RuntimeException("Unknown datatype! Spec change?");
-        }
-
-        result.setId(id);
-        result.setLocalName(id);
-        result.setDisplayName(displayName);
-        result.setDescription(description);
-        result.setPropertyType(datatype);
-        result.setCardinality(cardinality);
-        result.setUpdatability(updateability);
-        result.setIsInherited(inherited);
-        result.setIsRequired(required);
-        result.setIsQueryable(queryable);
-        result.setIsOrderable(orderable);
-        result.setQueryName(id);
+        type.addPropertyDefinition(createPropertyDefinition(PropertyIds.SOURCE_ID, "Source Id", "Source Id",
+                PropertyType.ID, Cardinality.SINGLE, Updatability.READWRITE, inherited, true, false, false));
 
-        return result;
+        type.addPropertyDefinition(createPropertyDefinition(PropertyIds.TARGET_ID, "Target Id", "Target Id",
+                PropertyType.ID, Cardinality.SINGLE, Updatability.READWRITE, inherited, true, false, false));
     }
 }

Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/test/java/org/apache/chemistry/opencmis/server/support/TypeDefinitionFactoryTest.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/test/java/org/apache/chemistry/opencmis/server/support/TypeDefinitionFactoryTest.java?rev=1525012&r1=1525011&r2=1525012&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/test/java/org/apache/chemistry/opencmis/server/support/TypeDefinitionFactoryTest.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/test/java/org/apache/chemistry/opencmis/server/support/TypeDefinitionFactoryTest.java Fri Sep 20 14:03:47 2013
@@ -24,8 +24,10 @@ import static org.junit.Assert.assertEqu
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 
 import java.math.BigInteger;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -173,6 +175,27 @@ public class TypeDefinitionFactoryTest {
     }
 
     @Test
+    public void testCreateTypeDefinitionListObject() {
+        TypeDefinitionFactory tdf = TypeDefinitionFactory.newInstance();
+
+        assertNotNull(tdf.createTypeDefinitionList(Collections.<TypeDefinition> emptyList(), true, null));
+
+        try {
+            tdf.createTypeDefinitionList(null, true, null);
+            fail();
+        } catch (IllegalArgumentException e) {
+            // expected
+        }
+
+        try {
+            tdf.createTypeDefinitionList(Collections.<TypeDefinition> emptyList(), true, BigInteger.valueOf(-1));
+            fail();
+        } catch (IllegalArgumentException e) {
+            // expected
+        }
+    }
+
+    @Test
     public void testCreateTypeDescendants() {
         TypeDefinitionFactory tdf = TypeDefinitionFactory.newInstance();
         CmisVersion cmisVersion = CmisVersion.CMIS_1_1;
@@ -218,6 +241,21 @@ public class TypeDefinitionFactoryTest {
 
     }
 
+    @Test
+    public void testCreateTypeContainerObject() {
+        TypeDefinitionFactory tdf = TypeDefinitionFactory.newInstance();
+
+        assertNotNull(tdf.createTypeDefinitionContainer(tdf.createBaseDocumentTypeDefinition(CmisVersion.CMIS_1_1),
+                null));
+
+        try {
+            tdf.createTypeDefinitionContainer(null, null);
+            fail();
+        } catch (IllegalArgumentException e) {
+            // expected
+        }
+    }
+
     private void assertTypeDefinition(TypeDefinition typeDef) {
         assertNotNull(typeDef);
         assertNotNull(typeDef.getBaseTypeId());