# Class BCIFReader

java.lang.Object
org.jmol.adapter.smarter.AtomSetCollectionReader
org.jmol.adapter.readers.cif.CifReader
org.jmol.adapter.readers.cif.MMCifReader
org.jmol.adapter.readers.cif.BCIFReader

All Implemented Interfaces:
  `GenericLineReader`

public class BCIFReader extends MMCifReader
A very simple Binary CIF file reader extention of MMCifReader extends CifReader.

Author:
  Bob Hanson (hansonr@stolaf.edu)

## Field Summary

Fields
Modifier and Type
Field
Description
`protected static int[]`
`temp`

### Fields inherited from class MMCifReader

`CAT_ASSEM, CAT_CHEMCOMP, CAT_COMPBOND, CAT_NCS, CAT_OPER, CAT_SEQUENCEDIF, CAT_SHEET, CAT_STRUCSITE, CAT_STRUCTCONF, CAT_STRUCTCONN, done, htHetero, htSites, isBiomolecule, vBiomolecules`

### Fields inherited from class CifReader

`ac, CAT_ATOM_SITE, CAT_ATOM_SITES, CAT_ATOM_TYPE, CAT_CELL, EMPTY, firstChar, htGroup1, iHaveDesiredModel, isCourseGrained, isLigand, isLoop, isMagCIF, isMMCIF, isSpinCIF, lastDataSetName, maxSerial, modelMap, nAtoms, nAtoms0, NONE, pdbID, skipping, symops, thisDataSetName, useAuthorChainID`

### Fields inherited from class AtomSetCollectionReader

`addedData, addedDataKey, addVibrations, allow_a_len_1, allowPDBFilter, ANGSTROMS_PER_BOHR, applySymmetryToBonds, asc, baseAtomIndex, baseBondIndex, binaryDoc, bsFilter, bsModels, calculationType, CELL_TYPE_CONVENTIONAL, CELL_TYPE_PRIMITIVE, CELL_TYPE_SUPER, cellSlop, centroidPacked, checkNearAtoms, continuing, debugging, desiredModelNumber, desiredSpaceGroupIndex, desiredVibrationNumber, doApplySymmetry, doCentralize, doCentroidUnitCell, doCheckUnitCell, doConvertToFractional, doPackUnitCell, doProcessLines, doReadMolecularOrbitals, dssr, fileName, fileOffset, filePath, fileScaling, fillRange, filter, filterAllHetero, filterCased, filteredPrecision, filterHetero, floatifyJavaDouble, forcePacked, getHeader, haveAtomFilter, haveModel, havePartialChargeFilter, htParams, ignoreFileSpaceGroupName, ignoreFileSymmetryOperators, ignoreFileUnitCell, ignoreStructure, iHaveFractionalCoordinates, iHaveSymmetryOperators, iHaveUnitCell, is2D, isBinary, isConcatenated, isDSSP1, isFinalized, isMolecular, isPrimitive, isSequential, isSUPERCELL, isTrajectory, latticeCells, latticeScaling, latticeType, line, lowPrecision, lstNCS, matUnitCellOrientation, merging, modDim, modelNumber, ms, mustFinalizeModelSet, next, noHydrogens, noMinimize, noPack, optimize2D, out, paramsCentroid, paramsLattice, precision, prevline, primitiveToCrystal, ptLine, ptSupercell, reader, readerName, requiresBSFilter, reverseModels, rotateHexCell, sgName, slabXY, stateScriptVersionInt, strSupercell, symmetry, templateAtomCount, thisBiomolecule, trajectorySteps, ucItems, unitCellOffset, unitCellParams, useAltNames, useFileModelNumbers, validation, vibrationNumber, vibsFractional, vwr`

## Constructor Summary

Constructors
Constructor
Description
`BCIFReader()`

## Method Summary

Modifier and Type
Method
Description
`protected void`
`finalizeSubclassReader()`
`protected GenericCifDataParser`
`getCifDataParser()`
`protected float`
`getFloatColumnData(int i)`
Called by processAtomSites to retrieve individual matrix elements and set them by name.
`protected boolean`
`isFieldValid()`
`protected float`
`parseCartesianField()`
`protected float`
`parseFloatField()`
`protected int`
`parseIntField()`
`protected int`
`parseIntFieldTok(byte tok)`
Get a specific column's item for this category on this row.
`protected void`
`parseLoopParameters(String[] fields)`
This is the callback the that the MMCifReader and CifReader process.....() methods call initially.
`protected void`
`processBinaryDocument()`
The primare method initiating this reader
`protected void`
`setup(String fullPath, Map<String,Object> htParams, Object reader)`
binary must set up initially

### Methods inherited from class MMCifReader

`addAssembly, addHetero, addMatrix, checkFilterAssembly, checkPDBModelField, checkSubclassSymmetry, finalizeSubclass, incrementModel, initSubclass, processAssemblyGenBlock, processChemCompLoopBlock, processCompBondLoopBlock, processSequence, processStructConfLoopBlock, processStructConnLoopBlock, processStructOperListBlock, processStructSheetRangeLoopBlock, processStructSiteBlock, processSubclassAtom, processSubclassEntry, processSubclassLoopBlock, sortAssemblyModels`

