Open Monograph Press  3.3.0
PersistableFilter Class Reference
Inheritance diagram for PersistableFilter:
Filter DataObject CompositeFilter MetadataDataObjectAdapter NativeImportExportFilter PersistableTestFilter TemplateBasedFilter XSLTransformationFilter GenericMultiplexerFilter GenericSequencerFilter OtherCompositeFilter Dc11SchemaPublicationFormatAdapter MetadataDescriptionDummyAdapter NativeExportFilter NativeImportFilter ChapterNativeXmlFilter MonographONIX30XmlFilter PKPAuthorNativeXmlFilter PKPPublicationNativeXmlFilter PKPUserUserXmlFilter RepresentationNativeXmlFilter SubmissionFileNativeXmlFilter SubmissionNativeXmlFilter UserGroupNativeXmlFilter NativeXmlChapterFilter NativeXmlPKPAuthorFilter NativeXmlPKPPublicationFilter NativeXmlRepresentationFilter NativeXmlSubmissionFileFilter NativeXmlSubmissionFilter NativeXmlUserGroupFilter UserXmlPKPUserFilter

Public Member Functions

 __construct ($filterGroup)
 
 addSetting ($setting)
 
 getClassName ()
 
 getFilterGroup ()
 
 getInternalSettings ()
 
 getIsTemplate ()
 
 getLocalizedSettingNames ()
 
 getParentFilterId ()
 
 getSetting ($settingName)
 
 getSettingNames ()
 
getSettings ()
 
 hasSetting ($settingName)
 
 hasSettings ()
 
 setIsTemplate ($isTemplate)
 
 setParentFilterId ($parentFilterId)
 
- Public Member Functions inherited from Filter
 __construct ($inputType, $outputType)
 
 addError ($message)
 
 clearErrors ()
 
execute (&$input, $returnErrors=false)
 
 getDisplayName ()
 
 getErrors ()
 
getInputType ()
 
getLastInput ()
 
getLastOutput ()
 
getOutputType ()
 
getRuntimeEnvironment ()
 
 getSequence ()
 
 hasErrors ()
 
 isCompatibleWithRuntimeEnvironment ()
 
process (&$input)
 
 setDisplayName ($displayName)
 
 setRuntimeEnvironment (&$runtimeEnvironment)
 
 setSequence ($seq)
 
 setTransformationType (&$inputType, &$outputType)
 
 supports (&$input, &$output)
 
 supportsAsInput (&$input)
 
- Public Member Functions inherited from DataObject
 __construct ()
 
 addSupportedMetadataAdapter ($metadataAdapter)
 
 extractMetadata ($metadataSchema)
 
 getAdditionalMetadataFieldNames ()
 
getAllData ()
 
 getDAO ()
 
getData ($key, $locale=null)
 
 getHasLoadableAdapters ()
 
 getId ()
 
 getLocaleMetadataFieldNames ()
 
 getLocalizedData ($key, $preferredLocale=null)
 
 getMetadataFieldNames ($translated=true)
 
 getSetMetadataFieldNames ($translated=true)
 
 getSupportedExtractionAdapters ()
 
 getSupportedInjectionAdapters ()
 
 getSupportedMetadataSchemas ()
 
 hasData ($key, $locale=null)
 
 injectMetadata ($metadataDescription)
 
 removeSupportedMetadataAdapter ($metadataSchemaName)
 
 setAllData (&$data)
 
 setData ($key, $value, $locale=null)
 
 setHasLoadableAdapters ($hasLoadableAdapters)
 
 setId ($id)
 
 unsetData ($key, $locale=null)
 
 upcastTo ($targetObject)
 

Static Public Member Functions

static tempGroup ($inputType, $outputType)
 
- Static Public Member Functions inherited from Filter
static supportedRuntimeEnvironmentSettings ()
 

Data Fields

 $_filterGroup
 
 $_settings = array()
 
- Data Fields inherited from Filter
 $_errors = array()
 
 $_input
 
 $_inputType
 
 $_output
 
 $_outputType
 
 $_runtimeEnvironment = false
 
- Data Fields inherited from DataObject
 $_data = array()
 
 $_extractionAdaptersLoaded = false
 
 $_hasLoadableAdapters = false
 
 $_injectionAdaptersLoaded = false
 
 $_metadataExtractionAdapters = array()
 
 $_metadataInjectionAdapters = array()
 

Detailed Description

A filter that can be persisted to the database.

See also
FilterGroup
FilterSetting

Persisted filters are attributed to a filter group so that all filters of the same kind can be discovered from the database.

