Class BaseTimestamp
- java.lang.Object
-
- com.automation_pros.odva.cip.data.BaseDataType<java.sql.Timestamp>
-
- com.automation_pros.odva.cip.data.BaseTimestamp
-
public abstract class BaseTimestamp extends BaseDataType<java.sql.Timestamp>
-
-
Field Summary
Fields Modifier and Type Field Description static java.math.BigInteger
billion
static java.math.BigInteger
max64
static java.math.BigInteger
million
static java.math.BigInteger
thousand
-
Fields inherited from class com.automation_pros.odva.cip.data.BaseDataType
dimensions, memberOffsets, sLogger, variantContext, varyingDimension
-
-
Constructor Summary
Constructors Modifier Constructor Description BaseTimestamp()
BaseTimestamp(int[] dimensions)
protected
BaseTimestamp(BaseTimestamp data, int[] indices)
BaseTimestamp(java.sql.Timestamp val)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description int
bytesEach()
Obtain the bytes-per-element of this object's payload encoding.protected int
bytesImpl(int[] indices)
Retrieve the bytes payload size of a single array element (or sole element).static java.sql.Timestamp
coerceDate(java.util.Date d)
protected void
copyToImpl(BaseDataType<?> dest, int[] indices)
Support deep copy operations one element at a time.protected void
copyToImpl(BaseDataType<?> dest, int[] toIndices, int[] fromIndices)
Support slice copy operations one element at a time.static java.sql.Timestamp
fromInstant(java.time.Instant t)
static java.sql.Timestamp
fromMicros(java.math.BigInteger zulu)
static java.sql.Timestamp
fromNanos(java.math.BigInteger zulu)
java.sql.Timestamp
get(int[] indices)
Application-side value retrieval.protected void
putPayloadImpl(java.nio.ByteBuffer dest, int[] indices)
All concrete implementations must supply their per-element encoder here.void
set(int[] indices, java.sql.Timestamp val)
Application-side value storage.void
setDimensions(int[] newDimensions)
Update the lengths of the array dimensions to the given values.protected void
setFromTokenImpl(java.lang.String token, int[] indices)
Override this if single elements can be set from single tokens.protected void
setPayloadImpl(java.nio.ByteBuffer source, int[] indices)
All concrete implementations must supply their per-element decoder here.protected java.lang.String
singleToString(int[] indices)
java.lang.String
structCRCString()
Logix processors don't follow CIP Volume 1 Table C-6.9 in their tag read/write routines for structures.static java.time.Instant
toInstant(java.util.Date date)
static java.math.BigInteger
toMicros(java.util.Date date)
static java.math.BigInteger
toNanos(java.util.Date date)
-
Methods inherited from class com.automation_pros.odva.cip.data.BaseDataType
alignment, browseInner, browseInnerImpl, bytes, checkDimensions, chkAbbrevType, concatIndices, conditionalSuffix, copy, copyTo, CRC16, CRC16, CRC16, crcName, dim2linear, dim2linear, dim2qty, dim2suffix, dimensionToString, doubleValue, extendIntArray, fillIntArray, get, getCompleteDef, getDimensions, getMemberOffsets, getNestingDef, getSymbolType, getTypeCode, getVariantContext, getVaryingDimension, hasOffset, incIdx, intArray, intValue, linear2dim, linear2dim, longValue, makeInstance, maxEach, minEach, nestedBytes, nestedBytesEach, nestedBytesImpl, nestedPutPayload, nestedPutPayloadImpl, nestedSetPayload, nestedSetPayloadImpl, putAbbrevType, putPayload, range2suffix, rawCRC16, set, setFromTokenizer, setFromTokenizerImpl, setFromTokenString, setInt, setLong, setMemberOffsets, setPayload, setupTokenizer, setVariantContext, setVariantDimension, setVariantDimension, sliceTo, toString, wrap
-
-
-
-
Constructor Detail
-
BaseTimestamp
public BaseTimestamp()
-
BaseTimestamp
public BaseTimestamp(java.sql.Timestamp val)
-
BaseTimestamp
public BaseTimestamp(int[] dimensions)
-
BaseTimestamp
protected BaseTimestamp(BaseTimestamp data, int[] indices)
-
-
Method Detail
-
coerceDate
public static java.sql.Timestamp coerceDate(java.util.Date d)
-
fromNanos
public static java.sql.Timestamp fromNanos(java.math.BigInteger zulu)
-
fromInstant
public static java.sql.Timestamp fromInstant(java.time.Instant t)
-
fromMicros
public static java.sql.Timestamp fromMicros(java.math.BigInteger zulu)
-
toNanos
public static java.math.BigInteger toNanos(java.util.Date date)
-
toInstant
public static java.time.Instant toInstant(java.util.Date date)
-
toMicros
public static java.math.BigInteger toMicros(java.util.Date date)
-
setDimensions
public void setDimensions(int[] newDimensions)
Description copied from class:BaseDataType
Update the lengths of the array dimensions to the given values. The number of subscripts must match the current number of subscripts. The operation must be data-preserving.This implementation handles pure Object storage types. Anything else must override.
- Overrides:
setDimensions
in classBaseDataType<java.sql.Timestamp>
-
structCRCString
public java.lang.String structCRCString()
Description copied from class:BaseDataType
Logix processors don't follow CIP Volume 1 Table C-6.9 in their tag read/write routines for structures. Instead, they run the CRC over comma-separated ASCII type strings that make up the structure. This is referred to in the Logix Data Access Programming Manual as the "Structure Handle".- Overrides:
structCRCString
in classBaseDataType<java.sql.Timestamp>
- Returns:
-
get
public java.sql.Timestamp get(int[] indices)
Description copied from class:BaseDataType
Application-side value retrieval. Subclasses must implement this function to retrieve elements of the storage array in the application data type.- Specified by:
get
in classBaseDataType<java.sql.Timestamp>
- Parameters:
indices
- Array subscripts. Missing subscripts not allowed.- Returns:
-
set
public void set(int[] indices, java.sql.Timestamp val)
Description copied from class:BaseDataType
Application-side value storage. Subclasses must implement this function to store one value or complex element into the storage array.- Specified by:
set
in classBaseDataType<java.sql.Timestamp>
- Parameters:
indices
- Array subscripts. Missing subscripts not allowed.
-
bytesEach
public int bytesEach()
Description copied from class:BaseDataType
Obtain the bytes-per-element of this object's payload encoding. Objects with variable length encodings must return zero and implement the bytesImpl(), minEach(), maxEach(), and alignment() methods instead.- Specified by:
bytesEach
in classBaseDataType<java.sql.Timestamp>
- Returns:
- encoded bytes per element
-
setPayloadImpl
protected void setPayloadImpl(java.nio.ByteBuffer source, int[] indices)
Description copied from class:BaseDataType
All concrete implementations must supply their per-element decoder here.- Specified by:
setPayloadImpl
in classBaseDataType<java.sql.Timestamp>
-
setFromTokenImpl
protected void setFromTokenImpl(java.lang.String token, int[] indices)
Description copied from class:BaseDataType
Override this if single elements can be set from single tokens. The default decodes as Long and uses setLong().- Overrides:
setFromTokenImpl
in classBaseDataType<java.sql.Timestamp>
- Parameters:
token
- The single token obtained from the tokenizer for this one element.indices
- The complete set of subscripts
-
putPayloadImpl
protected void putPayloadImpl(java.nio.ByteBuffer dest, int[] indices)
Description copied from class:BaseDataType
All concrete implementations must supply their per-element encoder here.- Specified by:
putPayloadImpl
in classBaseDataType<java.sql.Timestamp>
-
bytesImpl
protected int bytesImpl(int[] indices)
Description copied from class:BaseDataType
Retrieve the bytes payload size of a single array element (or sole element). Objects with fixed element sizes may simply return bytesEach() here.- Specified by:
bytesImpl
in classBaseDataType<java.sql.Timestamp>
- Returns:
-
copyToImpl
protected void copyToImpl(BaseDataType<?> dest, int[] indices)
Description copied from class:BaseDataType
Support deep copy operations one element at a time.- Specified by:
copyToImpl
in classBaseDataType<java.sql.Timestamp>
-
copyToImpl
protected void copyToImpl(BaseDataType<?> dest, int[] toIndices, int[] fromIndices)
Description copied from class:BaseDataType
Support slice copy operations one element at a time.- Specified by:
copyToImpl
in classBaseDataType<java.sql.Timestamp>
-
singleToString
protected java.lang.String singleToString(int[] indices)
- Overrides:
singleToString
in classBaseDataType<java.sql.Timestamp>
-
-