com.wewebu.ow.server.ecmimpl.opencmis.objectclass
Class OwCMISAbstractNativeObjectClass<T extends org.apache.chemistry.opencmis.client.api.ObjectType,O extends org.apache.chemistry.opencmis.client.api.TransientCmisObject>

java.lang.Object
  extended by com.wewebu.ow.server.ecmimpl.opencmis.objectclass.OwCMISAbstractObjectClass
      extended by com.wewebu.ow.server.ecmimpl.opencmis.objectclass.OwCMISAbstractSessionObjectClass<OwCMISNativeSession>
          extended by com.wewebu.ow.server.ecmimpl.opencmis.objectclass.OwCMISAbstractNativeObjectClass<T,O>
All Implemented Interfaces:
com.wewebu.ow.server.ecm.OwObjectClass, OwCMISNativeObjectClass<T,O>, OwCMISObjectClass, OwCMISSessionObjectClass<OwCMISNativeSession>
Direct Known Subclasses:
OwCMISDocumentClassImpl, OwCMISFolderClassImpl, OwCMISPolicyClassImpl, OwCMISRelationshipClassImpl

public abstract class OwCMISAbstractNativeObjectClass<T extends org.apache.chemistry.opencmis.client.api.ObjectType,O extends org.apache.chemistry.opencmis.client.api.TransientCmisObject>
extends OwCMISAbstractSessionObjectClass<OwCMISNativeSession>
implements OwCMISNativeObjectClass<T,O>

Abstract part implementation of PropertyDefinition and MIME+OwObjectType handling. Implements methods in general for all ObjectType.

Alfresco Workdesk
Copyright (c) Alfresco Software, Inc.
All rights reserved.

For licensing information read the license.txt file or
go to: http://wiki.alfresco.com


Field Summary
 
Fields inherited from interface com.wewebu.ow.server.ecmimpl.opencmis.objectclass.OwCMISObjectClass
MIME_TYPE_PREFIX_OW_POLICY, MIME_TYPE_PREFIX_OW_RELATIONSHIP
 
Fields inherited from interface com.wewebu.ow.server.ecm.OwObjectClass
OPERATION_TYPE_CHECKIN, OPERATION_TYPE_CHECKOUT, OPERATION_TYPE_CREATE_NEW_OBJECT, OPERATION_TYPE_SET_PROPERTIES, OPERATION_TYPE_UNDEF
 
Constructor Summary
OwCMISAbstractNativeObjectClass(T objectType_p, OwCMISNativeSession session_p)
           
 
Method Summary
 boolean canCreateNewObject()
           
 Map<String,Object> convertToNativeProperties(com.wewebu.ow.server.ecm.OwPropertyCollection properties_p)
          AWD Property collections converter method.
protected  org.apache.chemistry.opencmis.client.api.OperationContext createContext(Map<String,?> conversionParameters)
           
protected abstract  org.apache.chemistry.opencmis.client.api.ObjectId createNativeObject(Map<String,Object> properties, org.apache.chemistry.opencmis.client.api.ObjectId nativeParentFolder, org.apache.chemistry.opencmis.commons.data.ContentStream contentStream, boolean majorVersion, boolean checkedOut, List<org.apache.chemistry.opencmis.client.api.Policy> policies, List<org.apache.chemistry.opencmis.commons.data.Ace> addAce, List<org.apache.chemistry.opencmis.commons.data.Ace> removeAce)
          To be implemented for specific object type, providing already native value representations
 String createNewObject(boolean promote_p, Object mode_p, com.wewebu.ow.server.ecm.OwPropertyCollection properties_p, com.wewebu.ow.server.ecm.OwPermissionCollection permissions_p, com.wewebu.ow.server.ecm.OwContentCollection content_p, com.wewebu.ow.server.ecm.OwObject parent_p, String mimeType_p, String mimeParameter_p, boolean keepCheckedOut_p)
          Creates a new object with specific definition, will return the native ID of created object not a DMSID.
 com.wewebu.ow.server.ecm.OwObjectSkeleton createSkeletonObject(com.wewebu.ow.server.ecm.OwNetwork network_p, OwCMISResource res_p, OwCMISNativeSession ses_p, com.wewebu.ow.server.util.OwXMLUtil initValues_p)
          Create skeleton Object for this specific object class.
 OwCMISPropertyClass<?> findPropertyClass(String className_p)
           
 List<OwCMISObjectClass> getChilds(com.wewebu.ow.server.ecm.OwNetwork network_p, boolean fExcludeHiddenAndNonInstantiable_p)
           
 String getClassName()
           
 String getDescription(Locale locale_p)
           
 String getDisplayName(Locale locale_p)
           
 String getMimetype()
           
 T getNativeObject()
           