Persisted filters also can provide a list of FilterSetting objects which represent persistable filter configuration parameters.

Persisted filters are templatable. This means that a non-parameterized copy of the filter can be persisted as a template for actual filter instances. The end user can discover such templates and use them to configure personalized transformations.

The filter template can provide default settings for all filter settings.

Persistable filters can be accessed via the FilterDAO which acts as a filter registry.

Filters can be organized hierarchically into filter networks or filter pipelines. The hierarchical relation is represented via parent- child relationships. See CompositeFilter for more details.

Definition at line 44 of file PersistableFilter.inc.php.

Constructor & Destructor Documentation

◆ __construct()

PersistableFilter::__construct (   $filterGroup)

Constructor

NB: Sub-classes of this class must not add additional mandatory constructor arguments. Sub-classes that implement additional optional constructor arguments must make these also accessible via setters if they are required to fully parameterize the transformation. Filter parameters must be stored as data in the underlying DataObject.

This is necessary as the FilterDAO does not support constructor configuration. Filter parameters will be configured via DataObject::setData(). Only parameters that are available in the DataObject will be persisted.

Parameters
$filterGroupFilterGroup

Reimplemented in NativeExportFilter, NativeImportExportFilter, MonographONIX30XmlFilter, SubmissionNativeXmlFilter, TemplateBasedFilter, NativeImportFilter, NativeXmlPKPAuthorFilter, NativeXmlPKPPublicationFilter, NativeXmlRepresentationFilter, NativeXmlSubmissionFileFilter, NativeXmlSubmissionFilter, PKPAuthorNativeXmlFilter, PKPPublicationNativeXmlFilter, RepresentationNativeXmlFilter, SubmissionFileNativeXmlFilter, NativeXmlUserGroupFilter, PKPUserUserXmlFilter, UserGroupNativeXmlFilter, UserXmlPKPUserFilter, PersistableTestFilter, ArtworkFileNativeXmlFilter, ChapterNativeXmlFilter, NativeXmlArtworkFileFilter, NativeXmlAuthorFilter, NativeXmlChapterFilter, NativeXmlMonographFileFilter, NativeXmlMonographFilter, NativeXmlPublicationFormatFilter, NativeXmlSupplementaryFileFilter, PublicationFormatNativeXmlFilter, and SupplementaryFileNativeXmlFilter.

Definition at line 74 of file PersistableFilter.inc.php.

References setIsTemplate(), and setParentFilterId().

Member Function Documentation

◆ addSetting()

PersistableFilter::addSetting (   $setting)

Add a filter setting

Parameters
$settingFilterSetting

Definition at line 145 of file PersistableFilter.inc.php.

References fatalError(), and getInternalSettings().

Referenced by PersistableTestFilter\__construct(), and XSLTransformationFilter\__construct().

◆ getClassName()

PersistableFilter::getClassName ( )

Return the fully qualified class name of the filter class. This information must be persisted when saving a filter so that the filter can later be reconstructed from the information in the database.

(This must be hard coded by sub-classes for PHP4 compatibility. PHP4 always returns class names lowercase which we cannot tolerate as we need this path to find the class on case sensitive file systems.)

Reimplemented in XSLTransformationFilter, GenericMultiplexerFilter, NativeXmlPKPAuthorFilter, NativeXmlSubmissionFileFilter, NativeXmlUserGroupFilter, NativeXmlChapterFilter, NativeXmlPublicationFormatFilter, UserXmlPKPUserFilter, MetadataDescriptionDummyAdapter, MonographONIX30XmlFilter, SubmissionNativeXmlFilter, Dc11SchemaPublicationFormatAdapter, GenericSequencerFilter, NativeXmlPKPPublicationFilter, NativeXmlSubmissionFilter, PKPAuthorNativeXmlFilter, RepresentationNativeXmlFilter, SubmissionFileNativeXmlFilter, PKPUserUserXmlFilter, UserGroupNativeXmlFilter, PersistableTestFilter, ChapterNativeXmlFilter, NativeXmlRepresentationFilter, PKPPublicationNativeXmlFilter, ArtworkFileNativeXmlFilter, NativeXmlArtworkFileFilter, NativeXmlAuthorFilter, NativeXmlMonographFileFilter, NativeXmlMonographFilter, NativeXmlSupplementaryFileFilter, PublicationFormatNativeXmlFilter, SupplementaryFileNativeXmlFilter, AuthorNativeXmlFilter, MonographFileNativeXmlFilter, MonographNativeXmlFilter, NativeXmlPublicationFilter, and PublicationNativeXmlFilter.

