Package org.ametys.cms.data.type
Class AbstractBinaryElementType
java.lang.Object
org.ametys.runtime.plugin.component.AbstractLogEnabled
org.ametys.core.model.type.AbstractModelItemType
org.ametys.core.model.type.AbstractElementType<Binary>
org.ametys.cms.data.type.AbstractBinaryElementType
- All Implemented Interfaces:
ElementType<Binary>
,ModelItemType
,LogEnabled
,PluginAware
,Component
,Configurable
,Contextualizable
,Serviceable
- Direct Known Subclasses:
BinaryRepositoryElementType
public abstract class AbstractBinaryElementType
extends AbstractElementType<Binary>
implements Configurable, Contextualizable
Abstract class for binary type of elements
-
Field Summary
Modifier and TypeFieldDescriptionprotected String
Type of the binaryprotected Context
Coocon's contextprotected UploadManager
protected CurrentUserProvider
static final String
Constant for non-modified binary during editionFields inherited from class org.ametys.core.model.type.AbstractElementType
_jsonUtils
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected Stream<Triple<DataChangeType,
DataChangeTypeDetail, String>> _compareMultipleValues
(Binary[] value1, Binary[] value2) Compares the given multiple values and retrieves the changes as a stream ofTriple
s.protected Stream<Triple<DataChangeType,
DataChangeTypeDetail, String>> _compareSingleValues
(Binary value1, Binary value2) Compares the given single values and retrieves the changes as a stream ofTriple
s.protected Binary
_singleValueFromXML
(Element element, Optional<Object> additionalData) Retrieves a single typed value from the given DOM nodeprotected Object
_singleValueToJSON
(Binary value, DataContext context) Convert the single value into a JSON objectprotected void
_singleValueToSAX
(ContentHandler contentHandler, String tagName, Binary binary, Optional<ViewItem> viewItem, DataContext context, AttributesImpl attributes) Generates SAX events for the given single valueprotected boolean
Determine if the JSON format has to be used in edition mode for this element typevoid
configure
(Configuration configuration) void
contextualize
(Context context) 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) Cast a typed value to a StringMethods inherited from class org.ametys.core.model.type.AbstractElementType
_getValueAttributes, _isValueFromXMLMultiple, _valueToSAX, _valueToSAX, _valueToSAXForEdition, castValue, compareValues, convertValue, getManagedClass, getManagedClassArray, parseConfiguration, valueFromXML, valueToJSONForClient, 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 Details
-
UNTOUCHED
Constant for non-modified binary during edition- See Also:
-
_binaryType
Type of the binary -
_uploadManager
-
_userProvider
-
_context
Coocon's context
-
-
Constructor Details
-
AbstractBinaryElementType
public AbstractBinaryElementType()
-
-
Method Details
-
contextualize
- Specified by:
contextualize
in interfaceContextualizable
- Throws:
ContextException
-
service
- Specified by:
service
in interfaceServiceable
- Overrides:
service
in classAbstractElementType<Binary>
- Throws:
ServiceException
-
configure
- Specified by:
configure
in interfaceConfigurable
- Throws:
ConfigurationException
-
toString
Description copied from interface:ElementType
Cast a typed value to a String- Specified by:
toString
in interfaceElementType<Binary>
- Overrides:
toString
in classAbstractElementType<Binary>
- Parameters:
value
- the value to cast- Returns:
- the String representation of the value
-
fromJSONForClient
Description copied from interface:ElementType
Convert the given client side JSON object to the types value- Specified by:
fromJSONForClient
in interfaceElementType<Binary>
- Parameters:
json
- the JSON object to convert- Returns:
- the typed value corresponding to the JSON object
-
isCompatible
Description copied from interface:ElementType
Checks if the value is compatible with the element type- Specified by:
isCompatible
in interfaceElementType<Binary>
- Overrides:
isCompatible
in classAbstractElementType<Binary>
- Parameters:
value
- the value to check- Returns:
true
if the value matches the current type,false
otherwise
-
_singleValueToJSON
Description copied from class:AbstractElementType
Convert the single value into a JSON object- Overrides:
_singleValueToJSON
in classAbstractElementType<Binary>
- Parameters:
value
- the value to convertcontext
- The context of the data to convert- Returns:
- The value as JSON
-
_singleValueFromXML
protected Binary _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<Binary>
- 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
-
_singleValueToSAX
protected void _singleValueToSAX(ContentHandler contentHandler, String tagName, Binary binary, Optional<ViewItem> viewItem, DataContext context, AttributesImpl attributes) throws SAXException Description copied from class:AbstractElementType
Generates SAX events for the given single value- Overrides:
_singleValueToSAX
in classAbstractElementType<Binary>
- Parameters:
contentHandler
- theContentHandler
that will receive the SAX eventstagName
- the tag name of the SAX event to generate.binary
- the single 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 event to generate- Throws:
SAXException
- if an error occurs during the SAX events generation
-
_compareMultipleValues
protected Stream<Triple<DataChangeType,DataChangeTypeDetail, _compareMultipleValuesString>> (Binary[] value1, Binary[] 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<Binary>
- 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, _compareSingleValuesString>> (Binary value1, Binary 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<Binary>
- 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
-
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<Binary>
- Returns:
true
if the type is simple,false
otherwise
-
_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<Binary>
- Returns:
true
if the JSON format has to be used,false
otherwise
-