protected  org.apache.chemistry.opencmis.client.api.ObjectId getNativeParentFromObject(com.wewebu.ow.server.ecm.OwObject parent_p)
          Get the native parent/representation from provide OwObject.
 OwCMISNativePropertyClass<?,?,org.apache.chemistry.opencmis.commons.definitions.PropertyDefinition<?>> getNativePropertyClass(String className_p)
           
 Map<String,OwCMISNativePropertyClass<?,?,?>> getNativePropertyClasses(boolean localOnly_p)
           
 OwCMISNativeObjectClass<T,O> getParent()
           
 Map<String,OwCMISPropertyClass<?>> getPropertyClasses()
           
 String getQueryName()
          Should return an non-null value if this object is query able.
 OwCMISQueryResultConverter<O> getQueryResultConverter(org.apache.chemistry.opencmis.client.api.QueryResult queryResult, com.wewebu.ow.csqlc.ast.OwQueryStatement statement, org.apache.chemistry.opencmis.client.api.OperationContext context)
           
 int getType()
           
 boolean isQueryable()
          As specified by the CMIS definition, the request method to verify if this object can be used in query FROM statement.
<N extends org.apache.chemistry.opencmis.client.api.TransientCmisObject>
OwCMISTransientObject<N>
newTransientObject(N cmisObject, org.apache.chemistry.opencmis.client.api.OperationContext creationContext)
           
 
Methods inherited from class com.wewebu.ow.server.ecmimpl.opencmis.objectclass.OwCMISAbstractSessionObjectClass
getChildNames, getPreferredPropertyType, getSession, hasChilds
 
Methods inherited from class com.wewebu.ow.server.ecmimpl.opencmis.objectclass.OwCMISAbstractObjectClass
addVirtualPropertyClass, getModes, getNamePropertyName, getParameterValue, getPropertyClass, getPropertyClassNames, getQueryablePropertyClasses, getVirtualPropertyClass, getVirtualPropertyClasses, hasVersionSeries, initializeAsHierarchyRoot, isAssignableFrom, isContentRequired, isHidden, subclassedBy
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.wewebu.ow.server.ecmimpl.opencmis.objectclass.OwCMISNativeObjectClass
from, getSession
 
Methods inherited from interface com.wewebu.ow.server.ecmimpl.opencmis.objectclass.OwCMISObjectClass
getChildNames, getNamePropertyName, getPreferredPropertyType, getPropertyClass, getPropertyClassNames, getQueryablePropertyClasses, getVirtualPropertyClass, getVirtualPropertyClasses, isAssignableFrom, isContentRequired, subclassedBy
 
Methods inherited from interface com.wewebu.ow.server.ecm.OwObjectClass
getModes, hasChilds, hasVersionSeries, isHidden
 

Constructor Detail

OwCMISAbstractNativeObjectClass

public OwCMISAbstractNativeObjectClass(T objectType_p,
                                       OwCMISNativeSession session_p)
Method Detail

getType

public final int getType()
Specified by:
getType in interface com.wewebu.ow.server.ecm.OwObjectClass

getClassName

public String getClassName()
Specified by:
getClassName in interface com.wewebu.ow.server.ecm.OwObjectClass

getDescription

public String getDescription(Locale locale_p)
Specified by:
getDescription in interface com.wewebu.ow.server.ecm.OwObjectClass
Overrides:
getDescription in class OwCMISAbstractObjectClass

getMimetype

public String getMimetype()
Specified by:
getMimetype in interface OwCMISObjectClass
Returns:
the object class defined MIME type.

isQueryable

public boolean isQueryable()
Description copied from interface: OwCMISObjectClass
As specified by the CMIS definition, the request method to verify if this object can be used in query FROM statement.

Specified by:
isQueryable in interface OwCMISObjectClass
Overrides:
isQueryable in class OwCMISAbstractObjectClass
Returns:
boolean query able

getQueryName

public String getQueryName()
Description copied from interface: OwCMISObjectClass
Should return an non-null value if this object is query able.

Specified by:
getQueryName in interface OwCMISObjectClass
Overrides:
getQueryName in class OwCMISAbstractObjectClass
Returns:
String escaped query name, which MUST be used for searches

getDisplayName

public String getDisplayName(Locale locale_p)
Specified by:
getDisplayName in interface com.wewebu.ow.server.ecm.OwObjectClass

canCreateNewObject

public boolean canCreateNewObject()
                           throws com.wewebu.ow.server.exceptions.OwException
Specified by:
canCreateNewObject in interface com.wewebu.ow.server.ecm.OwObjectClass
Specified by:
canCreateNewObject in interface OwCMISObjectClass
Overrides:
canCreateNewObject in class OwCMISAbstractObjectClass
Throws:
com.wewebu.ow.server.exceptions.OwException

getNativeObject