### Methods inherited from class CifReader

`addCifAtom, addHeader, applySymmetryAndSetTrajectory, checkAllFieldsPresent, doPreSymmetry, fieldProperty, filterCIFAtom, finalizeSubclassSymmetry, fullTrim, getBondOrder, getFieldString, initializeReader, isLoopKey, isNull, newModel, nextAtomSet, processAtomTypeLoopBlock, processCellParameter, processCitationListBlock, processLoopBlock, processUnitCellTransformMatrix, setSymmetryOperator, skipLoop, skipLoopKeyword`

### Methods inherited from class AtomSetCollectionReader

`addAtomXYZSymName, addExplicitLatticeVector, addJmolScript, addMoreUnitCellInfo, addSites, addSiteScript, appendLoadNote, applySymTrajASCR, checkAndRemoveFilterKey, checkCurrentLineForScript, checkFilterKey, checkLastModel, checkLine, checkLineForScript, clearUnitCell, cloneLastAtomSet, discardLinesUntilBlank, discardLinesUntilContains, discardLinesUntilContains2, discardLinesUntilNonBlank, discardLinesUntilStartsWith, discardPreviousAtoms, doGetModel, doGetVibration, fill3x3, fillDataBlock, fillDataBlockFixed, fillFloatArray, fillFrequencyData, filterAtom, filterReject, finalizeMOData, finalizeModelSet, finalizeReaderASCR, fixDoubleA, fixFloatA, fixFloatPt, forceSymmetry, fractionalizeCoordinates, getElementSymbol, getFilter, getFilterWithCase, getFortranFormatLengths, getInterface, getPackingRangeValue, getStrings, getSymmetry, getTokens, getTokensFloat, initializeSymmetry, initializeSymmetryOptions, initializeTrajectoryFile, isLastModel, newAtomSet, parseFloat, parseFloatRange, parseFloatStr, parseInt, parseIntAt, parseIntRange, parseIntStr, parsePrecision, parseToken, parseTokenNext, parseTokenRange, parseTokenStr, processDOM, rd, read3Vectors, readDataObject, readLines, readNextLine, rejectAtomName, RL, set2D, setAtomCoord, setAtomCoordScaled, setAtomCoordTokens, setAtomCoordXYZ, setChainID, setElementAndIsotope, setFilter, setFilterAtomTypeStr, setFractionalCoordinates, setIsPDB, setLoadNote, setModelPDB, setPrecision, setSpaceGroupName, setTransform, setUnitCell, setUnitCellItem, setupASCR, warnSkippingOperation`

### Methods inherited from class Object

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

## Field Details

### temp

protected static int[] temp

## Constructor Details

### BCIFReader

public BCIFReader()

## Method Details

### getCifDataParser

protected GenericCifDataParser getCifDataParser()

Overrides:
  `getCifDataParser` in class `CifReader`

### setup

protected void setup(String fullPath, Map<String,Object> htParams, Object reader)
binary must set up initially

Overrides:
  `setup` in class `AtomSetCollectionReader`
Parameters:
  `fullPath` -
  `htParams` -
  `reader` -

### processBinaryDocument

protected void processBinaryDocument() throws Exception
The primare method initiating this reader

Overrides:
  `processBinaryDocument` in class `AtomSetCollectionReader`
Throws:
  `Exception`

### finalizeSubclassReader

protected void finalizeSubclassReader() throws Exception

Overrides:
  `finalizeSubclassReader` in class `CifReader`
Throws:
  `Exception`

### parseLoopParameters

protected void parseLoopParameters(String[] fields) throws Exception
This is the callback the that the MMCifReader and CifReader process.....() methods call initially. Pass this on to our psuedo-parser.

Overrides:
  `parseLoopParameters` in class `CifReader`
Parameters:
  `fields` -
Throws:
  `Exception`

### isFieldValid

protected boolean isFieldValid()

Overrides:
  `isFieldValid` in class `CifReader`

### parseIntField

protected int parseIntField()

Overrides:
  `parseIntField` in class `CifReader`

### parseFloatField

protected float parseFloatField()

Overrides:
  `parseFloatField` in class `CifReader`

### parseCartesianField

protected float parseCartesianField()

Overrides:
  `parseCartesianField` in class `CifReader`

### parseIntFieldTok

protected int parseIntFieldTok(byte tok)
Get a specific column's item for this category on this row. In contrast to MMCifReader, we already have the integer; we don't have to parse it.

Overrides:
  `parseIntFieldTok` in class `MMCifReader`

### getFloatColumnData

protected float getFloatColumnData(int i)
Called by processAtomSites to retrieve individual matrix elements and set them by name.

Overrides:
  `getFloatColumnData` in class `CifReader`