org.jmol.adapter.smarter
Class SmarterJmolAdapter

java.lang.Object
  extended by org.jmol.api.JmolAdapter
      extended by org.jmol.adapter.smarter.SmarterJmolAdapter

public class SmarterJmolAdapter
extends JmolAdapter


Nested Class Summary
(package private)  class SmarterJmolAdapter.AtomIterator
           
(package private)  class SmarterJmolAdapter.BondIterator
           
 class SmarterJmolAdapter.StructureIterator
           
 
Field Summary
static java.lang.String PATH_KEY
          AtomSetCollectionReader.readData() will close any BufferedReader
static java.lang.String PATH_SEPARATOR
           
 
Fields inherited from class org.jmol.api.JmolAdapter
ORDER_AROMATIC, ORDER_AROMATIC_DOUBLE, ORDER_AROMATIC_SINGLE, ORDER_COVALENT_DOUBLE, ORDER_COVALENT_SINGLE, ORDER_COVALENT_TRIPLE, ORDER_HBOND, ORDER_PARTIAL01, ORDER_PARTIAL12, ORDER_PARTIAL23, ORDER_PARTIAL32, ORDER_STEREO_FAR, ORDER_STEREO_NEAR, ORDER_UNSPECIFIED, SHELL_D_CARTESIAN, SHELL_D_SPHERICAL, SHELL_F_CARTESIAN, SHELL_F_SPHERICAL, SHELL_L, SHELL_P, SHELL_S, SHELL_SP, SUPPORTED_BASIS_FUNCTIONS
 
Constructor Summary
SmarterJmolAdapter()
           
 
Method Summary
 boolean coordinatesAreFractional(java.lang.Object atomSetCollection)
          Get the boolean whether coordinates are fractional.
 void finish(java.lang.Object atomSetCollection)
           
 int getAtomCount(java.lang.Object atomSetCollection)
          Get the estimated number of atoms contained in the file.
 JmolAdapter.AtomIterator getAtomIterator(java.lang.Object atomSetCollection)
          Get an AtomIterator for retrieval of all atoms in the file.
 java.util.Map<java.lang.String,java.lang.Object> getAtomSetAuxiliaryInfo(java.lang.Object atomSetCollection, int atomSetIndex)
          Get the auxiliary information for a particular atomSet.
 java.lang.Object getAtomSetCollection(java.lang.Object atomSetCollectionReader)
          Create the AtomSetCollection and return it
 java.util.Map<java.lang.String,java.lang.Object> getAtomSetCollectionAuxiliaryInfo(java.lang.Object atomSetCollection)
          Get the auxiliary information for this atomSetCollection.
 java.lang.Object getAtomSetCollectionFromDOM(java.lang.Object DOMNode, java.util.Map<java.lang.String,java.lang.Object> htParams)
          Direct DOM HTML4 page reading; Egon was interested in this at one point.
 java.lang.Object getAtomSetCollectionFromSet(java.lang.Object readerSet, java.lang.Object atomsets, java.util.Map<java.lang.String,java.lang.Object> htParams)
          needed to consolidate a set of models into one model; could start with AtomSetCollectionReader[] or with AtomSetCollection[]
 java.lang.String getAtomSetCollectionName(java.lang.Object atomSetCollection)
          Get the name of the atom set collection, if known.
 java.lang.Object getAtomSetCollectionOrBufferedReaderFromZip(java.io.InputStream is, java.lang.String fileName, java.lang.String[] zipDirectory, java.util.Map<java.lang.String,java.lang.Object> htParams, boolean asBufferedReader, boolean asBufferedInputStream)
          A rather complicated means of reading a ZIP file, which could be a single file, or it could be a manifest-organized file, or it could be a Spartan directory.
 java.lang.Object getAtomSetCollectionReader(java.lang.String name, java.lang.String type, java.io.BufferedReader bufferedReader, java.util.Map<java.lang.String,java.lang.Object> htParams)
          The primary file or string reader -- returns just the reader now
 java.lang.Object getAtomSetCollectionReaders(JmolFilesReaderInterface fileReader, java.lang.String[] names, java.lang.String[] types, java.util.Map<java.lang.String,java.lang.Object> htParams, boolean getReadersOnly)
          primary for String[] or File[] reading -- two options are implemented --- return a set of simultaneously open readers, or return one single collection using a single reader
 int getAtomSetCount(java.lang.Object atomSetCollection)
          Get number of atomSets in the file.
 java.lang.String getAtomSetName(java.lang.Object atomSetCollection, int atomSetIndex)
          Get the name of an atomSet.
 int getAtomSetNumber(java.lang.Object atomSetCollection, int atomSetIndex)
          Get the number identifying each atomSet.
 JmolAdapter.BondIterator getBondIterator(java.lang.Object atomSetCollection)
          Get a BondIterator for retrieval of all bonds in the file.
 java.lang.String[][] getBondList(java.lang.Object atomSetCollection)
           
 java.lang.String getFileTypeName(java.lang.Object atomSetCollectionOrReader)
          Just get the resolved file type; if a file, does NOT close the reader
 int getHydrogenAtomCount(java.lang.Object atomSetCollection)
          Get the hydrogen atom count -- for ligand files
 float[] getNotionalUnitcell(java.lang.Object atomSetCollection)
          Get the notional unit cell.
 float[] getPdbScaleMatrix(java.lang.Object atomSetCollection)
          Get the PDB scale matrix.
 float[] getPdbScaleTranslate(java.lang.Object atomSetCollection)
          Get the PDB scale translation vector.
 JmolAdapter.StructureIterator getStructureIterator(java.lang.Object atomSetCollection)
          Get a StructureIterator.
 java.lang.String[] specialLoad(java.lang.String name, java.lang.String type)
           