public T getNativeObject()
Specified by:
getNativeObject in interface OwCMISNativeObjectClass<T extends org.apache.chemistry.opencmis.client.api.ObjectType,O extends org.apache.chemistry.opencmis.client.api.TransientCmisObject>

getPropertyClasses

public Map<String,OwCMISPropertyClass<?>> getPropertyClasses()
                                                      throws com.wewebu.ow.server.exceptions.OwException
Specified by:
getPropertyClasses in interface OwCMISObjectClass
Overrides:
getPropertyClasses in class OwCMISAbstractObjectClass
Returns:
a Map of property classes fully qualified names mapped to OwCMISPropertyClass for all properties defined by this object class (inherited properties included).
Throws:
com.wewebu.ow.server.exceptions.OwException

getNativePropertyClasses

public Map<String,OwCMISNativePropertyClass<?,?,?>> getNativePropertyClasses(boolean localOnly_p)
                                                                      throws com.wewebu.ow.server.exceptions.OwException
Specified by:
getNativePropertyClasses in interface OwCMISNativeObjectClass<T extends org.apache.chemistry.opencmis.client.api.ObjectType,O extends org.apache.chemistry.opencmis.client.api.TransientCmisObject>
Returns:
a Map of all native property classes defined by this class hierarchy. Ancestors defined properties are included only if localOnly is false.
Throws:
com.wewebu.ow.server.exceptions.OwException

findPropertyClass

public OwCMISPropertyClass<?> findPropertyClass(String className_p)
Specified by:
findPropertyClass in interface OwCMISObjectClass
Overrides:
findPropertyClass in class OwCMISAbstractObjectClass

getNativePropertyClass

public OwCMISNativePropertyClass<?,?,org.apache.chemistry.opencmis.commons.definitions.PropertyDefinition<?>> getNativePropertyClass(String className_p)
Specified by:
getNativePropertyClass in interface OwCMISNativeObjectClass<T extends org.apache.chemistry.opencmis.client.api.ObjectType,O extends org.apache.chemistry.opencmis.client.api.TransientCmisObject>
Parameters:
className_p - name of the native property class to be returned
Returns:
the requested native property class that contained by object class definition. null if no native property with the given name is defined.

getParent

public OwCMISNativeObjectClass<T,O> getParent()
Specified by:
getParent in interface com.wewebu.ow.server.ecm.OwObjectClass
Specified by:
getParent in interface OwCMISNativeObjectClass<T extends org.apache.chemistry.opencmis.client.api.ObjectType,O extends org.apache.chemistry.opencmis.client.api.TransientCmisObject>
Specified by:
getParent in interface OwCMISObjectClass

createNewObject

public String createNewObject(boolean promote_p,
                              Object mode_p,
                              com.wewebu.ow.server.ecm.OwPropertyCollection properties_p,
                              com.wewebu.ow.server.ecm.OwPermissionCollection permissions_p,
                              com.wewebu.ow.server.ecm.OwContentCollection content_p,
                              com.wewebu.ow.server.ecm.OwObject parent_p,
                              String mimeType_p,
                              String mimeParameter_p,
                              boolean keepCheckedOut_p)
                       throws com.wewebu.ow.server.exceptions.OwException
Description copied from interface: OwCMISObjectClass
Creates a new object with specific definition, will return the native ID of created object not a DMSID.

Specified by:
createNewObject in interface OwCMISObjectClass
Overrides:
createNewObject in class OwCMISAbstractObjectClass
Parameters:
promote_p - boolean Major/Minor
mode_p - Object native mode (may not be supported and can be null)
properties_p - OwPropertyCollection defined properties for new object
permissions_p - OwPermissionCollection (if available, can be null)
content_p - OwContentCollection (can be null)
parent_p - OwObject (null if no parent needed)
mimeType_p - String MIME type to be used
mimeParameter_p - String MIME parameter
keepCheckedOut_p - boolean flag to create checked out
Returns:
a String ID for the newly created object (native ID)
Throws:
com.wewebu.ow.server.exceptions.OwException

getNativeParentFromObject

protected org.apache.chemistry.opencmis.client.api.ObjectId getNativeParentFromObject(com.wewebu.ow.server.ecm.OwObject parent_p)
                                                                               throws com.wewebu.ow.server.exceptions.OwException
Get the native parent/representation from provide OwObject. Can throw exception if parent is required, in case parent is required or restricted in any case and does not match an OwInvalidOperationException should be thrown.

Parameters:
parent_p - OwObject (can be null)
Returns:
ObjectId or derived type, can return null in some cases like unfiled object creation
Throws:
com.wewebu.ow.server.exceptions.OwException

createNativeObject

