Package org.ametys.cms.data.type
Class AbstractFileElementType
- java.lang.Object
-
- org.ametys.runtime.plugin.component.AbstractLogEnabled
-
- org.ametys.core.model.type.AbstractModelItemType
-
- org.ametys.core.model.type.AbstractElementType<File>
-
- org.ametys.cms.data.type.AbstractFileElementType
-
- All Implemented Interfaces:
ElementType<File>
,ModelItemType
,LogEnabled
,PluginAware
,Component
,Configurable
,Contextualizable
,Serviceable
- Direct Known Subclasses:
FileRepositoryElementType
public abstract class AbstractFileElementType extends AbstractElementType<File> implements Configurable, Contextualizable
Abstract class for file type of elements
-
-
Field Summary
Fields Modifier and Type Field Description protected static String
__EXPLORER_FILE_TYPE
Type of he file from explorerprotected String
_binaryType
Type of the binaryprotected Context
_context
Coocon's contextprotected AmetysObjectResolver
_resolver
Ametys object resolverprotected UploadManager
_uploadManager
protected CurrentUserProvider
_userProvider
-
Fields inherited from class org.ametys.core.model.type.AbstractElementType
_jsonUtils
-
-
Constructor Summary
Constructors Constructor Description AbstractFileElementType()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Stream<Triple<DataChangeType,DataChangeTypeDetail,String>>
_compareMultipleValues(File[] value1, File[] value2)
Compares the given multiple values and retrieves the changes as a stream ofTriple
s.protected Stream<Triple<DataChangeType,DataChangeTypeDetail,String>>
_compareSingleValues(File value1, File value2)
Compares the given single values and retrieves the changes as a stream ofTriple
s.private boolean
_havValuesSameFileType(File value1, File value2)
private Object
_singleExplorerFileToJSON(ExplorerFile explorerFile)
private void
_singleExplorerFileToSAX(ContentHandler contentHandler, String tagName, ExplorerFile explorerFile, AttributesImpl attributes)
protected File
_singleValueFromXML(Element element, Optional<Object> additionalData)
Retrieves a single typed value from the given DOM nodeprotected boolean
_useJSONForEdition()
Determine if the JSON format has to be used in edition mode for this element typeprotected void
_valueToSAX(ContentHandler contentHandler, String tagName, Object value, Optional<ViewItem> viewItem, DataContext context, AttributesImpl attributes)
Generates SAX events for the given valuevoid
configure(Configuration configuration)
void
contextualize(Context context)
File
convertValue(Object value)
Try to convert the given value.Object
fromJSONForClient(Object json)
Convert the given client side JSON object to the types valueboolean
isCompatible(Object value)
Checks if the value is compatible with the element typeboolean
isSimple()
Determines if this type is simple or not.void
service(ServiceManager manager)
String
toString(File value)
Cast a typed value to a StringObject
valueToJSONForClient(Object value, DataContext context)
Convert the value into a JSON object to use client side-
Methods inherited from class org.ametys.core.model.type.AbstractElementType
_getValueAttributes, _isValueFromXMLMultiple, _singleValueToJSON, _singleValueToSAX, _valueToSAX, _valueToSAXForEdition, castValue, compareValues, getManagedClass, getManagedClassArray, parseConfiguration, valueFromXML, valueToSAX, valueToSAXForEdition
-
Methods inherited from class org.ametys.core.model.type.AbstractModelItemType
_getContextAttributes, getId, setPluginInfo
-
Methods inherited from class org.ametys.runtime.plugin.component.AbstractLogEnabled
getLogger, setLogger
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.ametys.runtime.model.type.ModelItemType
getId, valueToSAX
-
Methods inherited from interface org.ametys.runtime.plugin.component.PluginAware
setPluginInfo
-
-
-
-
Field Detail
-
__EXPLORER_FILE_TYPE
protected static final String __EXPLORER_FILE_TYPE
Type of he file from explorer- See Also:
- Constant Field Values
-
_resolver
protected AmetysObjectResolver _resolver
Ametys object resolver
-
_binaryType
protected String _binaryType
Type of the binary
-
_uploadManager
protected UploadManager _uploadManager
-
_userProvider
protected CurrentUserProvider _userProvider
-
-
Constructor Detail
-
AbstractFileElementType
public AbstractFileElementType()
-
-
Method Detail
-
contextualize
public void contextualize(Context context) throws ContextException
- Specified by:
contextualize
in interfaceContextualizable
- Throws:
ContextException
-
service
public void service(ServiceManager manager) throws ServiceException
- Specified by:
service
in interfaceServiceable
- Overrides:
service
in classAbstractElementType<File>
- Throws:
ServiceException
-
configure
public void configure(Configuration configuration) throws ConfigurationException
- Specified by:
configure
in interfaceConfigurable
- Throws:
ConfigurationException
-
convertValue
public File convertValue(Object value)
Description copied from class:AbstractElementType
Try to convert the given value.- Overrides:
convertValue
in classAbstractElementType<File>
- Parameters:
value
- the value to convert- Returns:
- the converted value or null if it's not possible.
-
toString
public String toString(File value)
Description copied from interface:ElementType
Cast a typed value to a String- Specified by:
toString
in interfaceElementType<File>
- Overrides:
toString
in classAbstractElementType<File>
- Parameters:
value
- the value to cast- Returns:
- the String representation of the value
-
fromJSONForClient
public Object fromJSONForClient(Object json)
Description copied from interface:ElementType
Convert the given client side JSON object to the types value- Specified by:
fromJSONForClient
in interfaceElementType<File>
- Parameters:
json
- the JSON object to convert- Returns:
- the typed value corresponding to the JSON object
-
valueToJSONForClient
public Object valueToJSONForClient(Object value, DataContext context)
Description copied from interface:ElementType
Convert the value into a JSON object to use client side- Specified by:
valueToJSONForClient
in interfaceElementType<File>
- Overrides:
valueToJSONForClient
in classAbstractElementType<File>
- Parameters:
value
- the value to convertcontext
- The context of the data to convert- Returns:
- The value as JSON
-
isCompatible
public boolean isCompatible(Object value)
Description copied from interface:ElementType
Checks if the value is compatible with the element type- Specified by:
isCompatible
in interfaceElementType<File>
- Overrides:
isCompatible
in classAbstractElementType<File>
- Parameters:
value
- the value to check- Returns:
true
if the value matches the current type,false
otherwise
-
_singleExplorerFileToJSON
private Object _singleExplorerFileToJSON(ExplorerFile explorerFile)
-
_singleValueFromXML
protected File _singleValueFromXML(Element element, Optional<Object> additionalData) throws TransformerException, IOException
Description copied from class:AbstractElementType
Retrieves a single typed value from the given DOM node- Overrides:
_singleValueFromXML
in classAbstractElementType<File>
- Parameters:
element
- the DOM element containing the single valueadditionalData
- additional data needed to get the typed value- Returns:
- the value
- Throws:
TransformerException
- if an error occurs while parsing the DOM nodeIOException
- if an error occurs while parsing a value using the I/O API
-
_valueToSAX
protected void _valueToSAX(ContentHandler contentHandler, String tagName, Object value, Optional<ViewItem> viewItem, DataContext context, AttributesImpl attributes) throws SAXException, IOException
Description copied from class:AbstractElementType
Generates SAX events for the given value- Overrides:
_valueToSAX
in classAbstractElementType<File>
- Parameters:
contentHandler
- theContentHandler
that will receive the SAX eventstagName
- the tag name of the SAX event to generate.value
- the value to SAXviewItem
- The optional view item corresponding item that is currently saxed. This view item gives context for the SAX event that will be generated here.context
- The context of the data to SAXattributes
- the attributes for the SAX events to generate- Throws:
SAXException
- if an error occurs during the SAX events generationIOException
- if an error occurs while reading a value using the I/O API
-
_singleExplorerFileToSAX
private void _singleExplorerFileToSAX(ContentHandler contentHandler, String tagName, ExplorerFile explorerFile, AttributesImpl attributes) throws SAXException
- Throws:
SAXException
-
_compareMultipleValues
protected Stream<Triple<DataChangeType,DataChangeTypeDetail,String>> _compareMultipleValues(File[] value1, File[] value2) throws IOException
Description copied from class:AbstractElementType
Compares the given multiple values and retrieves the changes as a stream ofTriple
s. TheTriple
s contains:- the general type of the change (added, modified or removed) as a
DataChangeType
, - some details about this change if possible (after or before for a date, more or less for a number, ...) as a
DataChangeTypeDetail
- The data concerned by this change if not the element itself (or an empty String)
- Overrides:
_compareMultipleValues
in classAbstractElementType<File>
- Parameters:
value1
- the 1st multiple valuevalue2
- the 2nd multiple value- Returns:
- the changes between the two given multiple values as a stream of
Triple
. Retrieves an empty stream if there is no change - Throws:
IOException
- if an error occurs while comparing values using the I/O API
- the general type of the change (added, modified or removed) as a
-
_compareSingleValues
protected Stream<Triple<DataChangeType,DataChangeTypeDetail,String>> _compareSingleValues(File value1, File value2) throws IOException
Description copied from class:AbstractElementType
Compares the given single values and retrieves the changes as a stream ofTriple
s. TheTriple
contains:- the general type of the change (added, modified or removed) as a
DataChangeType
, - some details about this change if possible (after or before for a date, more or less for a number, ...) as a
DataChangeTypeDetail
- The data concerned by this change if not the element itself (or an empty String)
- Overrides:
_compareSingleValues
in classAbstractElementType<File>
- Parameters:
value1
- the 1st single valuevalue2
- the 2nd single value- Returns:
- the changes between the two given single values as a stream of
Triple
. Retrieves an empty stream if there is no change - Throws:
IOException
- if an error occurs while comparing values using the I/O API
- the general type of the change (added, modified or removed) as a
-
_havValuesSameFileType
private boolean _havValuesSameFileType(File value1, File value2)
-
isSimple
public boolean isSimple()
Description copied from interface:ElementType
Determines if this type is simple or not. A simple element type is a type of elements that can be edited in a grid- Specified by:
isSimple
in interfaceElementType<File>
- Returns:
true
if the type is simple,false
otherwise
-
_useJSONForEdition
protected boolean _useJSONForEdition()
Description copied from class:AbstractElementType
Determine if the JSON format has to be used in edition mode for this element type- Overrides:
_useJSONForEdition
in classAbstractElementType<File>
- Returns:
true
if the JSON format has to be used,false
otherwise
-
-