private static java.lang.Object staticGetAtomSetCollectionOrBufferedReaderFromZip(java.io.InputStream is, java.lang.String fileName, java.lang.String[] zipDirectory, java.util.Map<java.lang.String,java.lang.Object> htParams, int subFilePtr, boolean asBufferedReader, boolean asBufferedInputStream)
           
 
Methods inherited from class org.jmol.api.JmolAdapter
canonizeAlphaDigit, canonizeAlternateLocationID, canonizeChainID, canonizeInsertionCode, getAdapterName, getAtomSetCollectionFromReader, getBondingRadiusFloat, getElementNumber, getElementSymbol, getNaturalIsotope, getNewDfCoefMap, getQuantumShellTagID, getQuantumShellTagIDSpherical, getShellEnumeration, isHetero, lookupGroupID, openBufferedReader, openBufferedReader, openBufferedReader
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PATH_KEY

public static final java.lang.String PATH_KEY
AtomSetCollectionReader.readData() will close any BufferedReader

See Also:
Constant Field Values

PATH_SEPARATOR

public static final java.lang.String PATH_SEPARATOR
Constructor Detail

SmarterJmolAdapter

public SmarterJmolAdapter()
Method Detail

getFileTypeName

public java.lang.String getFileTypeName(java.lang.Object atomSetCollectionOrReader)
Just get the resolved file type; if a file, does NOT close the reader

Specified by:
getFileTypeName in class JmolAdapter
Parameters:
atomSetCollectionOrReader -
Returns:
a file type or null

getAtomSetCollectionReader

public java.lang.Object getAtomSetCollectionReader(java.lang.String name,
                                                   java.lang.String type,
                                                   java.io.BufferedReader bufferedReader,
                                                   java.util.Map<java.lang.String,java.lang.Object> htParams)
The primary file or string reader -- returns just the reader now

Specified by:
getAtomSetCollectionReader in class JmolAdapter
Parameters:
name -
type -
bufferedReader -
htParams -
Returns:
an AtomSetCollectionReader or an error string

getAtomSetCollection

public java.lang.Object getAtomSetCollection(java.lang.Object atomSetCollectionReader)
Create the AtomSetCollection and return it

Specified by:
getAtomSetCollection in class JmolAdapter
Parameters:
atomSetCollectionReader -
Returns:
an AtomSetCollection or an error string

getAtomSetCollectionReaders

public java.lang.Object getAtomSetCollectionReaders(JmolFilesReaderInterface fileReader,
                                                    java.lang.String[] names,
                                                    java.lang.String[] types,
                                                    java.util.Map<java.lang.String,java.lang.Object> htParams,
                                                    boolean getReadersOnly)
primary for String[] or File[] reading -- two options are implemented --- return a set of simultaneously open readers, or return one single collection using a single reader

Specified by:
getAtomSetCollectionReaders in class JmolAdapter
Parameters:
fileReader -
names -
types -
htParams -
getReadersOnly - TRUE for a set of readers; FALSE for one atomSetCollection
Returns:
a set of AtomSetCollectionReaders, a single AtomSetCollection, or an error string

getAtomSetCollectionFromSet

public java.lang.Object getAtomSetCollectionFromSet(java.lang.Object readerSet,
                                                    java.lang.Object atomsets,
                                                    java.util.Map<java.lang.String,java.lang.Object> htParams)