protected abstract org.apache.chemistry.opencmis.client.api.ObjectId createNativeObject(Map<String,Object> properties,
                                                                                        org.apache.chemistry.opencmis.client.api.ObjectId nativeParentFolder,
                                                                                        org.apache.chemistry.opencmis.commons.data.ContentStream contentStream,
                                                                                        boolean majorVersion,
                                                                                        boolean checkedOut,
                                                                                        List<org.apache.chemistry.opencmis.client.api.Policy> policies,
                                                                                        List<org.apache.chemistry.opencmis.commons.data.Ace> addAce,
                                                                                        List<org.apache.chemistry.opencmis.commons.data.Ace> removeAce)
To be implemented for specific object type, providing already native value representations

Parameters:
properties - Map of property names (String) to corresponding values (extend Object)
nativeParentFolder - ObjectId native parent folder id representation
contentStream - ContentStream (can be null)
majorVersion - boolean version state (ignored if checkdedOut = true or non versionable type is created)
checkedOut - boolean create checked-out (ignored for non versionable types)
policies - List of org.apache.chemistry.opencmis.client.api.Policy objects (can be null)
addAce - List of ACE's which should be added (can be null)
removeAce - List of ACE's which should be removed (can be null)
Returns:
native Id of currently created object

convertToNativeProperties

public Map<String,Object> convertToNativeProperties(com.wewebu.ow.server.ecm.OwPropertyCollection properties_p)
                                             throws com.wewebu.ow.server.exceptions.OwException
Description copied from interface: OwCMISNativeObjectClass
AWD Property collections converter method.

Specified by:
convertToNativeProperties in interface OwCMISNativeObjectClass<T extends org.apache.chemistry.opencmis.client.api.ObjectType,O extends org.apache.chemistry.opencmis.client.api.TransientCmisObject>
Returns:
converts the given AWD property collection to a Map of native property IDs mapped to their native values.
Throws:
com.wewebu.ow.server.exceptions.OwException

createContext

protected org.apache.chemistry.opencmis.client.api.OperationContext createContext(Map<String,?> conversionParameters)

getChilds

public List<OwCMISObjectClass> getChilds(com.wewebu.ow.server.ecm.OwNetwork network_p,
                                         boolean fExcludeHiddenAndNonInstantiable_p)
                                  throws com.wewebu.ow.server.exceptions.OwException
Specified by:
getChilds in interface com.wewebu.ow.server.ecm.OwObjectClass
Specified by:
getChilds in interface OwCMISObjectClass
Overrides:
getChilds in class OwCMISAbstractObjectClass
Throws:
com.wewebu.ow.server.exceptions.OwException

newTransientObject

public <N extends org.apache.chemistry.opencmis.client.api.TransientCmisObject> OwCMISTransientObject<N> newTransientObject(N cmisObject,
                                                                                                                            org.apache.chemistry.opencmis.client.api.OperationContext creationContext)
Specified by:
newTransientObject in interface OwCMISNativeObjectClass<T extends org.apache.chemistry.opencmis.client.api.ObjectType,O extends org.apache.chemistry.opencmis.client.api.TransientCmisObject>

getQueryResultConverter

public OwCMISQueryResultConverter<O> getQueryResultConverter(org.apache.chemistry.opencmis.client.api.QueryResult queryResult,
                                                             com.wewebu.ow.csqlc.ast.OwQueryStatement statement,
                                                             org.apache.chemistry.opencmis.client.api.OperationContext context)
                                                                                                                           throws com.wewebu.ow.server.exceptions.OwException
Specified by:
getQueryResultConverter in interface OwCMISNativeObjectClass<T extends org.apache.chemistry.opencmis.client.api.ObjectType,O extends org.apache.chemistry.opencmis.client.api.TransientCmisObject>
Parameters:
queryResult - the QueryResult to be converted
statement - the CMIS SQL statement that resulted in the give QueryResult
Returns:
an OwCMISQueryResultConverter for query CMIS query results associated with object classes of this type
Throws:
com.wewebu.ow.server.exceptions.OwException

createSkeletonObject

public com.wewebu.ow.server.ecm.OwObjectSkeleton createSkeletonObject(com.wewebu.ow.server.ecm.OwNetwork network_p,
                                                                      OwCMISResource res_p,
                                                                      OwCMISNativeSession ses_p,
                                                                      com.wewebu.ow.server.util.OwXMLUtil initValues_p)
                                                               throws Exception
Description copied from interface: OwCMISObjectClass
Create skeleton Object for this specific object class.

Specified by:
createSkeletonObject in interface OwCMISObjectClass
Overrides:
createSkeletonObject in class OwCMISAbstractObjectClass
Parameters:
network_p - OwNetwork which is currently requesting skeleton object
res_p - OwCMISResource for which skeleton is created
ses_p - OwCMISNativeSession handling the current CMIS binding
initValues_p - OwXMLUtil which should be preset (can be null)
Returns:
OwObjectSkeleton
Throws:
Exception - if could not create skeleton object


Copyright © 2013 Alfresco Business Solutions. All Rights Reserved.