Class Section
- java.lang.Object
-
- com.pixelmed.scpecg.Section
-
- Direct Known Subclasses:
Section0,Section1,Section10,Section2,Section3,Section4,Section5Or6,Section7,Section8Or11
public class Section extends java.lang.ObjectA class to encapsulate an SCP-ECG section.
Though not abstract, in order to support unrecognized sections, this class is usually extended by more specific classes; there is a factory method
makeSectionthat is used to create specific sub-classes once the section number is known (i.e. has been read).
-
-
Field Summary
Fields Modifier and Type Field Description protected longbytesReadprotected SectionHeaderheaderprotected longsectionBytesRemainingprotected SCPTreeRecordtree
-
Constructor Summary
Constructors Constructor Description Section(SectionHeader header)Construct an empty section with the specified header.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected static voidaddNodeOfDecimalAndHex(SCPTreeRecord parent, java.lang.String name, int value)Add a tree node with a numeric value as decimal and hexadecimal strings.protected static voidaddNodeOfDecimalWithMissingValues(SCPTreeRecord parent, java.lang.String name, int value)Add a tree node with a numeric value as decimal string, with potentially missing values.protected voidaddSectionHeaderToTree(SCPTreeRecord parent)Get section header information to the section node in a tree for display.static java.lang.StringdescribeMissingValues(int i)Get a description of measurement values that may have missing values.SectionHeadergetSectionHeader()java.lang.StringgetSectionName()Get a string name for this section.SCPTreeRecordgetTree()Get the contents of the section as a tree for display.SCPTreeRecordgetTree(SCPTreeRecord parent)Get the contents of the section as a tree for display, constructing it if not already done.protected java.lang.StringgetValueForSectionNodeInTree()Get the value to use as the value section of the section node in a tree for display.static SectionmakeSection(SectionHeader sectionHeader, java.util.TreeMap sections)A factory method to construct specific sub-classes of section.static java.lang.StringmakeStringFromByteArrayRemovingAnyNulls(byte[] bytes)Convert an array of bytes to aStringremoving any embedded nulls.longread(BinaryInputStream i)Read the remainder of the section from a stream.protected longskipToEndOfSectionIfNotAlreadyThere(BinaryInputStream i)Skip to the end of the section, if not already there.java.lang.StringtoString()Dump the section as aString.java.lang.Stringvalidate()Validate the section against the standard.
-
-
-
Field Detail
-
header
protected SectionHeader header
-
bytesRead
protected long bytesRead
-
sectionBytesRemaining
protected long sectionBytesRemaining
-
tree
protected SCPTreeRecord tree
-
-
Constructor Detail
-
Section
public Section(SectionHeader header)
Construct an empty section with the specified header.
- Parameters:
header- the header (which has already been read)
-
-
Method Detail
-
getSectionHeader
public SectionHeader getSectionHeader()
-
read
public long read(BinaryInputStream i) throws java.io.IOException
Read the remainder of the section from a stream.
- Parameters:
i- the input stream- Returns:
- the number of bytes read
- Throws:
java.io.IOException
-
skipToEndOfSectionIfNotAlreadyThere
protected long skipToEndOfSectionIfNotAlreadyThere(BinaryInputStream i) throws java.io.IOException
Skip to the end of the section, if not already there.
Used either for unrecognized sections, or when there is an encoding error within a section and parsing of the section has to be abandoned.
- Parameters:
i- the input stream- Returns:
- the number of bytes skipped
- Throws:
java.io.IOException
-
toString
public java.lang.String toString()
Dump the section as a
String.- Overrides:
toStringin classjava.lang.Object- Returns:
- the section as a
String
-
validate
public java.lang.String validate()
Validate the section against the standard.
- Returns:
- the validation results as a
String
-
getSectionName
public java.lang.String getSectionName()
Get a string name for this section.
- Returns:
- a string name for this section
-
makeSection
public static Section makeSection(SectionHeader sectionHeader, java.util.TreeMap sections)
A factory method to construct specific sub-classes of section.
- Parameters:
sectionHeader- the section header already read from the stream, containing the section numbersections- the sections that have already been read, in case values are needed for making new sections- Returns:
- a section of the appropriate sub-class.
-
getValueForSectionNodeInTree
protected java.lang.String getValueForSectionNodeInTree()
Get the value to use as the value section of the section node in a tree for display.
- Returns:
- the value of just this node (not its contents)
-
addSectionHeaderToTree
protected void addSectionHeaderToTree(SCPTreeRecord parent)
Get section header information to the section node in a tree for display.
-
getTree
public SCPTreeRecord getTree()
Get the contents of the section as a tree for display.
- Returns:
- the section as a tree, or null if not constructed
-
getTree
public SCPTreeRecord getTree(SCPTreeRecord parent)
Get the contents of the section as a tree for display, constructing it if not already done.
- Parameters:
parent- the node to which this section is to be added if it needs to be created de novo- Returns:
- the section as a tree
-
describeMissingValues
public static java.lang.String describeMissingValues(int i)
Get a description of measurement values that may have missing values.
Described in Section 5.10.2 as being defined in the CSE Project.
- Parameters:
i- the numeric value that may be missing- Returns:
- a description of the type of missing value
-
addNodeOfDecimalAndHex
protected static void addNodeOfDecimalAndHex(SCPTreeRecord parent, java.lang.String name, int value)
Add a tree node with a numeric value as decimal and hexadecimal strings.
- Parameters:
parent- the node to which to add this new node as a childname- the name of the new nodevalue- the numeric value of the new node
-
addNodeOfDecimalWithMissingValues
protected static void addNodeOfDecimalWithMissingValues(SCPTreeRecord parent, java.lang.String name, int value)
Add a tree node with a numeric value as decimal string, with potentially missing values.
- Parameters:
parent- the node to which to add this new node as a childname- the name of the new nodevalue- the numeric value of the new node
-
makeStringFromByteArrayRemovingAnyNulls
public static java.lang.String makeStringFromByteArrayRemovingAnyNulls(byte[] bytes)
Convert an array of bytes to a
Stringremoving any embedded nulls.Nulls may be embedded, and are simply ignored; they do not terminate the string.
The default character encoding is used; ISO 2022 escapes are not yet supported.
- Parameters:
bytes- the array of bytes, possibly with embedded nulls- Returns:
- the
Stringvalue
-
-