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