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
  • 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