needed to consolidate a set of models into one model; could start with AtomSetCollectionReader[] or with AtomSetCollection[]

Specified by:
getAtomSetCollectionFromSet in class JmolAdapter
Parameters:
readerSet -
atomsets -
htParams -
Returns:
a single AtomSetCollection or an error string

getAtomSetCollectionOrBufferedReaderFromZip

public java.lang.Object getAtomSetCollectionOrBufferedReaderFromZip(java.io.InputStream is,
                                                                    java.lang.String fileName,
                                                                    java.lang.String[] zipDirectory,
                                                                    java.util.Map<java.lang.String,java.lang.Object> htParams,
                                                                    boolean asBufferedReader,
                                                                    boolean asBufferedInputStream)
A rather complicated means of reading a ZIP file, which could be a single file, or it could be a manifest-organized file, or it could be a Spartan directory.

Specified by:
getAtomSetCollectionOrBufferedReaderFromZip in class JmolAdapter
Parameters:
is -
fileName -
zipDirectory -
htParams -
asBufferedReader -
Returns:
a single atomSetCollection

staticGetAtomSetCollectionOrBufferedReaderFromZip

private static java.lang.Object staticGetAtomSetCollectionOrBufferedReaderFromZip(java.io.InputStream is,
                                                                                  java.lang.String fileName,
                                                                                  java.lang.String[] zipDirectory,
                                                                                  java.util.Map<java.lang.String,java.lang.Object> htParams,
                                                                                  int subFilePtr,
                                                                                  boolean asBufferedReader,
                                                                                  boolean asBufferedInputStream)

getAtomSetCollectionFromDOM

public java.lang.Object getAtomSetCollectionFromDOM(java.lang.Object DOMNode,
                                                    java.util.Map<java.lang.String,java.lang.Object> htParams)
Direct DOM HTML4 page reading; Egon was interested in this at one point.

Specified by:
getAtomSetCollectionFromDOM in class JmolAdapter
Parameters:
DOMNode -
htParams -
Returns:
a single AtomSetCollection or an error string

specialLoad

public java.lang.String[] specialLoad(java.lang.String name,
                                      java.lang.String type)
Overrides:
specialLoad in class JmolAdapter
Returns:
Special load array

finish

public void finish(java.lang.Object atomSetCollection)
Overrides:
finish in class JmolAdapter

getAtomSetCollectionName

public java.lang.String getAtomSetCollectionName(java.lang.Object atomSetCollection)
Description copied from class: JmolAdapter
Get the name of the atom set collection, if known.

Some file formats contain a formal name of the molecule in the file. If this method returns null then the JmolViewer will automatically supply the file/URL name as a default.

Specified by:
getAtomSetCollectionName in class JmolAdapter
Returns:
The atom set collection name or null

getAtomSetCollectionAuxiliaryInfo

public java.util.Map<java.lang.String,java.lang.Object> getAtomSetCollectionAuxiliaryInfo(java.lang.Object atomSetCollection)
Description copied from class: JmolAdapter
Get the auxiliary information for this atomSetCollection.

Via the smarterJmolAdapter

Specified by:
getAtomSetCollectionAuxiliaryInfo in class JmolAdapter
Parameters:
atomSetCollection - The client file
Returns:
The auxiliaryInfo Hashtable that may be available for particular filetypes for this atomSetCollection or null

getAtomSetCount

public int getAtomSetCount(java.lang.Object atomSetCollection)
Description copied from class: JmolAdapter
Get number of atomSets in the file.

NOTE WARNING:
Not yet implemented everywhere, it is in the smarterJmolAdapter

Specified by:
getAtomSetCount in class JmolAdapter
Parameters:
atomSetCollection - The client file
Returns:
The number of atomSets in the file

getAtomSetNumber

public int getAtomSetNumber(java.lang.Object atomSetCollection,
                            int atomSetIndex)
Description copied from class: JmolAdapter
Get the number identifying each atomSet.

For a PDB file, this is is the model number. For others it is a 1-based atomSet number.

Note that this is not currently implemented in PdbReader

Specified by:
getAtomSetNumber in class JmolAdapter
Parameters:
atomSetCollection - The client file
atomSetIndex - The atom set's index for which to get the atom set number
Returns:
The number identifying each atom set.

getAtomSetName

public java.lang.String getAtomSetName(java.lang.Object atomSetCollection,
                                       int atomSetIndex)
Description copied from class: JmolAdapter
Get the name of an atomSet.

