001package org.biojava.nbio.structure.io.mmcif;
002
003import org.biojava.nbio.structure.io.FileParsingParameters;
004import org.biojava.nbio.structure.io.mmcif.chem.MetalBondDistance;
005import org.biojava.nbio.structure.io.mmcif.model.*;
006
007import java.util.ArrayList;
008import java.util.HashMap;
009import java.util.List;
010import java.util.Map;
011
012/**
013 * Created by andreas on 6/9/16.
014 */
015public class MetalBondConsumer implements MMcifConsumer{
016
017
018    Map<String,List<MetalBondDistance>> definitions = new HashMap();
019
020    @Override
021    public void documentStart() {
022        definitions.clear();
023    }
024
025    @Override
026    public void documentEnd() {
027
028        // minimize memory consumption
029
030        for  (List<MetalBondDistance> d : definitions.values()){
031            ArrayList<MetalBondDistance> a = (ArrayList)d;
032
033            a.trimToSize();
034        }
035
036    }
037
038    @Override
039    public void newAtomSite(AtomSite atom) {
040
041    }
042
043    @Override
044    public void newEntity(Entity entity) {
045
046    }
047
048
049    @Override
050    public void newEntityPolySeq(EntityPolySeq epolseq) {
051
052    }
053
054    @Override
055    public void newStructAsym(StructAsym sasym) {
056
057    }
058
059    @Override
060    public void setStruct(Struct struct) {
061
062    }
063
064    @Override
065    public void newDatabasePDBrev(DatabasePDBrev dbrev) {
066
067    }
068
069    @Override
070    public void newDatabasePDBrevRecord(DatabasePdbrevRecord dbrev) {
071
072    }
073
074    @Override
075    public void newDatabasePDBremark(DatabasePDBremark remark) {
076
077    }
078
079    @Override
080    public void newExptl(Exptl exptl) {
081
082    }
083
084    @Override
085    public void newCell(Cell cell) {
086
087    }
088
089    @Override
090    public void newSymmetry(Symmetry symmetry) {
091
092    }
093
094    @Override
095    public void newStructNcsOper(StructNcsOper sNcsOper) {
096
097    }
098    
099    @Override 
100    public void newAtomSites(AtomSites atomSites) {
101        
102    }
103
104    @Override
105    public void newStructRef(StructRef sref) {
106
107    }
108
109    @Override
110    public void newStructRefSeq(StructRefSeq sref) {
111
112    }
113
114    @Override
115    public void newStructRefSeqDif(StructRefSeqDif sref) {
116
117    }
118
119    @Override
120    public void newStructSite(StructSite sref) {
121
122    }
123
124    @Override
125    public void newStructSiteGen(StructSiteGen sref) {
126
127    }
128
129    @Override
130    public void newPdbxPolySeqScheme(PdbxPolySeqScheme ppss) {
131
132    }
133
134    @Override
135    public void newPdbxNonPolyScheme(PdbxNonPolyScheme ppss) {
136
137    }
138
139    @Override
140    public void newPdbxEntityNonPoly(PdbxEntityNonPoly pen) {
141
142    }
143
144    @Override
145    public void newStructKeywords(StructKeywords kw) {
146
147    }
148
149    @Override
150    public void newRefine(Refine r) {
151
152    }
153
154    @Override
155    public void newChemComp(ChemComp c) {
156
157    }
158
159    @Override
160    public void newChemCompDescriptor(ChemCompDescriptor ccd) {
161
162    }
163
164    @Override
165    public void newPdbxStructOperList(PdbxStructOperList structOper) {
166
167    }
168
169    @Override
170    public void newPdbxStrucAssembly(PdbxStructAssembly strucAssembly) {
171
172    }
173
174    @Override
175    public void newPdbxStrucAssemblyGen(PdbxStructAssemblyGen strucAssembly) {
176
177    }
178
179    @Override
180    public void newChemCompAtom(ChemCompAtom atom) {
181
182    }
183
184    @Override
185    public void newPdbxChemCompIndentifier(PdbxChemCompIdentifier id) {
186
187    }
188
189    @Override
190    public void newChemCompBond(ChemCompBond bond) {
191
192    }
193
194    @Override
195    public void newPdbxChemCompDescriptor(PdbxChemCompDescriptor desc) {
196
197    }
198
199    @Override
200    public void newEntitySrcGen(EntitySrcGen entitySrcGen) {
201
202    }
203
204    @Override
205    public void newEntitySrcNat(EntitySrcNat entitySrcNat) {
206
207    }
208
209    @Override
210    public void newEntitySrcSyn(EntitySrcSyn entitySrcSyn) {
211
212    }
213
214    @Override
215    public void newStructConn(StructConn structConn) {
216
217    }
218
219    @Override
220    public void newAuditAuthor(AuditAuthor aa) {
221
222    }
223
224    @Override
225    public void newGenericData(String category, List<String> loopFields, List<String> lineData) {
226
227        MetalBondDistance d = new MetalBondDistance();
228
229        d.setAtomType1(lineData.get(0));
230        d.setAtomType2(lineData.get(1));
231        d.setLowerLimit(Float.parseFloat(lineData.get(2)));
232        d.setUpperLimit(Float.parseFloat(lineData.get(3)));
233
234        List<MetalBondDistance> defs = definitions.get(d.getAtomType1());
235
236        if ( defs == null){
237            defs = new ArrayList<>();
238            definitions.put(d.getAtomType1(),defs);
239        }
240
241        defs.add(d);
242
243    }
244
245    @Override
246    public void setFileParsingParameters(FileParsingParameters params) {
247
248    }
249
250    @Override
251    public FileParsingParameters getFileParsingParameters() {
252        return null;
253    }
254
255    public Map<String,List<MetalBondDistance>> getDefinitions(){
256        return definitions;
257    }
258}