Previous implementation matches <type-name>:1x.0 and <type-name>:1.0,
depending on the order of the arguments, e.g.
NTUtils::is_a("epics:nt/NTTable:11.0", "epics:nt/NTTable:1.0") returned
true. Fix this and add unit tests to cover this.
Replaced references to "EPICS pvData" and "EPICS JavaIOC" with "this
software" in per-file copyright notice - consistent with other files.
Add BNL and DLS to copyright and legal disclaimers.
Add convenience methods is_a(PVStructure). Add overloads of isCompatible
taking a Structure since implementation of isCompatible(PVStructure)
only uses introspection interface. Implement for NTScalar and
NTScalarArray. Add isValid() function that checks NT is valid through data
interface.
The attachAlarm and attachTimeStamps() return true if successful, false
otherwise in other classes. In NTMultiChannel and NTScalarMultiChannel
they returned void. Bring multi-channel behaviour in line.
A boolean[] isConnected field was included in all constructed
NTMultiChannels and NTScalarMultiChannels. However this is neither a
required nor optional field of these types. Applications use this
though, (specifically pvaClient) so treat as if optional field. Add
addIsConnected() function to builders and retain isConnected() in
wrapper classes. Leave isConnected field in structures until clients
updated.
Function for adding columns to table (i.e. to value subfield) was
add(ScalarType). However add(Field) adds extra field to top-level
structure. Rename former to avoid confusion and as more meaningful
name. Update unit tests.
The labels are strings used in the displaying of the columns of a table
e.g. column titles or headers. The column names of an NTTable are the
names of the fields containing the column data. There was some confusion
in the implementation between these. Rename the labels variable
columnNames and correct the comments. Tables were created with labels
equal to the column names. Retain this behaviour for backwards
compatibility, as a sensible default and to always create a valid table,
but document this.