/* Copyright (c) 2009 The Regents of the University of California. All rights reserved. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.. */ package org.clothocad.hibernate.data; // Generated Jun 1, 2010 8:47:54 PM by Hibernate Tools 3.2.1.GA import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.Date; import java.util.HashSet; import java.util.Set; import org.clothocore.api.data.ObjBase; import org.clothocore.api.data.ObjBase.ObjBaseDatum; import org.clothocore.api.data.ObjType; import org.clothocore.api.data.Part; import org.clothocore.api.data.Part.PartDatum; import org.clothocad.hibernate.hibernateDatum; /** * PartTable generated by hbm2java */ public class PartTable implements java.io.Serializable, hibernateDatum { public PartTable( Part p ) { this.idPart = p.getUUID(); this.name = p.getName(); this.dateCreated = p.getDateCreated(); this.lastModified = p.getLastModified(); this.description = p.getShortDescription(); this.hash = p.getHash(); this.riskGroup = p.getRiskGroup(); this.formatTable = new FormatTable( p.getFormat().getUUID() ); this.personTable = new PersonTable( p.getAuthor().getUUID() ); //If it's a composite Part generate CompositeXRef lines for each if ( !p.getPartType().equals( Part.partType.Composite ) ) { this.nucseqTable = new NucseqTable( p.getSeq().getUUID() ); this.isBasic = 0; } else { this.isBasic = 1; } } @Override public ObjBase getObject() { Part.PartDatum d = (PartDatum) getObjBaseDatum(); Part p = new Part( d ); if ( p.getPartType().equals( Part.partType.Composite ) ) { ArrayList<CompositeXref> sortedParts = new ArrayList<CompositeXref>(); sortedParts.addAll( compositeXrefsForChildPart ); Comparator xrefComp = new Comparator() { @Override public int compare( Object o1, Object o2 ) { CompositeXref c1 = (CompositeXref) o1; CompositeXref c2 = (CompositeXref) o2; return c1.getPosition().compareTo( c2.getPosition() ); } }; Collections.sort( sortedParts, xrefComp ); ArrayList<String> comp = new ArrayList<String>( compositeXrefsForChildPart.size() ); for ( CompositeXref cx : sortedParts ) { String uuid = cx.getPartTableByParentPart().getUUID(); comp.add( uuid ); } p.setComposition( comp ); // Should this be public? } return p; } @Override public void runSecondaryProcessing(ObjBase obj) { } @Override public boolean needsSecondaryProcessing() { return false; } @Override public ObjBaseDatum getObjBaseDatum() { String seqid = null; if ( !(isBasic > 0) ) { seqid = this.getNucseqTable().getIdNucseq(); } Part.PartDatum d = new Part.PartDatum(); d.uuid = idPart; d.name = name; d.dateCreated = dateCreated; d.lastModified = lastModified; d._shortdescription = description; d._hash = hash; d._riskGroup = riskGroup; d._formatUUID = formatTable.getIdformat(); d._authorUUID = personTable.getIdPerson(); d._seqID = seqid; if ( isBasic == 0 ) { d._partType = Part.partType.Basic; } else { d._partType = Part.partType.Composite; } return d; } @Override public String getUUID() { return idPart; } public void updateWithPartData( Part p ) { System.out.println( "*****UPDATING EXISTING PART*****" ); this.idPart = p.getUUID(); this.name = p.getName(); this.dateCreated = p.getDateCreated(); this.lastModified = p.getLastModified(); this.description = p.getShortDescription(); this.hash = p.getHash(); this.riskGroup = (short) p.getRiskGroup(); this.formatTable = new FormatTable( p.getFormat().getUUID() ); this.personTable = new PersonTable( p.getAuthor().getUUID() ); ArrayList<String> composition = p.getComposition(); for ( String uuid : composition ) { System.out.println( uuid ); } for ( CompositeXref xref : compositeXrefsForChildPart ) { } } public static String translate( Enum field ) { if ( field.getDeclaringClass() != Part.Fields.class ) { return null; } Part.Fields f = (Part.Fields) field; switch ( f ) { case NAME: return "name"; case DATE_CREATED: return "dateCreated"; case LAST_MODIFIED: return "lastModified"; case RISK_GROUP: return "riskGroup"; case HASH: return "hash"; case AUTHOR: return "personTable"; case FORMAT: return "formatTable"; case DESCRIPTION: return "description"; case SEQUENCE: return "nucseqTable"; case PLASMIDS: return "plasmidTables"; default: return null; } } public static ObjType getType(Enum field) { if ( field.getDeclaringClass() != Part.Fields.class ) { return null; } Part.Fields f = (Part.Fields) field; switch(f) { case AUTHOR: return ObjType.PERSON; case SEQUENCE: return ObjType.NUCSEQ; case FORMAT: return ObjType.FORMAT; case PLASMIDS: return ObjType.PLASMID; default: return null; } } /***** AUTO-GENERATED POJO CODE *****/ private String idPart; private PersonTable personTable; private FormatTable formatTable; private NucseqTable nucseqTable; private String description; private String name; private Short riskGroup; private Date dateCreated; private Date lastModified; private String hash; private Byte isBasic; private Set partGrammarXrefs = new HashSet( 0 ); private Set plasmidTables = new HashSet( 0 ); private Set<CompositeXref> compositeXrefsForParentPart = new HashSet<CompositeXref>( 0 ); private Set<CompositeXref> compositeXrefsForChildPart = new HashSet<CompositeXref>( 0 ); public PartTable() { } public PartTable( String idPart ) { this.idPart = idPart; } public PartTable( String idPart, PersonTable personTable, FormatTable formatTable, NucseqTable nucseqTable, String description, String name, Short riskGroup, Date dateCreated, Date lastModified, String hash, Byte isBasic, Set partGrammarXrefs, Set plasmidTables, Set compositeXrefsForParentPart, Set compositeXrefsForChildPart ) { this.idPart = idPart; this.personTable = personTable; this.formatTable = formatTable; this.nucseqTable = nucseqTable; this.description = description; this.name = name; this.riskGroup = riskGroup; this.dateCreated = dateCreated; this.lastModified = lastModified; this.hash = hash; this.isBasic = isBasic; this.partGrammarXrefs = partGrammarXrefs; this.plasmidTables = plasmidTables; this.compositeXrefsForParentPart = compositeXrefsForParentPart; this.compositeXrefsForChildPart = compositeXrefsForChildPart; } public String getIdPart() { return this.idPart; } public void setIdPart( String idPart ) { this.idPart = idPart; } public PersonTable getPersonTable() { return this.personTable; } public void setPersonTable( PersonTable personTable ) { this.personTable = personTable; } public FormatTable getFormatTable() { return this.formatTable; } public void setFormatTable( FormatTable formatTable ) { this.formatTable = formatTable; } public NucseqTable getNucseqTable() { return this.nucseqTable; } public void setNucseqTable( NucseqTable nucseqTable ) { this.nucseqTable = nucseqTable; } public String getDescription() { return this.description; } public void setDescription( String description ) { this.description = description; } public String getName() { return this.name; } public void setName( String name ) { this.name = name; } public Short getRiskGroup() { return this.riskGroup; } public void setRiskGroup( Short riskGroup ) { this.riskGroup = riskGroup; } public Date getDateCreated() { return this.dateCreated; } public void setDateCreated( Date dateCreated ) { this.dateCreated = dateCreated; } public Date getLastModified() { return this.lastModified; } public void setLastModified( Date lastModified ) { this.lastModified = lastModified; } public String getHash() { return this.hash; } public void setHash( String hash ) { this.hash = hash; } public Byte getIsBasic() { return this.isBasic; } public void setIsBasic( Byte isBasic ) { this.isBasic = isBasic; } public Set getPartGrammarXrefs() { return this.partGrammarXrefs; } public void setPartGrammarXrefs( Set partGrammarXrefs ) { this.partGrammarXrefs = partGrammarXrefs; } public Set getPlasmidTables() { return this.plasmidTables; } public void setPlasmidTables( Set plasmidTables ) { this.plasmidTables = plasmidTables; } public Set getCompositeXrefsForParentPart() { return this.compositeXrefsForParentPart; } public void setCompositeXrefsForParentPart( Set compositeXrefsForParentPart ) { this.compositeXrefsForParentPart = compositeXrefsForParentPart; } public Set getCompositeXrefsForChildPart() { return this.compositeXrefsForChildPart; } public void setCompositeXrefsForChildPart( Set compositeXrefsForChildPart ) { this.compositeXrefsForChildPart = compositeXrefsForChildPart; } }