Team:Freiburg software/Code/Sequence.java

/*    Copyright: synbiowave License: GPL Authors: Jörg Walossek Version: 0.1 DESCRIPTION: This class represents the internal used sequence format. This is only change over class and is build up very general to remain flexibel for different formats. */

package org.synbiowave.database;

import java.util.ArrayList;

import javax.jdo.annotations.IdGeneratorStrategy; import javax.jdo.annotations.IdentityType; import javax.jdo.annotations.PersistenceCapable; import javax.jdo.annotations.Persistent; import javax.jdo.annotations.PrimaryKey;

import com.google.appengine.api.datastore.Text; import com.google.wave.api.Annotation; import com.google.wave.api.Range;

// TODO: Auto-generated Javadoc /** * The Class Sequence. */ @PersistenceCapable(identityType = IdentityType.APPLICATION) public class Sequence { /** The id. */   @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) private Long id;

/** The author. */   @Persistent private String author;

/** The timestamp. */   @Persistent private Long timestamp; /** The wave id. */   @Persistent private ArrayList waveID; /** The wavelet id. */   @Persistent private ArrayList waveletID; /** The blip id. */   @Persistent private ArrayList blipID; /** The name. */   @Persistent private String name; /** The sequence. */   @Persistent(defaultFetchGroup="true") private Text sequence; /** The type. */   @Persistent private String type; /** The annotations. */   @Persistent private ArrayList annotations;

/** The plain. */   @Persistent(defaultFetchGroup="true") private Text plain; /**	 * Instantiates a new sequence. */	public Sequence{}

/**    * Instantiates a new sequence. *     * @param author the author * @param timestamp the timestamp * @param waveID the wave id    * @param waveletID the wavelet id     * @param blipID the blip id     * @param sequence the sequence * @param type the type */   public Sequence(String author,Long timestamp,String waveID,String waveletID,String blipID,String sequence,String type) { this.author=author; this.timestamp=timestamp; this.waveID=new ArrayList; this.waveID.add(waveID); this.waveletID=new ArrayList; this.waveletID.add(waveletID); this.blipID=new ArrayList; this.blipID.add(blipID); this.name=null; this.sequence=new Text(sequence); this.type=type; this.annotations=new ArrayList; this.plain=null;}

/**	 * Gets the id. * 	 * @return the id	 */ public Long getId{return id;} /**    * Gets the author. *     * @return the author */   public String getAuthor{return author;}

/**	 * Gets the timestamp. * 	 * @return the timestamp */	public Long getTimestamp{return timestamp;}

/**	 * Gets the wave id. * 	 * @return the wave id	 */ public ArrayList getWaveID{return waveID;}

/**	 * Gets the wavelet id. * 	 * @return the wavelet id	 */ public ArrayList getWaveletID{return waveletID;} /**	 * Gets the blip id. * 	 * @return the blip id	 */ public ArrayList getBlipID{return blipID;} /**	 * Gets the name. * 	 * @return the name */	public String getName{return name;}

/**	 * Gets the sequence. * 	 * @return the sequence */	public String getSequence{return sequence.getValue;} /**	 * Gets the type. * 	 * @return the type */	public String getType{return type;} /**	 * Gets the annotations. * 	 * @return the annotations */	public ArrayList getAnnotations{ ArrayList annotations=new ArrayList; for(String stringAnnotation:this.annotations){ String[] annotationParts=stringAnnotation.split("§"); annotations.add(new Annotation(annotationParts[0],annotationParts[1], new Range(Integer.parseInt(annotationParts[2]),Integer.parseInt(annotationParts[3]))));} return annotations;} /**	 * Gets the plain. * 	 * @return the plain */	public String getPlain{return plain.getValue;} /**	 * Sets the name. * 	 * @param name the new name */	public void setName(String name){this.name=name;} /**	 * Sets the sequence. * 	 * @param sequence the new sequence */	public void setSequence(String sequence){this.sequence=new Text(sequence);}

/**	 * Sets the type. * 	 * @param type the new type */	public void setType(String type){this.type=type;}

/**	 * Adds the annotation. * 	 * @param annotation the annotation */	public void addAnnotation(Annotation annotation){ String stringAnnotation= annotation.getName+"§"+annotation.getValue+"§"+annotation.getRange.getStart +"§"+annotation.getRange.getEnd; this.annotations.add(stringAnnotation);} /**	 * Sets the annotations. * 	 * @param annotations the new annotations */	public void setAnnotations(ArrayList annotations){ String stringAnnotation; for(Annotation annotation:annotations){ stringAnnotation= annotation.getName+"§"+annotation.getValue+"§"+annotation.getRange.getStart +"§"+annotation.getRange.getEnd; this.annotations.add(stringAnnotation);}}

/**	 * Sets the plain. * 	 * @param plain the new plain */	public void setPlain(String plain){this.plain=new Text(plain);} }