Class ContentModelFormProcessor<ItemType,PersistType>
- java.lang.Object
-
- org.alfresco.repo.forms.processor.AbstractFormProcessor
-
- org.alfresco.repo.forms.processor.FilteredFormProcessor<ItemType,PersistType>
-
- org.alfresco.repo.forms.processor.node.ContentModelFormProcessor<ItemType,PersistType>
-
- All Implemented Interfaces:
FormProcessor
- Direct Known Subclasses:
AbstractWorkflowFormProcessor,NodeFormProcessor,TypeFormProcessor
public abstract class ContentModelFormProcessor<ItemType,PersistType> extends FilteredFormProcessor<ItemType,PersistType>
Abstract FormProcessor implementation that provides common functionality for form processors that deal with Alfresco content models i.e. types and nodes.- Author:
- Gavin Cornwell, Nick Smith
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.regex.PatternassociationNamePatternA regular expression which can be used to match association names.protected ContentServicecontentServiceprotected org.alfresco.service.cmr.dictionary.DictionaryServicedictionaryServiceprotected FileFolderServicefileFolderServiceprotected org.alfresco.service.namespace.NamespaceServicenamespaceServiceprotected org.alfresco.service.cmr.repository.NodeServicenodeServiceServicesprotected org.alfresco.service.cmr.security.PermissionServicepermissionServiceprotected java.util.regex.PatternpropertyNamePatternA regular expression which can be used to match property names.protected java.util.regex.PatterntransientPropertyPatternA regular expression which can be used to match tranisent property names.-
Fields inherited from class org.alfresco.repo.forms.processor.FilteredFormProcessor
fieldProcessorRegistry, filterRegistry
-
Fields inherited from class org.alfresco.repo.forms.processor.AbstractFormProcessor
active, DESTINATION, matchPattern, patternMatcher, processorRegistry
-
-
Constructor Summary
Constructors Constructor Description ContentModelFormProcessor()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected voidaddPropertyDataIfRequired(org.alfresco.service.namespace.QName propName, Form form, ContentModelItemData<?> itemData)protected java.lang.StringdetermineDefaultMimetype(FormData data)Looks through the form data for the 'mimetype' transient field and returns it's value if found, otherwise the default 'text/plain' is returnedprotected java.util.List<Field>generateDefaultFields(FormCreationData data, java.util.List<java.lang.String> fieldsToIgnore)Generates a list of default fields to add if no field names are specified.protected java.util.Set<org.alfresco.service.namespace.QName>getAspectNames(ItemType item)protected abstract java.util.Map<org.alfresco.service.namespace.QName,java.io.Serializable>getAssociationValues(ItemType item)protected abstract org.alfresco.service.cmr.dictionary.TypeDefinitiongetBaseType(ItemType item)protected java.util.List<java.lang.String>getDefaultIgnoredFields()protected abstract java.util.Map<org.alfresco.service.namespace.QName,java.io.Serializable>getPropertyValues(ItemType item)protected abstract java.util.Map<java.lang.String,java.lang.Object>getTransientValues(ItemType item)protected ContentModelItemData<ItemType>makeItemData(ItemType item)protected voidpersistNode(org.alfresco.service.cmr.repository.NodeRef nodeRef, FormData data)Persists the given FormData on the given NodeRefprotected voidprocessAssociationPersist(org.alfresco.service.cmr.repository.NodeRef nodeRef, java.util.Map<org.alfresco.service.namespace.QName,org.alfresco.service.cmr.dictionary.AssociationDefinition> assocDefs, java.util.Map<org.alfresco.service.namespace.QName,org.alfresco.service.cmr.dictionary.ChildAssociationDefinition> childAssocDefs, FormData.FieldData fieldData, java.util.List<org.alfresco.repo.forms.processor.node.AbstractAssocCommand> assocCommands)Processes the given field data for persistence as an association.protected voidprocessContentPropertyPersist(org.alfresco.service.cmr.repository.NodeRef nodeRef, FormData.FieldData fieldData, java.util.Map<org.alfresco.service.namespace.QName,java.io.Serializable> propsToPersist, FormData data)Persists the given field data as the contentprotected voidprocessEncodingPropertyPersist(org.alfresco.service.cmr.repository.NodeRef nodeRef, FormData.FieldData fieldData, java.util.Map<org.alfresco.service.namespace.QName,java.io.Serializable> propsToPersist)Persists the given field data as the encoding propertyprotected voidprocessMimetypePropertyPersist(org.alfresco.service.cmr.repository.NodeRef nodeRef, FormData.FieldData fieldData, java.util.Map<org.alfresco.service.namespace.QName,java.io.Serializable> propsToPersist)Persists the given field data as the mimetype propertyprotected voidprocessNamePropertyPersist(org.alfresco.service.cmr.repository.NodeRef nodeRef, FormData.FieldData fieldData, java.util.Map<org.alfresco.service.namespace.QName,java.io.Serializable> propsToPersist)Persists the given field data as the name propertyprotected voidprocessPropertyPersist(org.alfresco.service.cmr.repository.NodeRef nodeRef, java.util.Map<org.alfresco.service.namespace.QName,org.alfresco.service.cmr.dictionary.PropertyDefinition> propDefs, FormData.FieldData fieldData, java.util.Map<org.alfresco.service.namespace.QName,java.io.Serializable> propsToPersist, FormData data)Processes the given field data for persistence as a property.voidsetContentService(ContentService contentService)Sets the content servicevoidsetDictionaryService(org.alfresco.service.cmr.dictionary.DictionaryService dictionaryService)Sets the data dictionary servicevoidsetFileFolderService(FileFolderService fileFolderService)Sets the file folder servicevoidsetNamespaceService(org.alfresco.service.namespace.NamespaceService namespaceService)Sets the namespace servicevoidsetNodeService(org.alfresco.service.cmr.repository.NodeService nodeService)Sets the node servicevoidsetPermissionService(org.alfresco.service.cmr.security.PermissionService permissionService)Sets the content service-
Methods inherited from class org.alfresco.repo.forms.processor.FilteredFormProcessor
generate, generateSelectedFields, getItemType, getItemURI, getLogger, getTypedItem, internalGenerate, internalPersist, persist, populateForm, setFieldProcessorRegistry, setFilterRegistry, setIgnoredFields
-
Methods inherited from class org.alfresco.repo.forms.processor.AbstractFormProcessor
isActive, isApplicable, register, setActive, setFormItemType, setFormItemUrl, setMatchPattern, setProcessorRegistry, toString
-
-
-
-
Field Detail
-
nodeService
protected org.alfresco.service.cmr.repository.NodeService nodeService
Services
-
fileFolderService
protected FileFolderService fileFolderService
-
dictionaryService
protected org.alfresco.service.cmr.dictionary.DictionaryService dictionaryService
-
namespaceService
protected org.alfresco.service.namespace.NamespaceService namespaceService
-
contentService
protected ContentService contentService
-
permissionService
protected org.alfresco.service.cmr.security.PermissionService permissionService
-
propertyNamePattern
protected java.util.regex.Pattern propertyNamePattern
A regular expression which can be used to match property names. These names will look like"prop_cm_name". The pattern can also be used to extract the "cm" and the "name" parts.
-
transientPropertyPattern
protected java.util.regex.Pattern transientPropertyPattern
A regular expression which can be used to match tranisent property names. These names will look like"prop_name". The pattern can also be used to extract the "name" part.
-
associationNamePattern
protected java.util.regex.Pattern associationNamePattern
A regular expression which can be used to match association names. These names will look like"assoc_cm_references_added". The pattern can also be used to extract the "cm", the "name" and the suffix parts.
-
-
Method Detail
-
setNodeService
public void setNodeService(org.alfresco.service.cmr.repository.NodeService nodeService)
Sets the node service- Parameters:
nodeService- The NodeService instance
-
setFileFolderService
public void setFileFolderService(FileFolderService fileFolderService)
Sets the file folder service- Parameters:
fileFolderService- The FileFolderService instance
-
setDictionaryService
public void setDictionaryService(org.alfresco.service.cmr.dictionary.DictionaryService dictionaryService)
Sets the data dictionary service- Parameters:
dictionaryService- The DictionaryService instance
-
setNamespaceService
public void setNamespaceService(org.alfresco.service.namespace.NamespaceService namespaceService)
Sets the namespace service- Parameters:
namespaceService- The NamespaceService instance
-
setContentService
public void setContentService(ContentService contentService)
Sets the content service- Parameters:
contentService- The ContentService instance
-
setPermissionService
public void setPermissionService(org.alfresco.service.cmr.security.PermissionService permissionService)
Sets the content service- Parameters:
permissionService- The PermissionService instance
-
addPropertyDataIfRequired
protected void addPropertyDataIfRequired(org.alfresco.service.namespace.QName propName, Form form, ContentModelItemData<?> itemData)
-
generateDefaultFields
protected java.util.List<Field> generateDefaultFields(FormCreationData data, java.util.List<java.lang.String> fieldsToIgnore)
Description copied from class:FilteredFormProcessorGenerates a list of default fields to add if no field names are specified.- Overrides:
generateDefaultFieldsin classFilteredFormProcessor<ItemType,PersistType>- Parameters:
data- Used for field creation.fieldsToIgnore- TODO- Returns:
- a
ListofFieldswhich may be empty.
-
makeItemData
protected ContentModelItemData<ItemType> makeItemData(ItemType item)
Description copied from class:FilteredFormProcessor- Specified by:
makeItemDatain classFilteredFormProcessor<ItemType,PersistType>- Returns:
- Object
-
getDefaultIgnoredFields
protected java.util.List<java.lang.String> getDefaultIgnoredFields()
Description copied from class:FilteredFormProcessorWhen aFormis generated with no field names specifically set then a defaultFormis created. The defaultFormcontains all the properties and associations related to theItem, excluding a blacklist of ignored fields which defaults to the return value of this method. The default ignored values can be overridden by setting the propertyignoredFields.- Specified by:
getDefaultIgnoredFieldsin classFilteredFormProcessor<ItemType,PersistType>- Returns:
- the names of all the fields to be excluded from the default
Formif nodefaultFieldsproperty is explicitly set.
-
getAspectNames
protected java.util.Set<org.alfresco.service.namespace.QName> getAspectNames(ItemType item)
-
getAssociationValues
protected abstract java.util.Map<org.alfresco.service.namespace.QName,java.io.Serializable> getAssociationValues(ItemType item)
-
getPropertyValues
protected abstract java.util.Map<org.alfresco.service.namespace.QName,java.io.Serializable> getPropertyValues(ItemType item)
-
getTransientValues
protected abstract java.util.Map<java.lang.String,java.lang.Object> getTransientValues(ItemType item)
-
getBaseType
protected abstract org.alfresco.service.cmr.dictionary.TypeDefinition getBaseType(ItemType item)
-
persistNode
protected void persistNode(org.alfresco.service.cmr.repository.NodeRef nodeRef, FormData data)Persists the given FormData on the given NodeRef- Parameters:
nodeRef- The NodeRef to persist the form data ondata- The FormData to persist
-
processPropertyPersist
protected void processPropertyPersist(org.alfresco.service.cmr.repository.NodeRef nodeRef, java.util.Map<org.alfresco.service.namespace.QName,org.alfresco.service.cmr.dictionary.PropertyDefinition> propDefs, FormData.FieldData fieldData, java.util.Map<org.alfresco.service.namespace.QName,java.io.Serializable> propsToPersist, FormData data)Processes the given field data for persistence as a property.- Parameters:
nodeRef- The NodeRef to persist the properties onpropDefs- Map of PropertyDefinition's for the node being persistedfieldData- Data to persist for the propertypropsToPersist- Map of properties to be persisteddata- The FormData to persist
-
processAssociationPersist
protected void processAssociationPersist(org.alfresco.service.cmr.repository.NodeRef nodeRef, java.util.Map<org.alfresco.service.namespace.QName,org.alfresco.service.cmr.dictionary.AssociationDefinition> assocDefs, java.util.Map<org.alfresco.service.namespace.QName,org.alfresco.service.cmr.dictionary.ChildAssociationDefinition> childAssocDefs, FormData.FieldData fieldData, java.util.List<org.alfresco.repo.forms.processor.node.AbstractAssocCommand> assocCommands)Processes the given field data for persistence as an association.- Parameters:
nodeRef- The NodeRef to persist the associations onfieldData- Data to persist for the associationsassocCommands- List of associations to be persisted
-
processNamePropertyPersist
protected void processNamePropertyPersist(org.alfresco.service.cmr.repository.NodeRef nodeRef, FormData.FieldData fieldData, java.util.Map<org.alfresco.service.namespace.QName,java.io.Serializable> propsToPersist)Persists the given field data as the name property- Parameters:
nodeRef- The NodeRef to update the name forfieldData- The data representing the new name valuepropsToPersist- Map of properties to be persisted
-
processMimetypePropertyPersist
protected void processMimetypePropertyPersist(org.alfresco.service.cmr.repository.NodeRef nodeRef, FormData.FieldData fieldData, java.util.Map<org.alfresco.service.namespace.QName,java.io.Serializable> propsToPersist)Persists the given field data as the mimetype property- Parameters:
nodeRef- The NodeRef to update the mimetype forfieldData- The data representing the new mimetype valuepropsToPersist- Map of properties to be persisted
-
processEncodingPropertyPersist
protected void processEncodingPropertyPersist(org.alfresco.service.cmr.repository.NodeRef nodeRef, FormData.FieldData fieldData, java.util.Map<org.alfresco.service.namespace.QName,java.io.Serializable> propsToPersist)Persists the given field data as the encoding property- Parameters:
nodeRef- The NodeRef to update the encoding forfieldData- The data representing the new encoding valuepropsToPersist- Map of properties to be persisted
-
processContentPropertyPersist
protected void processContentPropertyPersist(org.alfresco.service.cmr.repository.NodeRef nodeRef, FormData.FieldData fieldData, java.util.Map<org.alfresco.service.namespace.QName,java.io.Serializable> propsToPersist, FormData data)Persists the given field data as the content- Parameters:
nodeRef- The NodeRef to update the content forfieldData- The data representing the new contentpropsToPersist- Map of properties to be persisteddata- The form data being persisted
-
determineDefaultMimetype
protected java.lang.String determineDefaultMimetype(FormData data)
Looks through the form data for the 'mimetype' transient field and returns it's value if found, otherwise the default 'text/plain' is returned- Parameters:
data- Form data being persisted- Returns:
- The default mimetype
-
-