Specified by:
getAtomSetName in class JmolAdapter
Parameters:
atomSetCollection - The client file
atomSetIndex - The atom set index
Returns:
The name of the atom set, default the string representation of atomSetIndex

getAtomSetAuxiliaryInfo

public java.util.Map<java.lang.String,java.lang.Object> getAtomSetAuxiliaryInfo(java.lang.Object atomSetCollection,
                                                                                int atomSetIndex)
Description copied from class: JmolAdapter
Get the auxiliary information for a particular atomSet.

Via the smarterJmolAdapter

Specified by:
getAtomSetAuxiliaryInfo in class JmolAdapter
Parameters:
atomSetCollection - The client file
atomSetIndex - The atom set index
Returns:
The auxiliaryInfo Hashtable that may be available for particular filetypes for this atomSet or null

getHydrogenAtomCount

public int getHydrogenAtomCount(java.lang.Object atomSetCollection)
Description copied from class: JmolAdapter
Get the hydrogen atom count -- for ligand files

Specified by:
getHydrogenAtomCount in class JmolAdapter
Returns:
number of hydrogen atoms in this model

getBondList

public java.lang.String[][] getBondList(java.lang.Object atomSetCollection)
Specified by:
getBondList in class JmolAdapter
Returns:
[ [atomName1 atomName2 order] ...]

getAtomCount

public int getAtomCount(java.lang.Object atomSetCollection)
Description copied from class: JmolAdapter
Get the estimated number of atoms contained in the file.

Just return -1 if you don't know (or don't want to figure it out)

Specified by:
getAtomCount in class JmolAdapter
Parameters:
atomSetCollection - The client file
Returns:
The estimated number of atoms in the file

coordinatesAreFractional

public boolean coordinatesAreFractional(java.lang.Object atomSetCollection)
Description copied from class: JmolAdapter
Get the boolean whether coordinates are fractional.

Specified by:
coordinatesAreFractional in class JmolAdapter
Parameters:
atomSetCollection - The client file
Returns:
true if the coordinates are fractional, default false

getNotionalUnitcell

public float[] getNotionalUnitcell(java.lang.Object atomSetCollection)
Description copied from class: JmolAdapter
Get the notional unit cell.

This method returns the parameters that define a crystal unitcell the parameters are returned in a float[] in the following order a, b, c, alpha, beta, gamma
a, b, c : angstroms
alpha, beta, gamma : degrees
if there is no unit cell data then return null

Specified by:
getNotionalUnitcell in class JmolAdapter
Parameters:
atomSetCollection - The client file
Returns:
The array of the values or null

getPdbScaleMatrix

public float[] getPdbScaleMatrix(java.lang.Object atomSetCollection)
Description copied from class: JmolAdapter
Get the PDB scale matrix.

Does not seem to be overriden by any descendent

Specified by:
getPdbScaleMatrix in class JmolAdapter
Parameters:
atomSetCollection - The client file
Returns:
The array of 9 floats for the matrix or null

getPdbScaleTranslate

public float[] getPdbScaleTranslate(java.lang.Object atomSetCollection)
Description copied from class: JmolAdapter
Get the PDB scale translation vector.

Does not seem to be overriden by any descendent

Specified by:
getPdbScaleTranslate in class JmolAdapter
Parameters:
atomSetCollection - The client file
Returns:
The x, y and z translation values or null

getAtomIterator

public JmolAdapter.AtomIterator getAtomIterator(java.lang.Object atomSetCollection)
Description copied from class: JmolAdapter
Get an AtomIterator for retrieval of all atoms in the file.

This method may not return null.

Specified by:
getAtomIterator in class JmolAdapter
Parameters:
atomSetCollection - The client file
Returns:
An AtomIterator
See Also:
JmolAdapter.AtomIterator

getBondIterator

public JmolAdapter.BondIterator getBondIterator(java.lang.Object atomSetCollection)
Description copied from class: JmolAdapter
Get a BondIterator for retrieval of all bonds in the file.

If this method returns null and no bonds are defined then the JmolViewer will automatically apply its rebonding code to build bonds between atoms.

Specified by:
getBondIterator in class JmolAdapter
Parameters:
atomSetCollection - The client file
Returns:
A BondIterator or null
See Also:
JmolAdapter.BondIterator

getStructureIterator

public JmolAdapter.StructureIterator getStructureIterator(java.lang.Object atomSetCollection)
Description copied from class: JmolAdapter
Get a StructureIterator.

Specified by:
getStructureIterator in class JmolAdapter
Parameters:
atomSetCollection - The client file
Returns:
A StructureIterator or null