Refactor CMIS Dictionary part 2

- further simplification of CMISDictionaryService and fixup fallout
- added logging
- consolidate & fix property definition handling (only one definition per property)
- include support for aspect properties
- fix property.isInherited
- open up the door for types outside of CMIS doc, folder, rel & policy

Dictionary Service
- add isOverride() to PropertyDefinition

Invite Workflows
- ensure they create their own namespace for new types/props
- NOTE: the previous way uses a hole in the DictinaryService which has been there
        unnoticed for over 4 years, till now. At some point, the hole will be filled in.
        
Tests pass for CMIS REST / Web Services and Query.
Tests pass for Invitation Service.

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@13786 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
David Caruana
2009-03-31 17:48:28 +00:00
parent 8581c334f9
commit 4e9c3a3d3a
29 changed files with 1130 additions and 935 deletions

View File

@@ -37,85 +37,68 @@ import org.alfresco.service.namespace.QName;
public interface CMISDictionaryService
{
/**
* Get Type Id
* Find type for type id
* @param typeId
* @return
*/
public CMISTypeDefinition findType(CMISTypeId typeId);
/**
* Find type for type id
*
* @param typeId
* @return
*/
public CMISTypeId getTypeId(String typeId);
public CMISTypeDefinition findType(String typeId);
/**
* Get Type Id from Table Name
*
* @param table
* @return
*/
public CMISTypeId getTypeIdFromTable(String table);
/**
* Get Type Id from Alfresco Class Name
* Find type for Alfresco class name. Optionally, constrain match to one of specified CMIS scopes
*
* @param clazz
* @param matchingScope if provided, only return type id matching scope
* @param matchingScopes
* @return
*/
public CMISTypeId getTypeId(QName clazz, CMISScope matchingScope);
/**
* Get Type Definition
*
* @param typeId
* @return
*/
public CMISTypeDefinition getType(CMISTypeId typeId);
public CMISTypeDefinition findTypeForClass(QName clazz, CMISScope... matchingScopes);
/**
* Get All Type Definitions
* Find type for table
*
* @param tableName
* @return
*/
public CMISTypeDefinition findTypeForTable(String tableName);
/**
* Get all Types
*
* @return
*/
public Collection<CMISTypeDefinition> getAllTypes();
/**
* Get Property Id for Alfresco property name
* Find property. Optionally constrain match to specified type.
*
* @param property
* @param matchingType
* @return
*/
public CMISPropertyId getPropertyId(QName property);
public CMISPropertyDefinition findProperty(QName property, CMISTypeDefinition matchingType);
/**
* Get Property Id
* Find property. Optionally constrain match to specified type.
*
* @param propertyId
* @param property
* @param matchingType
* @return
*/
public CMISPropertyId getPropertyId(String propertyId);
public CMISPropertyDefinition findProperty(String property, CMISTypeDefinition matchingType);
/**
* Get Property
*
* @param propertyId
* @return
*/
public CMISPropertyDefinition getProperty(CMISPropertyId propertyId);
/**
* Get Data Type
* Find data type
*
* @param dataType
* @return
*/
public CMISDataTypeEnum getDataType(QName dataType);
// public CMISTypeDef findType(CMISTypeId typeId)
// public CMISTypeDef findType(String typeId)
// public CMISTypeDef findTypeForClass(QName clazz, CMISScope matchingScope, ...)
// public CMISTypeDef findTypeForTable(String tableName)
// public CMISTypeDef getAllTypes();
// public CMISPropertyDefinition getProperty(QName property)
// public CMISPropertyDefinition getProperty(CMISTypeDef typeDef, String property)
// public CMISDataTypeEnum getDataType(QName dataType)
public CMISDataTypeEnum findDataType(QName dataType);
}