001package org.biojava.nbio.structure.io.cif;
002
003import org.biojava.nbio.structure.Structure;
004import org.rcsb.cif.schema.mm.AtomSite;
005import org.rcsb.cif.schema.mm.AtomSites;
006import org.rcsb.cif.schema.mm.AuditAuthor;
007import org.rcsb.cif.schema.mm.Cell;
008import org.rcsb.cif.schema.mm.ChemComp;
009import org.rcsb.cif.schema.mm.ChemCompBond;
010import org.rcsb.cif.schema.mm.DatabasePDBRemark;
011import org.rcsb.cif.schema.mm.DatabasePDBRev;
012import org.rcsb.cif.schema.mm.DatabasePDBRevRecord;
013import org.rcsb.cif.schema.mm.Em3dReconstruction;
014import org.rcsb.cif.schema.mm.Entity;
015import org.rcsb.cif.schema.mm.EntityPoly;
016import org.rcsb.cif.schema.mm.EntityPolySeq;
017import org.rcsb.cif.schema.mm.EntitySrcGen;
018import org.rcsb.cif.schema.mm.EntitySrcNat;
019import org.rcsb.cif.schema.mm.Exptl;
020import org.rcsb.cif.schema.mm.PdbxAuditRevisionHistory;
021import org.rcsb.cif.schema.mm.PdbxChemCompIdentifier;
022import org.rcsb.cif.schema.mm.PdbxDatabaseStatus;
023import org.rcsb.cif.schema.mm.PdbxEntityBranchDescriptor;
024import org.rcsb.cif.schema.mm.PdbxEntitySrcSyn;
025import org.rcsb.cif.schema.mm.PdbxMolecule;
026import org.rcsb.cif.schema.mm.PdbxMoleculeFeatures;
027import org.rcsb.cif.schema.mm.PdbxNonpolyScheme;
028import org.rcsb.cif.schema.mm.PdbxReferenceEntityLink;
029import org.rcsb.cif.schema.mm.PdbxReferenceEntityList;
030import org.rcsb.cif.schema.mm.PdbxReferenceEntityPolyLink;
031import org.rcsb.cif.schema.mm.PdbxStructAssembly;
032import org.rcsb.cif.schema.mm.PdbxStructAssemblyGen;
033import org.rcsb.cif.schema.mm.PdbxStructModResidue;
034import org.rcsb.cif.schema.mm.PdbxStructOperList;
035import org.rcsb.cif.schema.mm.Refine;
036import org.rcsb.cif.schema.mm.Struct;
037import org.rcsb.cif.schema.mm.StructAsym;
038import org.rcsb.cif.schema.mm.StructConf;
039import org.rcsb.cif.schema.mm.StructConn;
040import org.rcsb.cif.schema.mm.StructConnType;
041import org.rcsb.cif.schema.mm.StructKeywords;
042import org.rcsb.cif.schema.mm.StructNcsOper;
043import org.rcsb.cif.schema.mm.StructRef;
044import org.rcsb.cif.schema.mm.StructRefSeq;
045import org.rcsb.cif.schema.mm.StructRefSeqDif;
046import org.rcsb.cif.schema.mm.StructSheetRange;
047import org.rcsb.cif.schema.mm.StructSite;
048import org.rcsb.cif.schema.mm.StructSiteGen;
049import org.rcsb.cif.schema.mm.Symmetry;
050
051/**
052 * Defines the categories to consume during CIF parsing.
053 * @author Sebastian Bittrich
054 * @since 6.0.0
055 */
056public interface CifStructureConsumer extends CifFileConsumer<Structure> {
057    /**
058     * Consume a particular Cif category.
059     * @param atomSite data
060     */
061    void consumeAtomSite(AtomSite atomSite);
062
063    /**
064     * Consume a particular Cif category.
065     * @param atomSites data
066     */
067    void consumeAtomSites(AtomSites atomSites);
068
069    /**
070     * Consume a particular Cif category.
071     * @param auditAuthor data
072     */
073    void consumeAuditAuthor(AuditAuthor auditAuthor);
074
075    /**
076     * Consume a particular Cif category.
077     * @param cell data
078     */
079    void consumeCell(Cell cell);
080
081    /**
082     * Consume a particular Cif category.
083     * @param chemComp data
084     */
085    void consumeChemComp(ChemComp chemComp);
086
087    /**
088     * Consume a particular Cif category.
089     * @param chemCompBond data
090     */
091    void consumeChemCompBond(ChemCompBond chemCompBond);
092
093    /**
094     * Consume a particular Cif category.
095     * @param databasePDBremark data
096     */
097    void consumeDatabasePDBRemark(DatabasePDBRemark databasePDBremark);
098
099    /**
100     * Consume a particular Cif category.
101     * @param databasePDBrev data
102     */
103    void consumeDatabasePDBRev(DatabasePDBRev databasePDBrev);
104
105    /**
106     * Consume a particular Cif category.
107     * @param databasePDBrevRecord data
108     */
109    void consumeDatabasePDBRevRecord(DatabasePDBRevRecord databasePDBrevRecord);
110
111        /**
112         * Consume Electron Microscopy 3D reconstruction data
113         * @param em3dReconstruction
114         */
115        void consumeEm3dReconstruction(Em3dReconstruction em3dReconstruction);
116
117        /**
118     * Consume a particular Cif category.
119     * @param entity data
120     */
121    void consumeEntity(Entity entity);
122
123    /**
124     * Consume a particular Cif category.
125     * @param entityPoly data
126     */
127    void consumeEntityPoly(EntityPoly entityPoly);
128
129    /**
130     * Consume a particular Cif category.
131     * @param entitySrcGen data
132     */
133    void consumeEntitySrcGen(EntitySrcGen entitySrcGen);
134
135    /**
136     * Consume a particular Cif category.
137     * @param entitySrcNat data
138     */
139    void consumeEntitySrcNat(EntitySrcNat entitySrcNat);
140
141    /**
142     * Consume a particular Cif category.
143     * @param entitySrcSyn data
144     */
145    void consumeEntitySrcSyn(PdbxEntitySrcSyn entitySrcSyn);
146
147    /**
148     * Consume a particular Cif category.
149     * @param entityPolySeq data
150     */
151    void consumeEntityPolySeq(EntityPolySeq entityPolySeq);
152
153    /**
154     * Consume a particular Cif category.
155     * @param exptl data
156     */
157    void consumeExptl(Exptl exptl);
158
159    /**
160     * Consume a particular Cif category.
161     * @param pdbxAuditRevisionHistory data
162     */
163    void consumePdbxAuditRevisionHistory(PdbxAuditRevisionHistory pdbxAuditRevisionHistory);
164
165    /**
166     * Consume a particular Cif category.
167     * @param pdbxChemCompIdentifier data
168     */
169    void consumePdbxChemCompIdentifier(PdbxChemCompIdentifier pdbxChemCompIdentifier);
170
171    /**
172     * Consume a particular Cif category.
173     * @param pdbxDatabaseStatus data
174     */
175    void consumePdbxDatabaseStatus(PdbxDatabaseStatus pdbxDatabaseStatus);
176
177    /**
178     * Consume a particular Cif category.
179     * @param pdbxEntityBranchDescriptor data
180     */
181    void consumePdbxEntityBranchDescriptor(PdbxEntityBranchDescriptor pdbxEntityBranchDescriptor);
182
183    /**
184     * Consume a particular Cif category.
185     * @param pdbxMolecule data
186     */
187    void consumePdbxMolecule(PdbxMolecule pdbxMolecule);
188
189    /**
190     * Consume a particular Cif category.
191     * @param pdbxMoleculeFeatures data
192     */
193    void consumePdbxMoleculeFeatures(PdbxMoleculeFeatures pdbxMoleculeFeatures);
194
195    /**
196     * Consume a particular Cif category.
197     * @param pdbxNonpolyScheme data
198     */
199    void consumePdbxNonpolyScheme(PdbxNonpolyScheme pdbxNonpolyScheme);
200
201    /**
202     * Consume a particular Cif category.
203     * @param pdbxReferenceEntityLink data
204     */
205    void consumePdbxReferenceEntityLink(PdbxReferenceEntityLink pdbxReferenceEntityLink);
206
207    /**
208     * Consume a particular Cif category.
209     * @param pdbxReferenceEntityList data
210     */
211    void consumePdbxReferenceEntityList(PdbxReferenceEntityList pdbxReferenceEntityList);
212
213    /**
214     * Consume a particular Cif category.
215     * @param pdbxReferenceEntityPolyLink data
216     */
217    void consumePdbxReferenceEntityPolyLink(PdbxReferenceEntityPolyLink pdbxReferenceEntityPolyLink);
218
219    /**
220     * Consume a particular Cif category.
221     * @param pdbxStructAssembly data
222     */
223    void consumePdbxStructAssembly(PdbxStructAssembly pdbxStructAssembly);
224
225    /**
226     * Consume a particular Cif category.
227     * @param pdbxStructAssemblyGen data
228     */
229    void consumePdbxStructAssemblyGen(PdbxStructAssemblyGen pdbxStructAssemblyGen);
230
231    /**
232     * Consume a particular Cif category.
233     * @param pdbxStructModResidue data
234     */
235    void consumePdbxStructModResidue(PdbxStructModResidue pdbxStructModResidue);
236
237    /**
238     * Consume a particular Cif category.
239     * @param pdbxStructOperList data
240     */
241    void consumePdbxStructOperList(PdbxStructOperList pdbxStructOperList);
242
243    /**
244     * Consume a particular Cif category.
245     * @param refine data
246     */
247    void consumeRefine(Refine refine);
248
249    /**
250     * Consume a particular Cif category.
251     * @param struct data
252     */
253    void consumeStruct(Struct struct);
254
255    /**
256     * Consume a particular Cif category.
257     * @param structAsym data
258     */
259    void consumeStructAsym(StructAsym structAsym);
260
261    /**
262     * Consume a particular Cif category.
263     * @param structConf data
264     */
265    void consumeStructConf(StructConf structConf);
266
267    /**
268     * Consume a particular Cif category.
269     * @param structConn data
270     */
271    void consumeStructConn(StructConn structConn);
272
273    /**
274     * Consume a particular Cif category.
275     * @param structConnType data
276     */
277    void consumeStructConnType(StructConnType structConnType);
278
279    /**
280     * Consume a particular Cif category.
281     * @param structKeywords data
282     */
283    void consumeStructKeywords(StructKeywords structKeywords);
284
285    /**
286     * Consume a particular Cif category.
287     * @param structNcsOper data
288     */
289    void consumeStructNcsOper(StructNcsOper structNcsOper);
290
291    /**
292     * Consume a particular Cif category.
293     * @param structRef data
294     */
295    void consumeStructRef(StructRef structRef);
296
297    /**
298     * Consume a particular Cif category.
299     * @param structRefSeq data
300     */
301    void consumeStructRefSeq(StructRefSeq structRefSeq);
302
303    /**
304     * Consume a particular Cif category.
305     * @param structRefSeqDif data
306     */
307    void consumeStructRefSeqDif(StructRefSeqDif structRefSeqDif);
308
309    /**
310     * Consume a particular Cif category.
311     * @param structSheetRange data
312     */
313    void consumeStructSheetRange(StructSheetRange structSheetRange);
314
315    /**
316     * Consume a particular Cif category.
317     * @param structSite data
318     */
319    void consumeStructSite(StructSite structSite);
320
321    /**
322     * Consume a particular Cif category.
323     * @param structSiteGen data
324     */
325    void consumeStructSiteGen(StructSiteGen structSiteGen);
326
327    /**
328     * Consume a particular Cif category.
329     * @param symmetry data
330     */
331    void consumeSymmetry(Symmetry symmetry);
332}