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}