# Class Cif2DataParser

java.lang.Object
javajs.util.CifDataParser
org.jmol.adapter.readers.cif.Cif2DataParser

All Implemented Interfaces:
  `GenericCifDataParser`

public class Cif2DataParser extends CifDataParser
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 CifDataParser

`asObject, cch, columnCount, columnNames, cterm, debugging, haveData, htFields, ich, KEY_MAX, line, nullString, str, wasUnquoted`

### Fields inherited from interface GenericCifDataParser

`EMPTY, NONE`

## Constructor Summary

Constructors
Constructor
Description
`Cif2DataParser()`

## Method Summary

Modifier and Type
Method
Description
`static 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 object
`protected int`
`getVersion()`
`protected boolean`
`isQuote(char ch)`
Includes all possible operator tokens
`protected String`
`preprocessString()`
initial processing; returns a string bounded by \1
`protected String`
`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.
`Object`
`readTable()`
Read a CIF 2.0 table into either a JSON string or a java data structure
`String`
`toUnicode(String data)`
There is no need to convert to unicode in CIF 2.0.
`protected Object`
`unquoted(String s)`
Handle unquoted value as Integer or Float if we can.

### Methods inherited from class CifDataParser

`fixKey, getAllCifData, getAllCifDataType, getColumnCount, getColumnData, getColumnName, getData, getFileHeader, getNextDataToken, getNextToken, getNextTokenObject, getNextTokenProtected, getTokenPeeked, isTerminator, parseDataBlockParameters, peekToken, prepareNextLine, preprocessSemiString, readLine, readList, set, setNullValue, setString, skipLoop, skipNextToken`

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### Cif2DataParser

public Cif2DataParser()

## Method Details

### getVersion

protected int getVersion()

Overrides:
  `getVersion` in class `CifDataParser`

### toUnicode

public String toUnicode(String data)
There is no need to convert to unicode in CIF 2.0.

Specified by:
  `toUnicode` in interface `GenericCifDataParser`
Overrides:
  `toUnicode` in class `CifDataParser`
Parameters:
  `data` -
Returns:
  cleaned string

### isQuote

protected boolean isQuote(char ch)
Includes all possible operator tokens

Overrides:
  `isQuote` in class `CifDataParser`
Parameters:
  `ch` -
Returns:
  true if this character is a (starting) quote

### getQuotedStringOrObject

protected Object getQuotedStringOrObject(char ch)
final get for quoted object

Overrides:
  `getQuotedStringOrObject` in class `CifDataParser`
Parameters:
  `ch` - current character being pointed to
Returns:
  a String data object

### preprocessString

protected String preprocessString() throws Exception
initial processing; returns a string bounded by \1

Overrides:
  `preprocessString` in class `CifDataParser`
Returns:
  escaped part with attached extra data
Throws:
  `Exception`

### processSemiString

protected String processSemiString() throws Exception
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

public Object readTable() throws Exception
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

protected Object unquoted(String s)
Handle unquoted value as Integer or Float if we can.

Overrides:
  `unquoted` in class `CifDataParser`
Parameters:
  `s` - unquoted string
Returns:
  unchanged value

### getArrayFromStringList

public static 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.

Parameters:
  `s` -
  `n` -
Returns:
  double[] array

### getIntArrayFromStringList

public 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.

Parameters:
  `s` -
  `n` -
Returns:
  int[] array