Package org.jmol.adapter.readers.cif
Class Cif2DataParser
java.lang.Object
javajs.util.CifDataParser
org.jmol.adapter.readers.cif.Cif2DataParser
- All Implemented Interfaces:
GenericCifDataParser
Fully implemented 2016.12.1
see http://journals.iucr.org/j/issues/2016/01/00/aj5269/index.html
Will deliver JSON versions of the data while file reading and Java List/Map structures when
called by
x = getProperty("cifInfo", filename)
Validated using the test-data suite by John Bollinger (John.Bollinger@stjude.org)
found at https://github.com/COMCIFS/cif_api
- Author:
- Bob Hanson hansonr@stolaf.edu
-
Field Summary
Fields inherited from class javajs.util.CifDataParser
asObject, cch, columnCount, columnNames, cterm, debugging, haveData, htFields, ich, KEY_MAX, line, nullString, str, wasUnquoted
Fields inherited from interface javajs.api.GenericCifDataParser
EMPTY, NONE
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic double[]
getArrayFromStringList
(String s, int n) turn "[1,2,3]" into [1.0,2.0,3.0] array will be truncated to n elements, or filled with zeros to pad to n, as necessary.static int[]
getIntArrayFromStringList
(String s, int n) turn "[1,2,3]" into [1,2,3] array will be truncated to n elements, or filled with zeros to pad to n, as necessary.protected Object
getQuotedStringOrObject
(char ch) final get for quoted objectprotected int
protected boolean
isQuote
(char ch) Includes all possible operator tokensprotected String
initial processing; returns a string bounded by \1protected String
Sets a multiline semicolon-eclipsed string to be parsed from the beginning, allowing for CIF 2.0-type prefixed text lines and removing line folding.Read a CIF 2.0 table into either a JSON string or a java data structureThere is no need to convert to unicode in CIF 2.0.protected Object
Handle unquoted value as Integer or Float if we can.Methods inherited from class javajs.util.CifDataParser
fixKey, fullTrim, getAllCifData, getAllCifDataType, getColumnCount, getColumnData, getColumnName, getData, getFileHeader, getNextDataToken, getNextToken, getNextTokenObject, getNextTokenProtected, getTokenPeeked, isTerminator, parseDataBlockParameters, peekToken, prepareNextLine, preprocessSemiString, readLine, readList, set, setNullValue, setString, skipLoop, skipNextToken
-
Constructor Details
-
Cif2DataParser
public Cif2DataParser()
-
-
Method Details
-
getVersion
protected int getVersion()- Overrides:
getVersion
in classCifDataParser
-
toUnicode
There is no need to convert to unicode in CIF 2.0.- Specified by:
toUnicode
in interfaceGenericCifDataParser
- Overrides:
toUnicode
in classCifDataParser
- Returns:
- cleaned string
-
isQuote
protected boolean isQuote(char ch) Includes all possible operator tokens- Overrides:
isQuote
in classCifDataParser
- Returns:
- true if this character is a (starting) quote
-
getQuotedStringOrObject
final get for quoted object- Overrides:
getQuotedStringOrObject
in classCifDataParser
- Parameters:
ch
- current character being pointed to- Returns:
- a String data object
-
preprocessString
initial processing; returns a string bounded by \1- Overrides:
preprocessString
in classCifDataParser
- Returns:
- escaped part with attached extra data
- Throws:
Exception
-
processSemiString
Sets a multiline semicolon-eclipsed string to be parsed from the beginning, allowing for CIF 2.0-type prefixed text lines and removing line folding. ;xxxx\comments here xxxx xxxx xxxx ;- Returns:
- \1...quote....\1
- Throws:
Exception
-
readTable
Read a CIF 2.0 table into either a JSON string or a java data structure- Returns:
- an Object or String, depending upon settings
- Throws:
Exception
-
unquoted
Handle unquoted value as Integer or Float if we can.- Overrides:
unquoted
in classCifDataParser
- Parameters:
s
- unquoted string- Returns:
- unchanged value
-
getArrayFromStringList
turn "[1,2,3]" into [1.0,2.0,3.0] array will be truncated to n elements, or filled with zeros to pad to n, as necessary.- Parameters:
s
-n
-- Returns:
- double[] array
-
getIntArrayFromStringList
turn "[1,2,3]" into [1,2,3] array will be truncated to n elements, or filled with zeros to pad to n, as necessary.- Parameters:
s
-n
-- Returns:
- int[] array
-