Class DateAccessor
java.lang.Object
org.jolokia.service.serializer.json.DateAccessor
- All Implemented Interfaces:
ObjectAccessor
ObjectAccessor for sophisticated date handling which support virtual
path handling (i.e for converting to epoch time or an ISO-8601 format). The JSON representation is
Long value if seconds/milliseconds/nanoseconds of UNIX time is expected, or String for configured
formatter.- Since:
- 17.04.11
- Author:
- roland
-
Constructor Summary
ConstructorsConstructorDescriptionDateAccessor(DateFormatConfiguration configuration) Create this accessor using configurable format andTimeZone. -
Method Summary
Modifier and TypeMethodDescriptionbooleanWhether this accessor can be used to set a value inside (directly or nested) a value ofgiven class.extractObject(ObjectToJsonConverter pConverter, Object pDate, Deque<String> pPathParts, boolean pJsonify) Extract an object from givenpValueofthe supported type.extractString(Object pDate) Convert a value to String - only ifsuch conversion is supported.Class<?>getType()Gets a class of supported objects.Sets the content ofDateobject.booleanSome accessors may support dedicated conversion to String.
-
Constructor Details
-
DateAccessor
Create this accessor using configurable format andTimeZone.- Parameters:
configuration-
-
-
Method Details
-
getType
Description copied from interface:ObjectAccessorGets a class of supported objects.- Specified by:
getTypein interfaceObjectAccessor- Returns:
- supported type of the objects handled by this accessor
-
extractObject
public Object extractObject(ObjectToJsonConverter pConverter, Object pDate, Deque<String> pPathParts, boolean pJsonify) throws AttributeNotFoundException Description copied from interface:ObjectAccessorExtract an object from given
pValueofthe supported type.In the simplest case without jsonification and without a property path, we extract the value itself.
pPathPartsmay be used as aDeque(a stack) of keys into the object being accessed, where the first item (Deque.pop()) is the 1st level inner object and the remainder of the stack is passed recursively when accessing composite objects. First key may be null, which means that the remaining path parts are applied to each item of the object (like elements of the array).pJsonifyflag indicates that the returned value should be converted into a JSON representation.- Specified by:
extractObjectin interfaceObjectAccessor- Parameters:
pConverter- the top-level converter that knows about otheraccessorsused for drilling into inner objects.pDate- the objects being accessedpPathParts- a path into inner object(s) to access internal structure of the object. Each accessor shouldDeque.pop()its attribute and pass the remaining stack recursively.pJsonify- whether to convert the extracted object into a JSON representation- Returns:
- the extracted object in JSON or original format
- Throws:
AttributeNotFoundException- if the inner path does not exist.
-
supportsStringConversion
public boolean supportsStringConversion()Description copied from interface:ObjectAccessorSome accessors may support dedicated conversion to String. By default, generic extraction of the value from given object should be used, but in some cases (like explicit conversion to String forMapkeys), some accessors can be used to get a String value.- Specified by:
supportsStringConversionin interfaceObjectAccessor- Returns:
-
extractString
Description copied from interface:ObjectAccessorConvert a value to String - only ifsuch conversion is supported.- Specified by:
extractStringin interfaceObjectAccessor- Returns:
-
canSetValue
public boolean canSetValue()Description copied from interface:ObjectAccessorWhether this accessor can be used to set a value inside (directly or nested) a value ofgiven class.- Specified by:
canSetValuein interfaceObjectAccessor- Returns:
trueif this extractor can be used to set inner values.
-
setObjectValue
public Object setObjectValue(Converter<String> pConverter, Object pDate, String pAttribute, Object pValue) throws IllegalAccessException, InvocationTargetException Sets the content ofDateobject. The value must be either alongin which case it is converted directly to a date, or a String which should be formatted according to configured date format.- Specified by:
setObjectValuein interfaceObjectAccessor- Parameters:
pConverter-Converterused to convert the value being set to a class of the accessed attributepDate- object on which to set the valuepAttribute- attribute of the object to set. (For arrays or lists it should be an index.)pValue- the new value to set afterconversion- Returns:
- Throws:
IllegalAccessExceptionInvocationTargetException
-