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 Details

    • nodeService

      protected NodeService nodeService
      Services
    • fileFolderService

      protected FileFolderService fileFolderService
    • dictionaryService

      protected DictionaryService dictionaryService
    • namespaceService

      protected NamespaceService namespaceService
    • contentService

      protected ContentService contentService
    • permissionService

      protected PermissionService permissionService
    • propertyNamePattern

      protected 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 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 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.
  • Constructor Details

    • ContentModelFormProcessor

      public ContentModelFormProcessor()
  • Method Details

    • setNodeService

      public void setNodeService(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(DictionaryService dictionaryService)
      Sets the data dictionary service
      Parameters:
      dictionaryService - The DictionaryService instance
    • setNamespaceService

      public void setNamespaceService(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(PermissionService permissionService)
      Sets the content service
      Parameters:
      permissionService - The PermissionService instance
    • addPropertyDataIfRequired

      protected void addPropertyDataIfRequired(QName propName, Form form, ContentModelItemData<?> itemData)
    • generateDefaultFields

      protected List<Field> generateDefaultFields(FormCreationData data, List<String> fieldsToIgnore)
      Description copied from class: FilteredFormProcessor
      Generates a list of default fields to add if no field names are specified.
      Overrides:
      generateDefaultFields in class FilteredFormProcessor<ItemType,PersistType>
      Parameters:
      data - Used for field creation.
      fieldsToIgnore - TODO
      Returns:
      a List of Fields which may be empty.
    • makeItemData

      protected ContentModelItemData<ItemType> makeItemData(ItemType item)
      Description copied from class: FilteredFormProcessor
      Creates a data object used by the FormProcessor and FieldProcessors to create Fields
      Specified by:
      makeItemData in class FilteredFormProcessor<ItemType,PersistType>
      Returns:
      Object
    • getDefaultIgnoredFields

      protected List<String> getDefaultIgnoredFields()
      Description copied from class: FilteredFormProcessor
      When a Form is generated with no field names specifically set then a default Form is created. The default Form contains all the properties and associations related to the Item, 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 property ignoredFields.
      Specified by:
      getDefaultIgnoredFields in class FilteredFormProcessor<ItemType,PersistType>
      Returns:
      the names of all the fields to be excluded from the default Form if no defaultFields property is explicitly set.
    • getAspectNames

      protected Set<QName> getAspectNames(ItemType item)
    • getAssociationValues

      protected abstract Map<QName,Serializable> getAssociationValues(ItemType item)
    • getPropertyValues

      protected abstract Map<QName,Serializable> getPropertyValues(ItemType item)
    • getTransientValues

      protected abstract Map<String,Object> getTransientValues(ItemType item)
    • getBaseType

      protected abstract TypeDefinition getBaseType(ItemType item)
    • persistNode

      protected void persistNode(NodeRef nodeRef, FormData data)
      Persists the given FormData on the given NodeRef
      Parameters:
      nodeRef - The NodeRef to persist the form data on
      data - The FormData to persist
    • processPropertyPersist

      protected void processPropertyPersist(NodeRef nodeRef, Map<QName,PropertyDefinition> propDefs, FormData.FieldData fieldData, Map<QName,Serializable> propsToPersist, FormData data)
      Processes the given field data for persistence as a property.
      Parameters:
      nodeRef - The NodeRef to persist the properties on
      propDefs - Map of PropertyDefinition's for the node being persisted
      fieldData - Data to persist for the property
      propsToPersist - Map of properties to be persisted
      data - The FormData to persist
    • processAssociationPersist

      protected void processAssociationPersist(NodeRef nodeRef, Map<QName,AssociationDefinition> assocDefs, Map<QName,ChildAssociationDefinition> childAssocDefs, FormData.FieldData fieldData, 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 on
      fieldData - Data to persist for the associations
      assocCommands - List of associations to be persisted
    • processNamePropertyPersist

      protected void processNamePropertyPersist(NodeRef nodeRef, FormData.FieldData fieldData, Map<QName,Serializable> propsToPersist)
      Persists the given field data as the name property
      Parameters:
      nodeRef - The NodeRef to update the name for
      fieldData - The data representing the new name value
      propsToPersist - Map of properties to be persisted
    • processMimetypePropertyPersist

      protected void processMimetypePropertyPersist(NodeRef nodeRef, FormData.FieldData fieldData, Map<QName,Serializable> propsToPersist)
      Persists the given field data as the mimetype property
      Parameters:
      nodeRef - The NodeRef to update the mimetype for
      fieldData - The data representing the new mimetype value
      propsToPersist - Map of properties to be persisted
    • processEncodingPropertyPersist

      protected void processEncodingPropertyPersist(NodeRef nodeRef, FormData.FieldData fieldData, Map<QName,Serializable> propsToPersist)
      Persists the given field data as the encoding property
      Parameters:
      nodeRef - The NodeRef to update the encoding for
      fieldData - The data representing the new encoding value
      propsToPersist - Map of properties to be persisted
    • processContentPropertyPersist

      protected void processContentPropertyPersist(NodeRef nodeRef, FormData.FieldData fieldData, Map<QName,Serializable> propsToPersist, FormData data)
      Persists the given field data as the content
      Parameters:
      nodeRef - The NodeRef to update the content for
      fieldData - The data representing the new content
      propsToPersist - Map of properties to be persisted
      data - The form data being persisted
    • determineDefaultMimetype

      protected 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