Class BasicHistoricalRecord
- java.lang.Object
-
- com.inductiveautomation.ignition.gateway.history.BasicHistoricalRecord
-
- All Implemented Interfaces:
CacheOptimizedData
,CacheOptimizedSchema
,DatasourceData
,GroupableData
,HistoricalData
,java.io.Serializable
public class BasicHistoricalRecord extends java.lang.Object implements DatasourceData, CacheOptimizedData, CacheOptimizedSchema, GroupableData
The basic historical record represents a specific query with columns of data. It supports many advanced features of the store and forward system- data grouping, "cache optimized" storage, etc.This record acts both as the courier and schema of the data- it implements CacheOptimizedSchema, which means it can be serialized and will only have the column information. It can then reconstitute the original record when provided with the raw data, that was serialized separately.
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
BasicHistoricalRecord.HistoricalRecordFlavor
protected static class
BasicHistoricalRecord.HistoricalRecordXmlReader
-
Field Summary
Fields Modifier and Type Field Description static BasicHistoricalRecord.HistoricalRecordFlavor
FLAVOR
-
Constructor Summary
Constructors Constructor Description BasicHistoricalRecord()
BasicHistoricalRecord(java.lang.String tableName, java.lang.String loggerName)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addColumn(HistoricalColumn column)
Adds a pre-defined column to the row.void
addColumn(java.lang.String name)
Creates a value column with the given name.void
addColumn(java.lang.String name, QualifiedValue value)
Adds a column with data to the row.void
addRow(java.util.List<java.lang.Object> rowData)
HistoricalData
createData(java.lang.Object valueData)
java.util.List<HistoricalColumn>
getColumns()
int
getDataCount()
This returns the number of rows of this historical record.HistoryFlavor
getFlavor()
The very broad "flavor" designator, used to get the data to the correct sink.java.lang.String
getGroupId()
Grouping optimization codejava.lang.String
getLoggerName()
Returns the name of the logger that should be notified when something happens to this data.protected java.lang.String
getQuery(DBTranslator translator)
CacheOptimizedSchema
getSchema()
The basic record just returns itself as the schema.java.lang.String
getSignature()
The signature is a static string that describes this data as uniquely as possible.java.lang.String
getTablename()
java.lang.Object
getValueData()
GroupableData
groupData(GroupableData other)
Merge another piece of similar data into this one.boolean
quoteColumnNames()
void
setLoggerName(java.lang.String loggerName)
void
setTablename(java.lang.String value)
void
storeToConnection(SRConnection conn)
Called after passing through the store and forward system, the data should store itself to the open connection.protected boolean
useBatching()
Execution code
-
-
-
Field Detail
-
FLAVOR
public static final BasicHistoricalRecord.HistoricalRecordFlavor FLAVOR
-
-
Method Detail
-
getFlavor
public HistoryFlavor getFlavor()
Description copied from interface:HistoricalData
The very broad "flavor" designator, used to get the data to the correct sink. That is, different sinks support different types of data, and this is used to match them up.- Specified by:
getFlavor
in interfaceHistoricalData
-
getColumns
public java.util.List<HistoricalColumn> getColumns()
-
addColumn
public void addColumn(HistoricalColumn column)
Adds a pre-defined column to the row. This allows the caller to provide a custom column type, or use something besides the standard ValueHistoricalColumn.
-
addColumn
public void addColumn(java.lang.String name)
Creates a value column with the given name. Values must be added later with addRow.
-
addColumn
public void addColumn(java.lang.String name, QualifiedValue value)
Adds a column with data to the row. Quickest way to build a single row HistoricalRecord.
-
quoteColumnNames
public boolean quoteColumnNames()
-
addRow
public void addRow(java.util.List<java.lang.Object> rowData)
-
getDataCount
public int getDataCount()
This returns the number of rows of this historical record.- Specified by:
getDataCount
in interfaceHistoricalData
-
getLoggerName
public java.lang.String getLoggerName()
Description copied from interface:HistoricalData
Returns the name of the logger that should be notified when something happens to this data. If null or empty, notifications won't occur (errors, however, may still be logged to the general logger).- Specified by:
getLoggerName
in interfaceHistoricalData
-
setLoggerName
public void setLoggerName(java.lang.String loggerName)
-
getTablename
public java.lang.String getTablename()
-
setTablename
public void setTablename(java.lang.String value)
-
getSchema
public CacheOptimizedSchema getSchema()
The basic record just returns itself as the schema. The actual values in the history columns are transient, so they don't get serialized.- Specified by:
getSchema
in interfaceCacheOptimizedData
-
getSignature
public java.lang.String getSignature()
Description copied from interface:HistoricalData
The signature is a static string that describes this data as uniquely as possible. This will be used to group data in the data cache (for example, when displaying quarantined data), as well as uniquely identifying cacheable schemas, etc.Basically, the golden rule is that if two pieces of data have the same signature, the came from the same place, and are going to the same place, and in theory could be grouped together (note: they won't be, that is done with the
GroupableData
interface).- Specified by:
getSignature
in interfaceHistoricalData
-
getValueData
public java.lang.Object getValueData()
- Specified by:
getValueData
in interfaceCacheOptimizedData
-
createData
public HistoricalData createData(java.lang.Object valueData) throws java.lang.Exception
- Specified by:
createData
in interfaceCacheOptimizedSchema
- Throws:
java.lang.Exception
-
getGroupId
public java.lang.String getGroupId()
Grouping optimization code- Specified by:
getGroupId
in interfaceGroupableData
-
groupData
public GroupableData groupData(GroupableData other)
Description copied from interface:GroupableData
Merge another piece of similar data into this one.- Specified by:
groupData
in interfaceGroupableData
-
useBatching
protected boolean useBatching()
Execution code
-
storeToConnection
public void storeToConnection(SRConnection conn) throws java.lang.Exception
Description copied from interface:DatasourceData
Called after passing through the store and forward system, the data should store itself to the open connection. If it cannot, it should throw an exception. After several retries, the data will be quarantined.- Specified by:
storeToConnection
in interfaceDatasourceData
- Throws:
java.lang.Exception
-
getQuery
protected java.lang.String getQuery(DBTranslator translator)
-
-