⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 annotation.java

📁 实现了基因组的显示功能
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package org.csbl.genome.model;

import java.io.StringReader;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.SortedMap;
import java.util.TreeMap;

import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamReader;

/**
 * @hibernate.class table="Annotation"
 * 
 */
public class Annotation extends TraceableBaseObject{

	Long id;
	Locus locus; 
	String definition;
	String accessionNumber;
	String version;
    String GINumber;
	String keywords;
	SourceOrganism source;
	List<Reference> references;
	List<Feature> features;
	List<Pathway> pathways;
	
	long length;
	
	SortedMap<Long,Sequence> sequenceData;
	
	public Annotation() {
		
	}
	
	/**
	 * @hibernate.property
	 */
	public String getAccessionNumber() {
		return accessionNumber;
	}
	public void setAccessionNumber(String accessionNumber) {
		this.accessionNumber = accessionNumber;
	}
	
	/**
	 * @hibernate.property
	 * @return
	 */
	public String getDefinition() {
		return definition;
	}
	public void setDefinition(String definition) {
		this.definition = definition;
	}
	
	/**
	 * @return features list
	 * 
	 * @hibernate.bag name="features" lazy="false" cascade="all"
	 * @hibernate.key  column="annotation_id" not-null="true"
     * @hibernate.collection-one-to-many  class="org.csbl.genome.model.Feature" 
	 */
	public List<Feature> getFeatures() {
		return features;
	}
	public void setFeatures(List<Feature> features) {
		this.features = features;
	}
	/**
	 * @hibernate.property
	 * @return
	 */
	public String getGINumber() {
		return GINumber;
	}
	public void setGINumber(String number) {
		GINumber = number;
	}
	
	/**
	 * @return the id
	 * @hibernate.id column="id"
     *  generator-class="native" unsaved-value="null"
	 */
	public Long getId() {
		return id;
	}
	
	/**
	 * @hibernate.property
	 * @return
	 */
	public String getKeywords() {
		return keywords;
	}
	
	public void setKeywords(String keywords) {
		this.keywords = keywords;
	}
	
	public Locus getLocus() {
		return locus;
	}
	public void setLocus(Locus locus) {
		this.locus = locus;
	}
	public List<Reference> getReferences() {
		return references;
	}
	public void setReferences(List<Reference> references) {
		this.references = references;
	}
	public SourceOrganism getSource() {
		return source;
	}
	public void setSource(SourceOrganism source) {
		this.source = source;
	}
	
	/**
	 * @hibernate.property
	 * @return
	 */
	public String getVersion() {
		return version;
	}
	public void setVersion(String version) {
		this.version = version;
	}
	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return definition;
	}
	@Override
	public boolean equals(Object o) {
		boolean equal = false;
		if (o instanceof Annotation) {
			if (((Annotation)o).id.equals(this.id)) {
				equal = true;
			}
		}
		return equal;
	}
	@Override
	public int hashCode() {
		// TODO Auto-generated method stub
		return id.hashCode();
	}
	public void setId(Long id) {
		this.id = id;
	}
	
	/**
	 * @hibernate.property
	 * @return
	 */
	public long getLength() {
		return length;
	}
	public void setLength(long length) {
		this.length = length;
	}

	/**
	 * @hibernate.map name="sequence" lazy="true" cascade="all" sort="natural"
	 * @hibernate.key column="annotation_id" not-null="true"
     * @hibernate.one-to-many  class="org.csbl.genome.model.Sequence"
     * @hibernate.map-key formula="start" type="long"
	 * @return
	 */
	public SortedMap<Long, Sequence> getSequenceData() {
		return sequenceData;
	}

	public void setSequenceData(SortedMap<Long, Sequence> sequenceData) {
		this.sequenceData = sequenceData;
	}
	
//	public String toXml() {
//		//TODO implement it using XStream
//		
//		StringBuffer buffer = new StringBuffer();
//		buffer.append("<annotation id=\"" + id + "\" definition=\"" + definition + "\" length=\"" + length + "\">");
//		/*buffer.append("<sequenceData>");
//		Iterator itr = sequenceData.values().iterator();
//		int i=0;
//		while(itr.hasNext()) {
//			Sequence s = (Sequence)itr.next();
//			buffer.append ("<line index=\"" + i + "\">");
//			buffer.append (s.getBases());
//			buffer.append ("</line>");
//			i++;
//		}
//		buffer.append("</sequenceData>");*/
//	/*	buffer.append ("<features>");
//		if (features != null) {
//			for (Iterator iter = features.iterator(); iter.hasNext();) {
//				Feature f = (Feature) iter.next();
//				buffer.append ("<feature id=\"" + f.getId() + "\" name=\"" + f.getName() + "\" type=\"" + f.getType() + "\" frame=\"" + f.frame + "\" complement=\"" + f.isComplement() + "\">");
//				buffer.append ("<location>");
//				Location l = f.getLocation();
//				if (l != null && l.getRangeList() != null) {
//					for (Iterator iterator = l.getRangeList().iterator(); iterator
//							.hasNext();) {
//						Range r = (Range) iterator.next();
//						buffer.append("<range start=\"" + r.getStart() + "\" end=\"" + r.getEnd() + "\"/>");
//					}
//				}
//				buffer.append ("</location>");
//				buffer.append ("</feature>");
//				
//			}
//		}
//		buffer.append ("</features>");*/
//		buffer.append("<sequenceData>");
//		if(sequenceData != null)
//		{
//			Iterator itr =  sequenceData.keySet().iterator();
//			while(itr.hasNext()) {
//				Long i = (Long)itr.next();
//				Sequence s = (Sequence)sequenceData.get(i);
////				buffer.append ("<line index=\"" + i + "\">");
////				buffer.append (s.getBases());
////				buffer.append ("</line>");
//				s.getBases();
//			
//			}
//		}
//		
////		Iterator itr = sequenceData.values().iterator();
////		int i=1;
////		while(itr.hasNext()) {
////			Sequence s = (Sequence)itr.next();
////			buffer.append ("<line index=\"" + i + "\">");
////			buffer.append (s.getBases());
////			buffer.append ("</line>");
////			i=i+s.getBases().length();
////		}
//		buffer.append("</sequenceData>");
//		buffer.append ("<features>");
//		if (features != null) {
//			for (Iterator iter = features.iterator(); iter.hasNext();) {
//				Feature f = (Feature) iter.next();
//				buffer.append ("<feature id=\"" + f.getId() + "\" name=\"" + f.getName() + "\" type=\"" + f.getType() + "\" frame=\"" + f.frame + "\" complement=\"" + f.isComplement() + "\">");
//				buffer.append ("<location>");
//				Location l = f.getLocation();
//				if (l != null && l.getRangeList() != null) {
//					for (Iterator iterator = l.getRangeList().iterator(); iterator
//							.hasNext();) {
//						Range r = (Range) iterator.next();
//						buffer.append("<range start=\"" + r.getStart() + "\" end=\"" + r.getEnd() + "\"/>");
//					}
//				}
//				buffer.append ("</location>");
//				//protein sequence
//				buffer.append("<proteinSequence>");
//				Map<Long, ProteinSequence> proteinSequence = f.getProteinSequence();
//				if(proteinSequence!= null && proteinSequence.size()!=0)
//				{
//					Iterator itr =  proteinSequence.keySet().iterator();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -