001/* 002 * BioJava development code 003 * 004 * This code may be freely distributed and modified under the 005 * terms of the GNU Lesser General Public Licence. This should 006 * be distributed with the code. If you do not have a copy, 007 * see: 008 * 009 * http://www.gnu.org/copyleft/lesser.html 010 * 011 * Copyright for this code is held jointly by the individual 012 * authors. These should be listed in @author doc comments. 013 * 014 * For more information on the BioJava project and its aims, 015 * or to join the biojava-l mailing list, visit the home page 016 * at: 017 * 018 * http://www.biojava.org/ 019 * 020 */ 021package org.biojava.nbio.structure.io; 022 023import org.biojava.nbio.structure.PdbId; 024import org.biojava.nbio.structure.Structure; 025import org.biojava.nbio.structure.StructureException; 026 027import java.io.IOException; 028 029/** 030 * A class that can provide a protein structure object from somewhere. 031 * 032 * @author Andreas Prlic 033 * @since 3.2 034 */ 035public interface StructureProvider { 036 037 /** 038 * Get the structure for a PDB ID 039 * 040 * @param pdbId 041 * @return 042 */ 043 Structure getStructureById(String pdbId) throws StructureException,IOException; 044 045 /** 046 * Get the structure for a PDB ID 047 * 048 * @param pdbId 049 * @return 050 */ 051 Structure getStructureById(PdbId pdbId) throws StructureException,IOException; 052 053 /** 054 * Set the parameters that should be used for file parsing 055 * 056 * @param params FileParsingParameters 057 */ 058 void setFileParsingParameters(FileParsingParameters params); 059 060 061 /** 062 * Get the parameters that should be used for file parsing 063 * 064 * @return the FileParsingParameters that are configuring the behavior of the parser 065 */ 066 FileParsingParameters getFileParsingParameters(); 067 068 069}