org.alfresco.repo.forms.processor
Class FilteredFormProcessor

java.lang.Object
  extended by org.alfresco.repo.forms.processor.AbstractFormProcessor
      extended by org.alfresco.repo.forms.processor.FilteredFormProcessor
All Implemented Interfaces:
FormProcessor
Direct Known Subclasses:
ActionFormProcessor, ContentModelFormProcessor

public abstract class FilteredFormProcessor
extends AbstractFormProcessor

Abstract base class for all FormProcessor implementations that wish to use the filter mechanism.


Field Summary
protected  FieldProcessorRegistry fieldProcessorRegistry
           
protected  FilterRegistry filterRegistry
           
 
Fields inherited from class org.alfresco.repo.forms.processor.AbstractFormProcessor
active, DESTINATION, matchPattern, patternMatcher, processorRegistry
 
Constructor Summary
FilteredFormProcessor()
           
 
Method Summary
 Form generate(Item item, java.util.List fields, java.util.List forcedFields, java.util.Map context)
          Returns a Form representation for an item
protected  java.util.List generateDefaultFields(FormCreationData data, java.util.List fieldsToIgnore)
          Generates a list of default fields to add if no field names are specified.
protected  java.util.List generateSelectedFields(java.util.List fields, FormCreationData data)
           
protected abstract  java.util.List getDefaultIgnoredFields()
          When a Form is generated with no field names specifically set then a default Form is created.
protected abstract  java.lang.String getItemType(java.lang.Object item)
          Returns a String describing the type fo the specified item.
protected abstract  java.lang.String getItemURI(java.lang.Object item)
          Returns the URI location of the specified item.
protected abstract  org.apache.commons.logging.Log getLogger()
          Retrieves a logger instance to log to.
protected abstract  java.lang.Object getTypedItem(Item item)
          Returns a typed Object representing the given item.
protected  void internalGenerate(java.lang.Object item, java.util.List fields, java.util.List forcedFields, Form form, java.util.Map context)
          Generates the form.
protected abstract  java.lang.Object internalPersist(java.lang.Object item, FormData data)
          Persists the form data.
protected abstract  java.lang.Object makeItemData(java.lang.Object item)
          Creates a data object used by the FormProcessor and FieldProcessors to create Fields
 java.lang.Object persist(Item item, FormData data)
          Persists the given form data for the given item, completed by calling each applicable registered handler
protected  void populateForm(Form form, java.util.List fields, FormCreationData data)
          This method generates all the fields to be added and adds them to the Form, together with the associated field data.
 void setFieldProcessorRegistry(FieldProcessorRegistry fieldProcessorRegistry)
          Sets the field processor registry.
 void setFilterRegistry(FilterRegistry filterRegistry)
          Sets the filter registry
 void setIgnoredFields(java.util.List ignoredFields)
           
 
Methods inherited from class org.alfresco.repo.forms.processor.AbstractFormProcessor
isActive, isApplicable, register, setActive, setFormItemType, setFormItemUrl, setMatchPattern, setProcessorRegistry, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

filterRegistry

protected FilterRegistry filterRegistry

fieldProcessorRegistry

protected FieldProcessorRegistry fieldProcessorRegistry
Constructor Detail

FilteredFormProcessor

public FilteredFormProcessor()
Method Detail

setFilterRegistry

public void setFilterRegistry(FilterRegistry filterRegistry)
Sets the filter registry

Parameters:
filterRegistry - The FilterRegistry instance

setIgnoredFields

public void setIgnoredFields(java.util.List ignoredFields)
Parameters:
ignoredFields - the ignoredFields to set

generate

public Form generate(Item item,
                     java.util.List fields,
                     java.util.List forcedFields,
                     java.util.Map context)
Returns a Form representation for an item

Parameters:
item - The item to generate a Form object for
fields - Restricted list of fields to include, null indicates all possible fields for the item should be included
forcedFields - 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 this
context - 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 for
data - 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(java.lang.Object item,
                                java.util.List fields,
                                java.util.List forcedFields,
                                Form form,
                                java.util.Map context)
Generates the form.

Parameters:
item - The object to generate a form for
fields - Restricted list of fields to include
forcedFields - List of fields to forcibly include
form - The form object being generated
context - Map representing optional context that can be used during retrieval of the form

populateForm

protected void populateForm(Form form,
                            java.util.List 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 - The Form to which the fields are added.
fields - The names of all the fields to be added.
data - FormCreationData used to generate all the fields.

generateDefaultFields

protected java.util.List generateDefaultFields(FormCreationData data,
                                               java.util.List fieldsToIgnore)
Generates a list of default fields to add if no field names are specified.

Parameters:
data - Used for field creation.
ignoredFields - TODO
Returns:
a List of Fields which may be empty.

generateSelectedFields

protected java.util.List generateSelectedFields(java.util.List fields,
                                                FormCreationData data)

setFieldProcessorRegistry

public void setFieldProcessorRegistry(FieldProcessorRegistry fieldProcessorRegistry)
Sets the field processor registry.

Parameters:
fieldProcessorRegistry - The FieldProcessorRegistry to use.

makeItemData

protected abstract java.lang.Object makeItemData(java.lang.Object item)
Creates a data object used by the FormProcessor and FieldProcessors to create Fields

Returns:

getTypedItem

protected abstract java.lang.Object 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(java.lang.Object item)
Returns a String describing the type fo the specified item.

Parameters:
item -
Returns:

getItemURI

protected abstract java.lang.String getItemURI(java.lang.Object item)
Returns the URI location of the specified item.

Parameters:
item -
Returns:

internalPersist

protected abstract java.lang.Object internalPersist(java.lang.Object item,
                                                    FormData data)
Persists the form data.

Parameters:
item - The object to persist the form for
data - The data to persist
Returns:
The object that got created or modified

getDefaultIgnoredFields

protected abstract java.util.List getDefaultIgnoredFields()
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.

Returns:
the names of all the fields to be excluded from the default Form if no defaultFields property is explicitly set.


Copyright © 2005 - 2010 Alfresco Software, Inc. All Rights Reserved.