Class FilteredFormProcessor<ItemType,PersistType>
- java.lang.Object
-
- org.alfresco.repo.forms.processor.AbstractFormProcessor
-
- org.alfresco.repo.forms.processor.FilteredFormProcessor<ItemType,PersistType>
-
- All Implemented Interfaces:
FormProcessor
- Direct Known Subclasses:
ActionFormProcessor,ContentModelFormProcessor
public abstract class FilteredFormProcessor<ItemType,PersistType> extends AbstractFormProcessor
Abstract base class for all FormProcessor implementations that wish to use the filter mechanism.- Author:
- Gavin Cornwell, Nick Smith
-
-
Field Summary
Fields Modifier and Type Field Description protected FieldProcessorRegistryfieldProcessorRegistryprotected FilterRegistry<ItemType,PersistType>filterRegistry-
Fields inherited from class org.alfresco.repo.forms.processor.AbstractFormProcessor
active, DESTINATION, matchPattern, patternMatcher, processorRegistry
-
-
Constructor Summary
Constructors Constructor Description FilteredFormProcessor()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description Formgenerate(Item item, java.util.List<java.lang.String> fields, java.util.List<java.lang.String> forcedFields, java.util.Map<java.lang.String,java.lang.Object> context)Returns a Form representation for an itemprotected 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.List<Field>generateSelectedFields(java.util.List<java.lang.String> fields, FormCreationData data)protected abstract java.util.List<java.lang.String>getDefaultIgnoredFields()protected abstract java.lang.StringgetItemType(ItemType item)Returns aStringdescribing the type fo the specified item.protected abstract java.lang.StringgetItemURI(ItemType item)Returns the URI location of the specified item.protected abstract org.apache.commons.logging.LoggetLogger()Retrieves a logger instance to log to.protected abstract ItemTypegetTypedItem(Item item)Returns a typed Object representing the given item.protected voidinternalGenerate(ItemType item, java.util.List<java.lang.String> fields, java.util.List<java.lang.String> forcedFields, Form form, java.util.Map<java.lang.String,java.lang.Object> context)Generates the form.protected abstract PersistTypeinternalPersist(ItemType item, FormData data)Persists the form data.protected abstract java.lang.ObjectmakeItemData(ItemType item)java.lang.Objectpersist(Item item, FormData data)Persists the given form data for the given item, completed by calling each applicable registered handlerprotected voidpopulateForm(Form form, java.util.List<java.lang.String> fields, FormCreationData data)This method generates all the fields to be added and adds them to the Form, together with the associated field data.voidsetFieldProcessorRegistry(FieldProcessorRegistry fieldProcessorRegistry)Sets the field processor registry.voidsetFilterRegistry(FilterRegistry<ItemType,PersistType> filterRegistry)Sets the filter registryvoidsetIgnoredFields(java.util.List<java.lang.String> ignoredFields)-
Methods inherited from class org.alfresco.repo.forms.processor.AbstractFormProcessor
isActive, isApplicable, register, setActive, setFormItemType, setFormItemUrl, setMatchPattern, setProcessorRegistry, toString
-
-
-
-
Field Detail
-
filterRegistry
protected FilterRegistry<ItemType,PersistType> filterRegistry
-
fieldProcessorRegistry
protected FieldProcessorRegistry fieldProcessorRegistry
-
-
Method Detail
-
setFilterRegistry
public void setFilterRegistry(FilterRegistry<ItemType,PersistType> filterRegistry)
Sets the filter registry- Parameters:
filterRegistry- The FilterRegistry instance
-
setIgnoredFields
public void setIgnoredFields(java.util.List<java.lang.String> ignoredFields)
- Parameters:
ignoredFields- the ignoredFields to set
-
generate
public Form generate(Item item, java.util.List<java.lang.String> fields, java.util.List<java.lang.String> forcedFields, java.util.Map<java.lang.String,java.lang.Object> context)
Returns a Form representation for an item- Parameters:
item- The item to generate a Form object forfields- Restricted list of fields to include, null indicates all possible fields for the item should be includedforcedFields- List of field names from 'fields' list that should be forcibly included, it is up to the form processor implementation to determine how to enforce thiscontext- Map representing optional context that can be used during retrieval of the form- Returns:
- The Form representation
-
persist
public java.lang.Object persist(Item item, FormData data)
Persists the given form data for the given item, completed by calling each applicable registered handler- Parameters:
item- The item to save the form fordata- The object representing the form data- Returns:
- The object persisted
- See Also:
FormProcessor.persist(org.alfresco.repo.forms.Item, org.alfresco.repo.forms.FormData)
-
internalGenerate
protected void internalGenerate(ItemType item, java.util.List<java.lang.String> fields, java.util.List<java.lang.String> forcedFields, Form form, java.util.Map<java.lang.String,java.lang.Object> context)
Generates the form.- Parameters:
item- The object to generate a form forfields- Restricted list of fields to includeforcedFields- List of fields to forcibly includeform- The form object being generatedcontext- Map representing optional context that can be used during retrieval of the form
-
populateForm
protected void populateForm(Form form, java.util.List<java.lang.String> fields, FormCreationData data)
This method generates all the fields to be added and adds them to the Form, together with the associated field data.- Parameters:
form- TheFormto which the fields are added.fields- The names of all the fields to be added.data-FormCreationDataused to generate all the fields.
-
generateDefaultFields
protected 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.- Parameters:
data- Used for field creation.fieldsToIgnore- TODO- Returns:
- a
ListofFieldswhich may be empty.
-
generateSelectedFields
protected java.util.List<Field> generateSelectedFields(java.util.List<java.lang.String> fields, FormCreationData data)
-
setFieldProcessorRegistry
public void setFieldProcessorRegistry(FieldProcessorRegistry fieldProcessorRegistry)
Sets the field processor registry.- Parameters:
fieldProcessorRegistry- TheFieldProcessorRegistryto use.
-
makeItemData
protected abstract java.lang.Object makeItemData(ItemType item)
- Returns:
- Object
-
getTypedItem
protected abstract ItemType getTypedItem(Item item)
Returns a typed Object representing the given item.Subclasses that represent a form type will return a typed object that is then passed to each of it's handlers, the handlers can therefore safely cast the Object to the type they expect.
- Parameters:
item- The item to get a typed object for- Returns:
- The typed object
-
getLogger
protected abstract org.apache.commons.logging.Log getLogger()
Retrieves a logger instance to log to.- Returns:
- Log instance to log to.
-
getItemType
protected abstract java.lang.String getItemType(ItemType item)
Returns aStringdescribing the type fo the specified item.- Parameters:
item- ItemType- Returns:
- String
-
getItemURI
protected abstract java.lang.String getItemURI(ItemType item)
Returns the URI location of the specified item.- Parameters:
item- ItemType- Returns:
- String
-
internalPersist
protected abstract PersistType internalPersist(ItemType item, FormData data)
Persists the form data.- Parameters:
item- The object to persist the form fordata- The data to persist- Returns:
- The object that got created or modified
-
getDefaultIgnoredFields
protected abstract java.util.List<java.lang.String> getDefaultIgnoredFields()
When 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.- Returns:
- the names of all the fields to be excluded from the default
Formif nodefaultFieldsproperty is explicitly set.
-
-