Class AbstractValueAssembler<E extends org.n52.series.db.beans.DataEntity<T>,V extends org.n52.io.response.dataset.AbstractValue<?>,T>
- java.lang.Object
-
- org.n52.sensorweb.server.db.assembler.value.AbstractValueAssembler<E,V,T>
-
- All Implemented Interfaces:
TimeOutputCreator,ValueAssembler<E,V,T>
- Direct Known Subclasses:
AbstractNumericalValueAssembler,BooleanValueAssembler,CategoryValueAssembler,ProfileValueAssembler,RecordValueAssembler,TextValueAssembler,TrajectoryValueAssembler
public abstract class AbstractValueAssembler<E extends org.n52.series.db.beans.DataEntity<T>,V extends org.n52.io.response.dataset.AbstractValue<?>,T> extends Object implements ValueAssembler<E,V,T>, TimeOutputCreator
-
-
Field Summary
Fields Modifier and Type Field Description protected ServiceEntityFactoryserviceEntityFactoryPreconfigured service entity.-
Fields inherited from interface org.n52.sensorweb.server.db.TimeOutputCreator
OFFSET_REGEX
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractValueAssembler(DataRepository<E> dataRepository, DatasetRepository datasetRepository)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidaddGeometry(org.n52.series.db.beans.DataEntity<?> dataEntity, org.n52.io.response.dataset.AbstractValue<?> value, DbQuery query)protected VaddMetadatasIfNeeded(E observation, V value, org.n52.series.db.beans.DatasetEntity dataset, DbQuery query)protected voidaddParameters(org.n52.series.db.beans.DataEntity<?> observation, org.n52.io.response.dataset.AbstractValue<?> value, DbQuery query)protected voidaddResultTime(org.n52.series.db.beans.DataEntity<?> observation, org.n52.io.response.dataset.AbstractValue<?> value, org.n52.series.db.beans.DatasetEntity dataset, DbQuery query)protected voidaddValidTime(org.n52.series.db.beans.DataEntity<?> observation, org.n52.io.response.dataset.AbstractValue<?> value, org.n52.series.db.beans.DatasetEntity dataset, DbQuery query)protected org.n52.io.response.dataset.Data<V>assembleDataValues(org.n52.series.db.beans.DatasetEntity dataset, DbQuery query)Assembles data values.VassembleDataValueWithMetadata(E data, org.n52.series.db.beans.DatasetEntity dataset, DbQuery query)Assembles an output for a data entity containing all metadata (geometry, parameters, valid time, etc.) for a given query.protected org.n52.io.response.dataset.Data<V>assembleExpandedDataValues(org.n52.series.db.beans.DatasetEntity dataset, DbQuery query)Assembles an expanded view of data values.protected Stream<E>findAll(org.n52.series.db.beans.DatasetEntity dataset, DbQuery query)protected BigDecimalformat(BigDecimal value, Integer scale)protected BigDecimalformat(BigDecimal value, org.n52.series.db.beans.DatasetEntity dataset)EgetClosestValueAfterEnd(org.n52.series.db.beans.DatasetEntity dataset, DbQuery query)Finds the closest value after a given timespan.EgetClosestValueBeforeStart(org.n52.series.db.beans.DatasetEntity dataset, DbQuery query)Finds the closest value before a given timespan.Map<String,ValueConnector>getConnectors()LonggetCount(org.n52.series.db.beans.DatasetEntity dataset, DbQuery query)org.n52.io.response.dataset.Data<V>getData(String datasetId, DbQuery dbQuery)Assembles observation values asDataoutput.protected javax.persistence.EntityManagergetEntityManager()VgetFirstValue(org.n52.series.db.beans.DatasetEntity entity, DbQuery query)protected org.locationtech.jts.geom.GeometrygetGeometry(org.n52.series.db.beans.GeometryEntity geometryEntity, DbQuery query)VgetLastValue(org.n52.series.db.beans.DatasetEntity entity, DbQuery query)protected booleanhasSingleValidReferenceValue(List<?> observations)protected booleanhasValidEntriesWithinRequestedTimespan(List<?> observations)protected booleanisNoDataValue(org.n52.series.db.beans.DataEntity<?> data, org.n52.series.db.beans.DatasetEntity dataset)protected <O extends org.n52.io.response.dataset.AbstractValue<?>>
OprepareValue(O value, org.n52.series.db.beans.DataEntity<?> observation, org.n52.series.db.beans.DatasetEntity dataset, DbQuery query)Prepares data value by setting time/time interval depending on actual query.voidsetConnectors(Optional<List<ValueConnector>> connectors)protected Eunproxy(org.n52.series.db.beans.DataEntity<?> dataEntity)-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.n52.sensorweb.server.db.TimeOutputCreator
createTimeOutput, createTimeOutput, getOriginTimeZone
-
Methods inherited from interface org.n52.sensorweb.server.db.ValueAssembler
assembleDataValue, getConnector, getReferenceValues, hasConnector
-
-
-
-
Field Detail
-
serviceEntityFactory
@Inject protected ServiceEntityFactory serviceEntityFactory
Preconfigured service entity. Alternative to accessing service entities from a database (in case there data model and mappings supports it).
-
-
Constructor Detail
-
AbstractValueAssembler
protected AbstractValueAssembler(DataRepository<E> dataRepository, DatasetRepository datasetRepository)
-
-
Method Detail
-
setConnectors
@Inject public void setConnectors(Optional<List<ValueConnector>> connectors)
-
isNoDataValue
protected boolean isNoDataValue(org.n52.series.db.beans.DataEntity<?> data, org.n52.series.db.beans.DatasetEntity dataset)
-
getData
public org.n52.io.response.dataset.Data<V> getData(String datasetId, DbQuery dbQuery)
Description copied from interface:ValueAssemblerAssembles observation values asDataoutput.
-
getFirstValue
public V getFirstValue(org.n52.series.db.beans.DatasetEntity entity, DbQuery query)
- Specified by:
getFirstValuein interfaceValueAssembler<E extends org.n52.series.db.beans.DataEntity<T>,V extends org.n52.io.response.dataset.AbstractValue<?>,T>- Parameters:
entity- the dataset entityquery- the query- Returns:
- the first value for the given dataset
-
getLastValue
public V getLastValue(org.n52.series.db.beans.DatasetEntity entity, DbQuery query)
- Specified by:
getLastValuein interfaceValueAssembler<E extends org.n52.series.db.beans.DataEntity<T>,V extends org.n52.io.response.dataset.AbstractValue<?>,T>- Parameters:
entity- the dataset entityquery- the query- Returns:
- the last value for the given dataset
-
assembleExpandedDataValues
protected org.n52.io.response.dataset.Data<V> assembleExpandedDataValues(org.n52.series.db.beans.DatasetEntity dataset, DbQuery query)
Assembles an expanded view of data values. An expanded view may include for example- Reference values
- First values beyond requested timespan interval
- Further output for each data value
assembleDataValues(DatasetEntity, DbQuery). Implementations may override this method to include all metadata necessary for an expanded output.- Parameters:
dataset- the datasetquery- the query- Returns:
- an expanded view of assembled data
-
assembleDataValues
protected org.n52.io.response.dataset.Data<V> assembleDataValues(org.n52.series.db.beans.DatasetEntity dataset, DbQuery query)
Assembles data values.- Parameters:
dataset- the datasetquery- the query- Returns:
- the assembled data
-
assembleDataValueWithMetadata
public V assembleDataValueWithMetadata(E data, org.n52.series.db.beans.DatasetEntity dataset, DbQuery query)
Description copied from interface:ValueAssemblerAssembles an output for a data entity containing all metadata (geometry, parameters, valid time, etc.) for a given query.- Specified by:
assembleDataValueWithMetadatain interfaceValueAssembler<E extends org.n52.series.db.beans.DataEntity<T>,V extends org.n52.io.response.dataset.AbstractValue<?>,T>- Parameters:
data- the single data entity to assembledataset- the dataset the data entity belongs toquery- the query- Returns:
- the assembled output
-
prepareValue
protected <O extends org.n52.io.response.dataset.AbstractValue<?>> O prepareValue(O value, org.n52.series.db.beans.DataEntity<?> observation, org.n52.series.db.beans.DatasetEntity dataset, DbQuery query)Prepares data value by setting time/time interval depending on actual query.- Type Parameters:
O- the type of the assembled output value- Parameters:
value- the actual (empty) valueobservation- the observation entitydataset- the dataset entityquery- the query- Returns:
- the value with time
-
addMetadatasIfNeeded
protected V addMetadatasIfNeeded(E observation, V value, org.n52.series.db.beans.DatasetEntity dataset, DbQuery query)
-
addGeometry
protected void addGeometry(org.n52.series.db.beans.DataEntity<?> dataEntity, org.n52.io.response.dataset.AbstractValue<?> value, DbQuery query)
-
getGeometry
protected org.locationtech.jts.geom.Geometry getGeometry(org.n52.series.db.beans.GeometryEntity geometryEntity, DbQuery query)
-
addValidTime
protected void addValidTime(org.n52.series.db.beans.DataEntity<?> observation, org.n52.io.response.dataset.AbstractValue<?> value, org.n52.series.db.beans.DatasetEntity dataset, DbQuery query)
-
addResultTime
protected void addResultTime(org.n52.series.db.beans.DataEntity<?> observation, org.n52.io.response.dataset.AbstractValue<?> value, org.n52.series.db.beans.DatasetEntity dataset, DbQuery query)
-
addParameters
protected void addParameters(org.n52.series.db.beans.DataEntity<?> observation, org.n52.io.response.dataset.AbstractValue<?> value, DbQuery query)
-
getClosestValueBeforeStart
public E getClosestValueBeforeStart(org.n52.series.db.beans.DatasetEntity dataset, DbQuery query)
Description copied from interface:ValueAssemblerFinds the closest value before a given timespan.- Specified by:
getClosestValueBeforeStartin interfaceValueAssembler<E extends org.n52.series.db.beans.DataEntity<T>,V extends org.n52.io.response.dataset.AbstractValue<?>,T>- Parameters:
dataset- the datasetquery- the query containing the timespan- Returns:
- the closest value before a given timespan
-
getClosestValueAfterEnd
public E getClosestValueAfterEnd(org.n52.series.db.beans.DatasetEntity dataset, DbQuery query)
Description copied from interface:ValueAssemblerFinds the closest value after a given timespan.- Specified by:
getClosestValueAfterEndin interfaceValueAssembler<E extends org.n52.series.db.beans.DataEntity<T>,V extends org.n52.io.response.dataset.AbstractValue<?>,T>- Parameters:
dataset- the datasetquery- the query containing the timespan- Returns:
- the closest value after a given timespan
-
unproxy
protected E unproxy(org.n52.series.db.beans.DataEntity<?> dataEntity)
-
getEntityManager
protected javax.persistence.EntityManager getEntityManager()
-
hasValidEntriesWithinRequestedTimespan
protected boolean hasValidEntriesWithinRequestedTimespan(List<?> observations)
-
hasSingleValidReferenceValue
protected boolean hasSingleValidReferenceValue(List<?> observations)
-
format
protected BigDecimal format(BigDecimal value, org.n52.series.db.beans.DatasetEntity dataset)
-
format
protected BigDecimal format(BigDecimal value, Integer scale)
-
getConnectors
public Map<String,ValueConnector> getConnectors()
- Specified by:
getConnectorsin interfaceValueAssembler<E extends org.n52.series.db.beans.DataEntity<T>,V extends org.n52.io.response.dataset.AbstractValue<?>,T>
-
-