Definition at line 205 of file PersistableFilter.inc.php.

◆ getFilterGroup()

PersistableFilter::getFilterGroup ( )

Get the filter group

Returns
FilterGroup

Definition at line 93 of file PersistableFilter.inc.php.

References $_filterGroup.

◆ getInternalSettings()

PersistableFilter::getInternalSettings ( )

Returns names of settings which are in use by the filter class and therefore cannot be set as filter settings.

Returns
array

Reimplemented in CompositeFilter.

Definition at line 292 of file PersistableFilter.inc.php.

Referenced by addSetting().

◆ getIsTemplate()

PersistableFilter::getIsTemplate ( )

Is this a transformation template rather than an actual transformation?

Returns
boolean

Definition at line 121 of file PersistableFilter.inc.php.

References DataObject\getData().

◆ getLocalizedSettingNames()

PersistableFilter::getLocalizedSettingNames ( )

Return an array with the names of localized filter settings.

This will be used by the FilterDAO for filter setting persistence.

Returns
array

Reimplemented in CompositeFilter.

Definition at line 240 of file PersistableFilter.inc.php.

References getSettings().

◆ getParentFilterId()

PersistableFilter::getParentFilterId ( )

Get the parent filter id

Returns
integer

Definition at line 137 of file PersistableFilter.inc.php.

References DataObject\getData().

◆ getSetting()

PersistableFilter::getSetting (   $settingName)

Get a filter setting

Parameters
$settingNamestring
Returns
FilterSetting

Reimplemented in CompositeFilter.

Definition at line 162 of file PersistableFilter.inc.php.

◆ getSettingNames()

PersistableFilter::getSettingNames ( )

Return an array with the names of non-localized filter settings.

This will be used by the FilterDAO for filter setting persistence.

Returns
array

Reimplemented in CompositeFilter.

Definition at line 221 of file PersistableFilter.inc.php.

References getSettings().

◆ getSettings()

& PersistableFilter::getSettings ( )

Get all filter settings

Returns
array a list of FilterSetting objects

Reimplemented in CompositeFilter.

Definition at line 171 of file PersistableFilter.inc.php.

References $_settings.

Referenced by getLocalizedSettingNames(), and getSettingNames().

◆ hasSetting()

PersistableFilter::hasSetting (   $settingName)

Check whether a given setting is present in this filter.

Definition at line 179 of file PersistableFilter.inc.php.

◆ hasSettings()

PersistableFilter::hasSettings ( )

Can this filter be parameterized?

Returns
boolean

Reimplemented in CompositeFilter.

Definition at line 187 of file PersistableFilter.inc.php.

◆ setIsTemplate()

PersistableFilter::setIsTemplate (   $isTemplate)

Set whether this is a transformation template rather than an actual transformation.

Transformation templates are saved to the database when the filter is first registered. They are configured with default settings and will be used to let users identify available transformation types.

There must be exactly one transformation template for each supported filter group.

Parameters
$isTemplateboolean

Definition at line 112 of file PersistableFilter.inc.php.

References DataObject\setData().

Referenced by __construct().

◆ setParentFilterId()

PersistableFilter::setParentFilterId (   $parentFilterId)

Set the parent filter id

Parameters
$parentFilterIdinteger

Definition at line 129 of file PersistableFilter.inc.php.

References DataObject\setData().

Referenced by __construct().

◆ tempGroup()

static PersistableFilter::tempGroup (   $inputType,
  $outputType 
)
static

There are certain generic filters (e.g. CompositeFilters) that sometimes need to be persisted and sometimes are instantiated and used in code only.

As we don't have multiple inheritance in PHP we'll have to use the more general filter type (PersistableFilter) as the base class of these "hybrid" filters.

This means that we carry around some structure (e.g. filter groups) that do only make sense when a filter is actually being persisted and otherwise create unnecessary code.

We provide this helper function to instantiate a temporary filter group on the fly with only an input and an output type which takes away at least some of the cruft.

Parameters
$inputTypestring
$outputTypestring

Definition at line 274 of file PersistableFilter.inc.php.

Referenced by MetadataDescriptionDummyAdapter\__construct(), and PersistableFilterTest\testInstantiationAndExecute().

Field Documentation

◆ $_filterGroup

FilterGroup PersistableFilter::$_filterGroup

Definition at line 49 of file PersistableFilter.inc.php.

Referenced by getFilterGroup().

◆ $_settings

array PersistableFilter::$_settings = array()

a list of FilterSetting objects

Definition at line 55 of file PersistableFilter.inc.php.

Referenced by getSettings().


The documentation for this class was generated from the following file: