Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: org/biomage/Common/MAGEJava.java


1   /***************************************************************************  
2    *                                                                         *
3    * C O P Y R I G H T   N O T I C E                                         * 
4    *  Copyright (c) 2001 by:                                                 *
5    *    * The MicroArray Gene Expression Database group (MGED)               *
6    *    * Rosetta Inpharmatics                                               *
7    *                                                                         *
8    *    All Rights Reserved.                                                 *
9    *                                                                         *
10   * Permission is hereby granted, free of charge, to any person             *
11   * obtaining a copy of this software and associated documentation files    *
12   * (the "Software"), to deal in the Software without restriction,          *
13   * including without limitation the rights to use, copy, modify, merge,    *
14   * publish, distribute, sublicense, and/or sell copies of the Software,    *
15   * and to permit persons to whom the Software is furnished to do so,       *
16   * subject to the following conditions:                                    *
17   *                                                                         *
18   * The above copyright notice and this permission notice shall be          *
19   * included in all copies or substantial portions of the Software.         *
20   *                                                                         *
21   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,         *
22   * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF      * 
23   * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND                   *
24   * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS     *
25   * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN      *
26   * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN       *
27   * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE        *
28   * SOFTWARE.                                                               *
29   ***************************************************************************
30   *                                                                         *
31   * Created by the create_mage_java_classes java program based on the       * 
32   * information in the xmi file created from the MAGE-OM UML model,         *
33   * copyright European Bioinformatics Institute (EBI) for MGED and Rosetta  *
34   * Informatics.                                                            *
35   *                                                                         *
36   * The ideas and work are built on the previous work in perl of Jason      *
37   * Stewart, Open Informatics, and Robert M. Hubley, Institute for Systems  *
38   * Biology                                                                 *
39   *                                                                         *
40   * @author  Michael Miller, Rosetta Inpharmatics                           *
41   * @version Revision: 1.0                                                  *
42   * @date    Thu, Feb 21, 2002 10:48:07 AM                                  *
43   *                                                                         *
44   ***************************************************************************
45   */
46  
47  /**
48   *  org.biomage.Common
49   *  
50   */
51  package org.biomage.Common;
52  
53  /**
54   *  Import list for MAGEJava
55   *  
56   */
57  import java.io.Serializable;
58  import java.util.*;
59  import org.xml.sax.Attributes;
60  import java.io.Writer;
61  import java.io.IOException;
62  import org.biomage.Array.Array_package;
63  import org.biomage.ArrayDesign.ArrayDesign_package;
64  import org.biomage.AuditAndSecurity.AuditAndSecurity_package;
65  import org.biomage.BQS.BQS_package;
66  import org.biomage.BioAssay.BioAssay_package;
67  import org.biomage.BioAssayData.BioAssayData_package;
68  import org.biomage.BioEvent.BioEvent_package;
69  import org.biomage.BioMaterial.BioMaterial_package;
70  import org.biomage.BioSequence.BioSequence_package;
71  import org.biomage.Description.Description_package;
72  import org.biomage.DesignElement.DesignElement_package;
73  import org.biomage.Experiment.Experiment_package;
74  import org.biomage.HigherLevelAnalysis.HigherLevelAnalysis_package;
75  import org.biomage.Measurement.Measurement_package;
76  import org.biomage.Protocol.Protocol_package;
77  import org.biomage.QuantitationType.QuantitationType_package;
78  
79  public
80  class MAGEJava
81      implements Serializable
82  {
83      /**
84       *  An abstract class representing an event that takes sources of 
85       *  some type to produce a target of some type.  Each of the realized 
86       *  subclasses determines the type of the sources and the target.  The 
87       *  association to a protocol application allows specification of how 
88       *  the event was performed.
89       *  
90       */
91      public BioEvent_package bioEvent_package;
92  
93  
94      /**
95       *  Describes the process of creating arrays from array designs.  
96       *  Includes information on how arrays are grouped together, if 
97       *  relevant, how an array deviates from its array design both in layout 
98       *  and per feature and potentially contains references to LIMS data 
99       *  that might contain more detail on the BioMaterial used to create the 
100      *  reporters.
101      *  
102      */
103     public Array_package array_package;
104 
105 
106     /**
107      *  The classes defined here provide data and the information and 
108      *  annotation on the derivation of that data.  Some of the scenarios 
109      *  that might occur are the following.
110      *  
111      *  FeatureExtraction of a single PhysicalBioAssay produces 
112      *  MeasuredBioAssayData that has a single BioAssay on the 
113      *  BioAssayDimension, typically the Features described in the 
114      *  ArrayDesign on the DesignElementDimension, and the Quantitations 
115      *  associated with the application of a  FeatureExtraction protocol on 
116      *  the QuantitationDimension.
117      *  
118      *  An error model transformation might be applied that doesn't change 
119      *  the BioAssayDimension or the DesignElementDimension but likely 
120      *  changes the QuantitationDimension.  A transformation on replicate 
121      *  Reporters or CompositeSequences might be applied on the single 
122      *  BioAssay that would change the DesignElementDimension and the 
123      *  QuantitationDimension both.  Replicate and Control BioAssays might 
124      *  be added to the BioAssayDimension and a transformation could change 
125      *  the BioAssayDimension and the QuantitationDimension but not change 
126      *  the DesignElementDimension to produce a new DerivedBioAssayData.  Or 
127      *  some combination of the above transformations could be performed at 
128      *  once to change all three dimensions.
129      *  
130      *  Because the classes derive from Describable, the Experimenter can 
131      *  provide as much detail at each level of the class hierarchy as 
132      *  desired.
133      *  
134      */
135     public BioAssayData_package bioAssayData_package;
136 
137 
138     /**
139      *  Provides classes that contain information and annotation on the 
140      *  event of joining an Array with a BioMaterial preparation, the 
141      *  acquisition of images and the extraction of data on a per feature 
142      *  basis from those images.  The derived classes of BioAssay represent 
143      *  the base PhysicalBioAssays which lead to the production of Images, 
144      *  the MeasuredBioAssay which is associated with the set of 
145      *  quantitations produced by FeatureExtraction, and DerivedBioAssay 
146      *  (see BioAssayData package) which groups together BioAssays that have 
147      *  been analyzed together to produce further refinement of the 
148      *  quantitations.
149      *  
150      *  The design of this package and the related BioAssayData package was 
151      *  driven by the following query considerations and the desire to 
152      *  return as little data as necessary to satisfy a query.   Often, the 
153      *  first set of queries for experiments below the Experiment level will 
154      *  want to discover the why of an experiment and this is captured in 
155      *  the BioAssay class through its FactorValue, BioEvent and Description 
156      *  associations.  This separates it from the data but allows an 
157      *  overview of the experiment hierarchy.  The BioAssayData class 
158      *  association to BioDataValues is optional only to allow queries on 
159      *  them to discover the how of the experiment through the association 
160      *  to the transformation and mappings of the three BioAssayData 
161      *  dimensions and the protocols used.  Once a researcher, for instance, 
162      *  has narrowed down the experiments of interest then the actual data, 
163      *  represented by the BioDataValues, can be downloaded.  Because these 
164      *  data can be in the hundreds of megabytes to gigabytes range, it was 
165      *  considered desirable to be able to return information and annotation 
166      *  on the experiment without the data.
167      *  
168      */
169     public BioAssay_package bioAssay_package;
170 
171 
172     /**
173      *  The classes in this package allow a variety of references to 
174      *  third party annotation and direct annotation by the experimenter.
175      *  
176      */
177     public Description_package description_package;
178 
179 
180     /**
181      *  This Package defines the classes for quantitations, such as 
182      *  measured and derived signal, error, and pvalue.  The subclasses of 
183      *  StandardQuantitationType will be the best fit from FeatureExtraction 
184      *  or Transformation Protocol for the values obtained.  Other values 
185      *  can be specified using SpecializedQuantitationType.
186      *  
187      */
188     public QuantitationType_package quantitationType_package;
189 
190 
191     /**
192      *  Provides a relatively immutable class, Protocol, that can 
193      *  describe a generic laboratory procedure or analysis algorithm, for 
194      *  example, and an instance class, ProtocolApplication, which can 
195      *  describe the actual application of a protocol. The 
196      *  ProtocolApplication provides values for the replaceable parameters 
197      *  of the Protocol and, through the Description association of 
198      *  Describable, any variation from the Protocol.
199      *  
200      */
201     public Protocol_package protocol_package;
202 
203 
204     /**
205      *  The classes of this package provide utility information on the 
206      *  quantities of other classes to each other.
207      *  
208      */
209     public Measurement_package measurement_package;
210 
211 
212     /**
213      *  Describes a known gene or sequence.  BioAssays typically seek to 
214      *  identify what BioSequences are expressed in a BioMaterial after 
215      *  treatments, the expression level measured from the association 
216      *  between the BioMaterial and the Array.  The Array's Features 
217      *  typically provide known locations for this association to occur.  
218      *  Most often, the Reporter and CompositeSequence are known and the 
219      *  presence or absence of a particular BioSequence in the BioMaterial 
220      *  is based on whether there as been an association to the 
221      *  DesignElement targeted for it.  Some other experiments may not know 
222      *  the DesignElement's target but can discover it with known properties 
223      *  of the BioSequences in the BioMaterial.
224      *  
225      */
226     public BioSequence_package bioSequence_package;
227 
228 
229     /**
230      *  Allows a reference to an article, book or other publication to be 
231      *  specified for searching repositories.
232      *  
233      */
234     public BQS_package bQS_package;
235 
236 
237     /**
238      *  Represents the container for a hierarchical grouping of 
239      *  BioAssays.  Can have the end results of Clustering Analysis 
240      *  specified and, through the ExperimentDesign, a description and 
241      *  annotation of the overall design of the experiment and what it was 
242      *  to show.
243      *  
244      */
245     public Experiment_package experiment_package;
246 
247 
248     /**
249      *  Specifies classes that allow tracking of changes and information 
250      *  on user permissions to view the data and annotation.
251      *  
252      */
253     public AuditAndSecurity_package auditAndSecurity_package;
254 
255 
256     /**
257      *  Describes the results of performing analysis on the result of the 
258      *  BioAssayData from an Experiment.
259      *  
260      */
261     public HigherLevelAnalysis_package higherLevelAnalysis_package;
262 
263 
264     /**
265      *  The classes of this package are the contained classes of the 
266      *  ArrayDesign and describe through the DesignElements what is intended 
267      *  to be at each location of the Array.  The Feature describes an 
268      *  intended location on the Array, the Reporter the Oligo, Clone, PCR 
269      *  Product that is on a Feature and the CompositeSequence which 
270      *  combines Reporters or CompositeSequences into what the child 
271      *  DesignElements are meant to represent biologically, e.g. a Gene, 
272      *  Exon, SpliceVariant, etc.
273      *  
274      */
275     public DesignElement_package designElement_package;
276 
277 
278     /**
279      *  Describes a microarray design that can be printed and then, in 
280      *  the case of gene expression,  hybridized.  An array design consists 
281      *  of several features (also called spots) in which reporter sequences 
282      *  are placed.  Many features may have the same reporter replicated and 
283      *  a reporter may be specified in one or more array designs.  
284      *  
285      *  The nature of the reporter's biosequence placed on a spot will 
286      *  depend on the technology.  Two well-known technologies differ 
287      *  significantly-spotter arrays draw material from a well and place a 
288      *  spot on the array whereas in situ oligo arrays are created through 
289      *  the synthesis of many, short (~20-100mer) nucleotide sequences onto 
290      *  the features.
291      *  
292      *  Reporters can be grouped together into CompositeSequences, typically 
293      *  representing a gene or one or more splice variants in gene 
294      *  expression experiments. 
295      *  
296      *  There are then two distinct ways that DesignElements are grouped.  
297      *  The one described in the ArrayDesign package by FeatureGroup, 
298      *  ReporterGroup and CompositeGroup is by technology type, that is, one 
299      *  might want to segregate the controls to a Group and all the 
300      *  non-controls to another.   Or if PCR Product and Oligos are both 
301      *  used on an array they would likely be in different groups.  The 
302      *  grouping described in the DesignElement package by the mappings 
303      *  relates the Features to the Reporter, the Reporters to 
304      *  CompositeSequence, and at higher levels, CompositeSequences to 
305      *  CompositeSequence.
306      *  
307      */
308     public ArrayDesign_package arrayDesign_package;
309 
310 
311     /**
312      *  The classes in this package describe how a BioSource is treated 
313      *  to obtain the BioMaterial (typically a LabeledExtract) that is used 
314      *  by a BioAssayCreation in combination with an Array to produce a 
315      *  PhysicalBioAssay.  A set of treatments are typically linear in time 
316      *  but can form a Directed Acyclic Graph.
317      *  
318      */
319     public BioMaterial_package bioMaterial_package;
320 
321 
322     /**
323      *  Default constructor.
324      *  
325      */
326     public
327     MAGEJava()
328     {
329     }
330 
331     /**
332      *  Attribute constructor.
333      *  
334      *  Looks up the attributes in the parameter and casts them from strings 
335      *  appropriately
336      *  @param atts: the attribute list.
337      *  
338      */
339     // TODO Work in progress (attribute constructor).
340     public
341     MAGEJava(Attributes atts)
342     {
343     }
344 
345     /**
346      *  writeMAGEML
347      *  <p>
348      *  This method is responsible for assembling the attribute and 
349      *  association data into XML. It creates the object tag and then calls 
350      *  the writeAttributes and writeAssociation methods.
351      *  <p>
352      *  
353      */
354     public
355     void
356     writeMAGEML(Writer out)
357     throws IOException
358     {
359         out.write("<MAGE-ML");
360         writeAttributes(out);
361         out.write(">");
362         writeAssociations(out);
363         out.write("</MAGE-ML>");
364     }
365 
366     /**
367      *  writeAttributes
368      *  <p>
369      *  This method is responsible for assembling the attribute data into 
370      *  XML. It calls the super method to write out all attributes of this 
371      *  class and it's ancestors.
372      *  <p>
373      *  
374      */
375     public
376     void
377     writeAttributes(Writer out)
378     throws IOException
379     {
380     }
381 
382     /**
383      *  writeAssociations
384      *  <p>
385      *  This method is responsible for assembling the association data 
386      *  into XML. It calls the super method to write out all associations of 
387      *  this class's ancestors.
388      *  <p>
389      *  
390      */
391     public
392     void
393     writeAssociations(Writer out)
394     throws IOException
395     {
396         if ( bioMaterial_package != null ){
397             bioMaterial_package.writeMAGEML(out);
398         }
399         if ( arrayDesign_package != null ){
400             arrayDesign_package.writeMAGEML(out);
401         }
402         if ( designElement_package != null ){
403             designElement_package.writeMAGEML(out);
404         }
405         if ( higherLevelAnalysis_package != null ){
406             higherLevelAnalysis_package.writeMAGEML(out);
407         }
408         if ( auditAndSecurity_package != null ){
409             auditAndSecurity_package.writeMAGEML(out);
410         }
411         if ( experiment_package != null ){
412             experiment_package.writeMAGEML(out);
413         }
414         if ( bQS_package != null ){
415             bQS_package.writeMAGEML(out);
416         }
417         if ( bioSequence_package != null ){
418             bioSequence_package.writeMAGEML(out);
419         }
420         if ( measurement_package != null ){
421             measurement_package.writeMAGEML(out);
422         }
423         if ( protocol_package != null ){
424             protocol_package.writeMAGEML(out);
425         }
426         if ( quantitationType_package != null ){
427             quantitationType_package.writeMAGEML(out);
428         }
429         if ( description_package != null ){
430             description_package.writeMAGEML(out);
431         }
432         if ( bioAssay_package != null ){
433             bioAssay_package.writeMAGEML(out);
434         }
435         if ( bioAssayData_package != null ){
436             bioAssayData_package.writeMAGEML(out);
437         }
438         if ( array_package != null ){
439             array_package.writeMAGEML(out);
440         }
441         if ( bioEvent_package != null ){
442             bioEvent_package.writeMAGEML(out);
443         }
444     }
445 
446     /**
447      *  Inner class to store Model to Class mappings
448      *  <p>
449      *  Stores absolute references to classes under their common Model 
450      *  names.
451      *  <p>
452      *  
453      */
454     private
455     class
456     ModelNameToClassMap extends HashMap
457     {
458         {
459             this.put("ArrayDesign",
460                 org.biomage.ArrayDesign.ArrayDesign.class);
461             this.put("PhysicalArrayDesign",
462                 org.biomage.ArrayDesign.PhysicalArrayDesign.class);
463             this.put("ZoneLayout",
464                 org.biomage.ArrayDesign.ZoneLayout.class);
465             this.put("ZoneGroup",
466                 org.biomage.ArrayDesign.ZoneGroup.class);
467             this.put("Zone",
468                 org.biomage.ArrayDesign.Zone.class);
469             this.put("ReporterGroup",
470                 org.biomage.ArrayDesign.ReporterGroup.class);
471             this.put("FeatureGroup",
472                 org.biomage.ArrayDesign.FeatureGroup.class);
473             this.put("DesignElementGroup",
474                 org.biomage.ArrayDesign.DesignElementGroup.class);
475             this.put("CompositeGroup",
476                 org.biomage.ArrayDesign.CompositeGroup.class);
477             this.put("Array",
478                 org.biomage.Array.Array.class);
479             this.put("FeatureDefect",
480                 org.biomage.Array.FeatureDefect.class);
481             this.put("ArrayGroup",
482                 org.biomage.Array.ArrayGroup.class);
483             this.put("ArrayManufacture",
484                 org.biomage.Array.ArrayManufacture.class);
485             this.put("ArrayManufactureDeviation",
486                 org.biomage.Array.ArrayManufactureDeviation.class);
487             this.put("Fiducial",
488                 org.biomage.Array.Fiducial.class);
489             this.put("ManufactureLIMS",
490                 org.biomage.Array.ManufactureLIMS.class);
491             this.put("ManufactureLIMSBiomaterial",
492                 org.biomage.Array.ManufactureLIMSBiomaterial.class);
493             this.put("PositionDelta",
494                 org.biomage.Array.PositionDelta.class);
495             this.put("ZoneDefect",
496                 org.biomage.Array.ZoneDefect.class);
497             this.put("BioSource",
498                 org.biomage.BioMaterial.BioSource.class);
499             this.put("BioMaterial",
500                 org.biomage.BioMaterial.BioMaterial.class);
501             this.put("LabeledExtract",
502                 org.biomage.BioMaterial.LabeledExtract.class);
503             this.put("BioSample",
504                 org.biomage.BioMaterial.BioSample.class);
505             this.put("Compound",
506                 org.biomage.BioMaterial.Compound.class);
507             this.put("CompoundMeasurement",
508                 org.biomage.BioMaterial.CompoundMeasurement.class);
509             this.put("BioMaterialMeasurement",
510                 org.biomage.BioMaterial.BioMaterialMeasurement.class);
511             this.put("Treatment",
512                 org.biomage.BioMaterial.Treatment.class);
513             this.put("BioAssayDataCluster",
514                 org.biomage.HigherLevelAnalysis.BioAssayDataCluster.class);
515             this.put("Node",
516                 org.biomage.HigherLevelAnalysis.Node.class);
517             this.put("NodeContents",
518                 org.biomage.HigherLevelAnalysis.NodeContents.class);
519             this.put("NodeValue",
520                 org.biomage.HigherLevelAnalysis.NodeValue.class);
521             this.put("PhysicalBioAssay",
522                 org.biomage.BioAssay.PhysicalBioAssay.class);
523             this.put("DerivedBioAssay",
524                 org.biomage.BioAssay.DerivedBioAssay.class);
525             this.put("Image",
526                 org.biomage.BioAssay.Image.class);
527             this.put("BioAssay",
528                 org.biomage.BioAssay.BioAssay.class);
529             this.put("Channel",
530                 org.biomage.BioAssay.Channel.class);
531             this.put("MeasuredBioAssay",
532                 org.biomage.BioAssay.MeasuredBioAssay.class);
533             this.put("BioAssayCreation",
534                 org.biomage.BioAssay.BioAssayCreation.class);
535             this.put("FeatureExtraction",
536                 org.biomage.BioAssay.FeatureExtraction.class);
537             this.put("Hybridization",
538                 org.biomage.BioAssay.Hybridization.class);
539             this.put("ImageAcquisition",
540                 org.biomage.BioAssay.ImageAcquisition.class);
541             this.put("BioAssayTreatment",
542                 org.biomage.BioAssay.BioAssayTreatment.class);
543             this.put("Person",
544                 org.biomage.AuditAndSecurity.Person.class);
545             this.put("Security",
546                 org.biomage.AuditAndSecurity.Security.class);
547             this.put("Audit",
548                 org.biomage.AuditAndSecurity.Audit.class);
549             this.put("Organization",
550                 org.biomage.AuditAndSecurity.Organization.class);
551             this.put("SecurityGroup",
552                 org.biomage.AuditAndSecurity.SecurityGroup.class);
553             this.put("Contact",
554                 org.biomage.AuditAndSecurity.Contact.class);
555             this.put("BioAssayData",
556                 org.biomage.BioAssayData.BioAssayData.class);
557             this.put("QuantitationTypeDimension",
558                 org.biomage.BioAssayData.QuantitationTypeDimension.class);
559             this.put("BioAssayMapping",
560                 org.biomage.BioAssayData.BioAssayMapping.class);
561             this.put("DesignElementDimension",
562                 org.biomage.BioAssayData.DesignElementDimension.class);
563             this.put("BioAssayDatum",
564                 org.biomage.BioAssayData.BioAssayDatum.class);
565             this.put("DerivedBioAssayData",
566                 org.biomage.BioAssayData.DerivedBioAssayData.class);
567             this.put("MeasuredBioAssayData",
568                 org.biomage.BioAssayData.MeasuredBioAssayData.class);
569             this.put("QuantitationTypeMapping",
570                 org.biomage.BioAssayData.QuantitationTypeMapping.class);
571             this.put("DesignElementMapping",
572                 org.biomage.BioAssayData.DesignElementMapping.class);
573             this.put("BioDataCube",
574                 org.biomage.BioAssayData.BioDataCube.class);
575             this.put("BioDataValues",
576                 org.biomage.BioAssayData.BioDataValues.class);
577             this.put("BioDataTuples",
578                 org.biomage.BioAssayData.BioDataTuples.class);
579             this.put("BioAssayDimension",
580                 org.biomage.BioAssayData.BioAssayDimension.class);
581             this.put("QuantitationTypeMap",
582                 org.biomage.BioAssayData.QuantitationTypeMap.class);
583             this.put("Transformation",
584                 org.biomage.BioAssayData.Transformation.class);
585             this.put("DesignElementMap",
586                 org.biomage.BioAssayData.DesignElementMap.class);
587             this.put("BioAssayMap",
588                 org.biomage.BioAssayData.BioAssayMap.class);
589             this.put("CompositeSequenceDimension",
590                 org.biomage.BioAssayData.CompositeSequenceDimension.class);
591             this.put("ReporterDimension",
592                 org.biomage.BioAssayData.ReporterDimension.class);
593             this.put("FeatureDimension",
594                 org.biomage.BioAssayData.FeatureDimension.class);
595             this.put("Experiment",
596                 org.biomage.Experiment.Experiment.class);
597             this.put("ExperimentDesign",
598                 org.biomage.Experiment.ExperimentDesign.class);
599             this.put("ExperimentalFactor",
600                 org.biomage.Experiment.ExperimentalFactor.class);
601             this.put("FactorValue",
602                 org.biomage.Experiment.FactorValue.class);
603             this.put("Protocol",
604                 org.biomage.Protocol.Protocol.class);
605             this.put("Parameter",
606                 org.biomage.Protocol.Parameter.class);
607             this.put("ParameterValue",
608                 org.biomage.Protocol.ParameterValue.class);
609             this.put("ProtocolApplication",
610                 org.biomage.Protocol.ProtocolApplication.class);
611             this.put("Software",
612                 org.biomage.Protocol.Software.class);
613             this.put("Hardware",
614                 org.biomage.Protocol.Hardware.class);
615             this.put("HardwareApplication",
616                 org.biomage.Protocol.HardwareApplication.class);
617             this.put("SoftwareApplication",
618                 org.biomage.Protocol.SoftwareApplication.class);
619             this.put("Parameterizable",
620                 org.biomage.Protocol.Parameterizable.class);
621             this.put("ParameterizableApplication",
622                 org.biomage.Protocol.ParameterizableApplication.class);
623             this.put("Description",
624                 org.biomage.Description.Description.class);
625             this.put("DatabaseEntry",
626                 org.biomage.Description.DatabaseEntry.class);
627             this.put("Database",
628                 org.biomage.Description.Database.class);
629             this.put("ExternalReference",
630                 org.biomage.Description.ExternalReference.class);
631             this.put("OntologyEntry",
632                 org.biomage.Description.OntologyEntry.class);
633             this.put("Measurement",
634                 org.biomage.Measurement.Measurement.class);
635             this.put("Unit",
636                 org.biomage.Measurement.Unit.class);
637             this.put("TimeUnit",
638                 org.biomage.Measurement.TimeUnit.class);
639             this.put("DistanceUnit",
640                 org.biomage.Measurement.DistanceUnit.class);
641             this.put("TemperatureUnit",
642                 org.biomage.Measurement.TemperatureUnit.class);
643             this.put("QuantityUnit",
644                 org.biomage.Measurement.QuantityUnit.class);
645             this.put("MassUnit",
646                 org.biomage.Measurement.MassUnit.class);
647             this.put("VolumeUnit",
648                 org.biomage.Measurement.VolumeUnit.class);
649             this.put("ConcentrationUnit",
650                 org.biomage.Measurement.ConcentrationUnit.class);
651             this.put("BioEvent",
652                 org.biomage.BioEvent.BioEvent.class);
653             this.put("Map",
654                 org.biomage.BioEvent.Map.class);
655             this.put("BibliographicReference",
656                 org.biomage.BQS.BibliographicReference.class);
657             this.put("SeqFeature",
658                 org.biomage.BioSequence.SeqFeature.class);
659             this.put("SeqFeatureLocation",
660                 org.biomage.BioSequence.SeqFeatureLocation.class);
661             this.put("BioSequence",
662                 org.biomage.BioSequence.BioSequence.class);
663             this.put("SequencePosition",
664                 org.biomage.BioSequence.SequencePosition.class);
665             this.put("StandardQuantitationType",
666                 org.biomage.QuantitationType.StandardQuantitationType.class);
667             this.put("QuantitationType",
668                 org.biomage.QuantitationType.QuantitationType.class);
669             this.put("SpecializedQuantitationType",
670                 org.biomage.QuantitationType.SpecializedQuantitationType.class);
671             this.put("DerivedSignal",
672                 org.biomage.QuantitationType.DerivedSignal.class);
673             this.put("MeasuredSignal",
674                 org.biomage.QuantitationType.MeasuredSignal.class);
675             this.put("Error",
676                 org.biomage.QuantitationType.Error.class);
677             this.put("PValue",
678                 org.biomage.QuantitationType.PValue.class);
679             this.put("ExpectedValue",
680                 org.biomage.QuantitationType.ExpectedValue.class);
681             this.put("Ratio",
682                 org.biomage.QuantitationType.Ratio.class);
683             this.put("ConfidenceIndicator",
684                 org.biomage.QuantitationType.ConfidenceIndicator.class);
685             this.put("PresentAbsent",
686                 org.biomage.QuantitationType.PresentAbsent.class);
687             this.put("DesignElement",
688                 org.biomage.DesignElement.DesignElement.class);
689             this.put("Position",
690                 org.biomage.DesignElement.Position.class);
691             this.put("Reporter",
692                 org.biomage.DesignElement.Reporter.class);
693             this.put("ReporterPosition",
694                 org.biomage.DesignElement.ReporterPosition.class);
695             this.put("CompositePosition",
696                 org.biomage.DesignElement.CompositePosition.class);
697             this.put("CompositeSequence",
698                 org.biomage.DesignElement.CompositeSequence.class);
699             this.put("Feature",
700                 org.biomage.DesignElement.Feature.class);
701             this.put("MismatchInformation",
702                 org.biomage.DesignElement.MismatchInformation.class);
703             this.put("FeatureInformation",
704                 org.biomage.DesignElement.FeatureInformation.class);
705             this.put("CompositeCompositeMap",
706                 org.biomage.DesignElement.CompositeCompositeMap.class);
707             this.put("FeatureReporterMap",
708                 org.biomage.DesignElement.FeatureReporterMap.class);
709             this.put("ReporterCompositeMap",
710                 org.biomage.DesignElement.ReporterCompositeMap.class);
711             this.put("FeatureLocation",
712                 org.biomage.DesignElement.FeatureLocation.class);
713             this.put("Describable",
714                 org.biomage.Common.Describable.class);
715             this.put("Identifiable",
716                 org.biomage.Common.Identifiable.class);
717             this.put("Extendable",
718                 org.biomage.Common.Extendable.class);
719             this.put("NameValueType",
720                 org.biomage.Common.NameValueType.class);
721             this.put("BioEvent_package",
722                 org.biomage.BioEvent.BioEvent_package.class);
723             this.put("Array_package",
724                 org.biomage.Array.Array_package.class);
725             this.put("BioAssayData_package",
726                 org.biomage.BioAssayData.BioAssayData_package.class);
727             this.put("BioAssay_package",
728                 org.biomage.BioAssay.BioAssay_package.class);
729             this.put("Description_package",
730                 org.biomage.Description.Description_package.class);
731             this.put("QuantitationType_package",
732                 org.biomage.QuantitationType.QuantitationType_package.class);
733             this.put("Protocol_package",
734                 org.biomage.Protocol.Protocol_package.class);
735             this.put("Measurement_package",
736                 org.biomage.Measurement.Measurement_package.class);
737             this.put("BioSequence_package",
738                 org.biomage.BioSequence.BioSequence_package.class);
739             this.put("BQS_package",
740                 org.biomage.BQS.BQS_package.class);
741             this.put("Experiment_package",
742                 org.biomage.Experiment.Experiment_package.class);
743             this.put("AuditAndSecurity_package",
744                 org.biomage.AuditAndSecurity.AuditAndSecurity_package.class);
745             this.put("HigherLevelAnalysis_package",
746                 org.biomage.HigherLevelAnalysis.HigherLevelAnalysis_package.class);
747             this.put("DesignElement_package",
748                 org.biomage.DesignElement.DesignElement_package.class);
749             this.put("ArrayDesign_package",
750                 org.biomage.ArrayDesign.ArrayDesign_package.class);
751             this.put("BioMaterial_package",
752                 org.biomage.BioMaterial.BioMaterial_package.class);
753             this.put("HasArray",
754                 org.biomage.Interface.HasArray.class);
755             this.put("HasArrayManufactureDeviations",
756                 org.biomage.Interface.HasArrayManufactureDeviations.class);
757             this.put("HasFeatureLocation",
758                 org.biomage.Interface.HasFeatureLocation.class);
759             this.put("HasScale",
760                 org.biomage.Interface.HasScale.class);
761             this.put("HasContacts",
762                 org.biomage.Interface.HasContacts.class);
763             this.put("HasFactorValues",
764                 org.biomage.Interface.HasFactorValues.class);
765             this.put("HasBioAssay",
766                 org.biomage.Interface.HasBioAssay.class);
767             this.put("HasBioAssayCreation",
768                 org.biomage.Interface.HasBioAssayCreation.class);
769             this.put("HasBioAssays",
770                 org.biomage.Interface.HasBioAssays.class);
771             this.put("HasBioAssayTupleData",
772                 org.biomage.Interface.HasBioAssayTupleData.class);
773             this.put("HasFeatureShape",
774                 org.biomage.Interface.HasFeatureShape.class);
775             this.put("HasSeqFeatures",
776                 org.biomage.Interface.HasSeqFeatures.class);
777             this.put("HasPhysicalBioAssay",
778                 org.biomage.Interface.HasPhysicalBioAssay.class);
779             this.put("HasMeasurement",
780                 org.biomage.Interface.HasMeasurement.class);
781             this.put("HasControlFeatures",
782                 org.biomage.Interface.HasControlFeatures.class);
783             this.put("HasBibliographicReferences",
784                 org.biomage.Interface.HasBibliographicReferences.class);
785             this.put("HasSourcesQuantitationType",
786                 org.biomage.Interface.HasSourcesQuantitationType.class);
787             this.put("HasBioAssayFactorValues",
788                 org.biomage.Interface.HasBioAssayFactorValues.class);
789             this.put("HasClusterBioAssayData",
790                 org.biomage.Interface.HasClusterBioAssayData.class);
791             this.put("HasSecurity",
792                 org.biomage.Interface.HasSecurity.class);
793             this.put("HasSubregions",
794                 org.biomage.Interface.HasSubregions.class);
795             this.put("HasFeatures",
796                 org.biomage.Interface.HasFeatures.class);
797             this.put("HasNodeContents",
798                 org.biomage.Interface.HasNodeContents.class);
799             this.put("HasType",
800                 org.biomage.Interface.HasType.class);
801             this.put("HasQuantitationTypeMapping",
802                 org.biomage.Interface.HasQuantitationTypeMapping.class);
803             this.put("HasAdjustments",
804                 org.biomage.Interface.HasAdjustments.class);
805             this.put("HasHardwareApplications",
806                 org.biomage.Interface.HasHardwareApplications.class);
807             this.put("HasQuantitationDimension",
808                 org.biomage.Interface.HasQuantitationDimension.class);
809             this.put("HasComponentCompounds",
810                 org.biomage.Interface.HasComponentCompounds.class);
811             this.put("HasParent",
812                 org.biomage.Interface.HasParent.class);
813             this.put("HasImmobilizedCharacteristics",
814                 org.biomage.Interface.HasImmobilizedCharacteristics.class);
815             this.put("HasBioAssayDataSources",
816                 org.biomage.Interface.HasBioAssayDataSources.class);
817             this.put("HasPosition",
818                 org.biomage.Interface.HasPosition.class);
819             this.put("HasFeatureGroup",
820                 org.biomage.Interface.HasFeatureGroup.class);
821             this.put("HasMeasuredBioAssayTarget",
822                 org.biomage.Interface.HasMeasuredBioAssayTarget.class);
823             this.put("HasDesignElementDimension",
824                 org.biomage.Interface.HasDesignElementDimension.class);
825             this.put("HasArrayGroup",
826                 org.biomage.Interface.HasArrayGroup.class);
827             this.put("HasDesignElementMaps",
828                 org.biomage.Interface.HasDesignElementMaps.class);
829             this.put("HasBioAssayDimension",
830                 org.biomage.Interface.HasBioAssayDimension.class);
831             this.put("HasQualityControlStatistics",
832                 org.biomage.Interface.HasQualityControlStatistics.class);
833             this.put("HasZoneGroups",
834                 org.biomage.Interface.HasZoneGroups.class);
835             this.put("HasNormalizationDescription",
836                 org.biomage.Interface.HasNormalizationDescription.class);
837             this.put("HasWriteGroups",
838                 org.biomage.Interface.HasWriteGroups.class);
839             this.put("HasZoneLocations",
840                 org.biomage.Interface.HasZoneLocations.class);
841             this.put("HasExperimentDesign",
842                 org.biomage.Interface.HasExperimentDesign.class);
843             this.put("HasPositionDelta",
844                 org.biomage.Interface.HasPositionDelta.class);
845             this.put("HasDistanceUnit",
846                 org.biomage.Interface.HasDistanceUnit.class);
847             this.put("HasQuantitationTypeMaps",
848                 org.biomage.Interface.HasQuantitationTypeMaps.class);
849             this.put("HasDerivedBioAssayDataTarget",
850                 org.biomage.Interface.HasDerivedBioAssayDataTarget.class);
851             this.put("HasReplicateDescription",
852                 org.biomage.Interface.HasReplicateDescription.class);
853             this.put("HasSurfaceType",
854                 org.biomage.Interface.HasSurfaceType.class);
855             this.put("HasTargetQuantitationType",
856                 org.biomage.Interface.HasTargetQuantitationType.class);
857             this.put("HasPhysicalBioAssayData",
858                 org.biomage.Interface.HasPhysicalBioAssayData.class);
859             this.put("HasTarget",
860                 org.biomage.Interface.HasTarget.class);
861             this.put("HasDesignProviders",
862                 org.biomage.Interface.HasDesignProviders.class);
863             this.put("HasMismatchInformation",
864                 org.biomage.Interface.HasMismatchInformation.class);
865             this.put("HasFailTypes",
866                 org.biomage.Interface.HasFailTypes.class);
867             this.put("HasAnalysisResults",
868                 org.biomage.Interface.HasAnalysisResults.class);
869             this.put("HasDataType",
870                 org.biomage.Interface.HasDataType.class);
871             this.put("HasBiologicalCharacteristics",
872                 org.biomage.Interface.HasBiologicalCharacteristics.class);
873             this.put("HasPhysicalBioAssaySource",
874                 org.biomage.Interface.HasPhysicalBioAssaySource.class);
875             this.put("HasArrayDesign",
876                 org.biomage.Interface.HasArrayDesign.class);
877             this.put("HasMaterialType",
878                 org.biomage.Interface.HasMaterialType.class);
879             this.put("HasCategory",
880                 org.biomage.Interface.HasCategory.class);
881             this.put("HasCoordinate",
882                 org.biomage.Interface.HasCoordinate.class);
883             this.put("HasImages",
884                 org.biomage.Interface.HasImages.class);
885             this.put("HasCompositeCompositeMaps",
886                 org.biomage.Interface.HasCompositeCompositeMaps.class);
887             this.put("HasDescriptions",
888                 org.biomage.Interface.HasDescriptions.class);
889             this.put("HasSourceBioAssays",
890                 org.biomage.Interface.HasSourceBioAssays.class);
891             this.put("HasHardware",
892                 org.biomage.Interface.HasHardware.class);
893             this.put("HasSubstrateType",
894                 org.biomage.Interface.HasSubstrateType.class);
895             this.put("HasTechnologyType",
896                 org.biomage.Interface.HasTechnologyType.class);
897             this.put("HasPerformers",
898                 org.biomage.Interface.HasPerformers.class);
899             this.put("HasDerivedBioAssayData",
900                 org.biomage.Interface.HasDerivedBioAssayData.class);
901             this.put("HasDatabaseReferences",
902                 org.biomage.Interface.HasDatabaseReferences.class);
903             this.put("HasReporter",
904                 org.biomage.Interface.HasReporter.class);
905             this.put("HasQuantitationType",
906                 org.biomage.Interface.HasQuantitationType.class);
907             this.put("HasTopLevelBioAssays",
908                 org.biomage.Interface.HasTopLevelBioAssays.class);
909             this.put("HasContainedFeatures",
910                 org.biomage.Interface.HasContainedFeatures.class);
911             this.put("HasBioMaterial",
912                 org.biomage.Interface.HasBioMaterial.class);
913             this.put("HasProtocolApplications",
914                 org.biomage.Interface.HasProtocolApplications.class);
915             this.put("HasPerformer",
916                 org.biomage.Interface.HasPerformer.class);
917             this.put("HasExperimentalFactor",
918                 org.biomage.Interface.HasExperimentalFactor.class);
919             this.put("HasParameterTypes",
920                 org.biomage.Interface.HasParameterTypes.class);
921             this.put("HasChannels",
922                 org.biomage.Interface.HasChannels.class);
923             this.put("HasOntologyEntries",
924                 org.biomage.Interface.HasOntologyEntries.class);
925             this.put("HasExternalReference",
926                 org.biomage.Interface.HasExternalReference.class);
927             this.put("HasFeatureDefects",
928                 org.biomage.Interface.HasFeatureDefects.class);
929             this.put("HasDefectType",
930                 org.biomage.Interface.HasDefectType.class);
931             this.put("HasQualityControlDescription",
932                 org.biomage.Interface.HasQualityControlDescription.class);
933             this.put("HasBioAssayMapping",
934                 org.biomage.Interface.HasBioAssayMapping.class);
935             this.put("HasRoles",
936                 org.biomage.Interface.HasRoles.class);
937             this.put("HasCompositePositionSources",
938                 org.biomage.Interface.HasCompositePositionSources.class);
939             this.put("HasOntologyReference",
940                 org.biomage.Interface.HasOntologyReference.class);
941             this.put("HasBioAssayMapTarget",
942                 org.biomage.Interface.HasBioAssayMapTarget.class);
943             this.put("HasSpecies",
944                 org.biomage.Interface.HasSpecies.class);
945             this.put("HasCompositeGroups",
946                 org.biomage.Interface.HasCompositeGroups.class);
947             this.put("HasPropertySets",
948                 org.biomage.Interface.HasPropertySets.class);
949             this.put("HasHardwareManufacturers",
950                 org.biomage.Interface.HasHardwareManufacturers.class);
951             this.put("HasCharacteristics",
952                 org.biomage.Interface.HasCharacteristics.class);
953             this.put("HasControlType",
954                 org.biomage.Interface.HasControlType.class);
955             this.put("HasOwner",
956                 org.biomage.Interface.HasOwner.class);
957             this.put("HasQuantitationTypes",
958                 org.biomage.Interface.HasQuantitationTypes.class);
959             this.put("HasReporters",
960                 org.biomage.Interface.HasReporters.class);
961             this.put("HasNodes",
962                 org.biomage.Interface.HasNodes.class);
963             this.put("HasProducerTransformation",
964                 org.biomage.Interface.HasProducerTransformation.class);
965             this.put("HasReporterPositionSources",
966                 org.biomage.Interface.HasReporterPositionSources.class);
967             this.put("HasFeatureReporterMaps",
968                 org.biomage.Interface.HasFeatureReporterMaps.class);
969             this.put("HasFeatureLIMSs",
970                 org.biomage.Interface.HasFeatureLIMSs.class);
971             this.put("HasArrays",
972                 org.biomage.Interface.HasArrays.class);
973             this.put("HasSoftwares",
974                 org.biomage.Interface.HasSoftwares.class);
975             this.put("HasInformation",
976                 org.biomage.Interface.HasInformation.class);
977             this.put("HasParameterValues",
978                 org.biomage.Interface.HasParameterValues.class);
979             this.put("HasAction",
980                 org.biomage.Interface.HasAction.class);
981             this.put("HasActionMeasurement",
982                 org.biomage.Interface.HasActionMeasurement.class);
983             this.put("HasAnnotations",
984                 org.biomage.Interface.HasAnnotations.class);
985             this.put("HasMerckIndex",
986                 org.biomage.Interface.HasMerckIndex.class);
987             this.put("HasProviders",
988                 org.biomage.Interface.HasProviders.class);
989             this.put("HasBioAssayTreatments",
990                 org.biomage.Interface.HasBioAssayTreatments.class);
991             this.put("HasZone",
992                 org.biomage.Interface.HasZone.class);
993             this.put("HasCompound",
994                 org.biomage.Interface.HasCompound.class);
995             this.put("HasSoftware",
996                 org.biomage.Interface.HasSoftware.class);
997             this.put("HasMembers",
998                 org.biomage.Interface.HasMembers.class);
999             this.put("HasSequenceDatabases",
1000                org.biomage.Interface.HasSequenceDatabases.class);
1001            this.put("HasBioDataValues",
1002                org.biomage.Interface.HasBioDataValues.class);
1003            this.put("HasBioAssayData",
1004                org.biomage.Interface.HasBioAssayData.class);
1005            this.put("HasNodeValue",