From 0e28032019904db03c7ded2ea20537899e0bf89b Mon Sep 17 00:00:00 2001 From: Hector Plahar Date: Mon, 24 Nov 2014 14:48:40 -0800 Subject: [PATCH 01/63] removing unused/deprecated classes and methods --- pom.xml | 5 - .../java/org/jbei/ice/lib/dao/DAOFactory.java | 21 -- .../ice/lib/dao/hibernate/BulkUploadDAO.java | 10 - .../jbei/ice/lib/dao/hibernate/NewsDAO.java | 36 ---- .../ice/lib/dao/hibernate/ProjectDAO.java | 121 ----------- .../model/EntryAssemblyRelationship.java | 84 -------- .../lib/entry/sequence/ByteArrayWrapper.java | 3 + .../sequence/SequenceAnalysisController.java | 39 ---- .../composers/formatters/IFormatter.java | 3 +- .../ice/lib/models/AssemblyRelationship.java | 76 ------- src/main/java/org/jbei/ice/lib/news/News.java | 109 ---------- .../org/jbei/ice/lib/news/NewsController.java | 46 ---- .../jbei/ice/lib/utils/IAssemblyUtils.java | 64 ------ .../jbei/ice/lib/utils/RawAssemblyUtils.java | 125 ----------- .../ice/lib/utils/SerializationUtils.java | 111 ---------- .../ice/lib/utils/TraceAlignmentHelper.java | 198 ------------------ .../java/org/jbei/ice/lib/vo/Project.java | 96 --------- .../jbei/ice/lib/vo/SequenceCheckerData.java | 32 --- .../ice/lib/vo/SequenceCheckerProject.java | 39 ---- .../jbei/ice/lib/vo/SequenceTraceFile.java | 57 ----- .../java/org/jbei/ice/lib/vo/TraceData.java | 124 ----------- .../jbei/ice/lib/vo/VectorEditorProject.java | 38 ---- src/main/resources/hibernate.cfg.xml | 4 - src/main/resources/mock_hibernate.cfg.xml | 4 - 24 files changed, 4 insertions(+), 1441 deletions(-) delete mode 100755 src/main/java/org/jbei/ice/lib/dao/hibernate/NewsDAO.java delete mode 100755 src/main/java/org/jbei/ice/lib/dao/hibernate/ProjectDAO.java delete mode 100755 src/main/java/org/jbei/ice/lib/entry/model/EntryAssemblyRelationship.java delete mode 100755 src/main/java/org/jbei/ice/lib/models/AssemblyRelationship.java delete mode 100755 src/main/java/org/jbei/ice/lib/news/News.java delete mode 100755 src/main/java/org/jbei/ice/lib/news/NewsController.java delete mode 100755 src/main/java/org/jbei/ice/lib/utils/IAssemblyUtils.java delete mode 100755 src/main/java/org/jbei/ice/lib/utils/RawAssemblyUtils.java delete mode 100755 src/main/java/org/jbei/ice/lib/utils/SerializationUtils.java delete mode 100755 src/main/java/org/jbei/ice/lib/utils/TraceAlignmentHelper.java delete mode 100755 src/main/java/org/jbei/ice/lib/vo/Project.java delete mode 100755 src/main/java/org/jbei/ice/lib/vo/SequenceCheckerData.java delete mode 100755 src/main/java/org/jbei/ice/lib/vo/SequenceCheckerProject.java delete mode 100755 src/main/java/org/jbei/ice/lib/vo/SequenceTraceFile.java delete mode 100755 src/main/java/org/jbei/ice/lib/vo/TraceData.java delete mode 100755 src/main/java/org/jbei/ice/lib/vo/VectorEditorProject.java diff --git a/pom.xml b/pom.xml index bd77c1b0c..001a63f05 100755 --- a/pom.xml +++ b/pom.xml @@ -102,11 +102,6 @@ lang 2.1.0 - - commons-codec - commons-codec - 1.6 - org.apache.commons commons-email diff --git a/src/main/java/org/jbei/ice/lib/dao/DAOFactory.java b/src/main/java/org/jbei/ice/lib/dao/DAOFactory.java index d0cc557a5..f7032d86a 100644 --- a/src/main/java/org/jbei/ice/lib/dao/DAOFactory.java +++ b/src/main/java/org/jbei/ice/lib/dao/DAOFactory.java @@ -17,14 +17,11 @@ public class DAOFactory { private static FolderDAO folderDAO; private static GroupDAO groupDAO; private static MessageDAO messageDAO; - private static NewsDAO newsDAO; private static PermissionDAO permissionDAO; private static PreferencesDAO preferencesDAO; - private static ProjectDAO projectDAO; private static RemotePartnerDAO remotePartnerDAO; private static RequestDAO requestDAO; private static SampleDAO sampleDAO; - private static SearchDAO searchDAO; private static SequenceDAO sequenceDAO; private static StorageDAO storageDAO; private static TraceSequenceDAO traceSequenceDAO; @@ -98,12 +95,6 @@ public static MessageDAO getMessageDAO() { return messageDAO; } - public static NewsDAO getNewsDAO() { - if (newsDAO == null) - newsDAO = new NewsDAO(); - return newsDAO; - } - public static PermissionDAO getPermissionDAO() { if (permissionDAO == null) permissionDAO = new PermissionDAO(); @@ -116,12 +107,6 @@ public static PreferencesDAO getPreferencesDAO() { return preferencesDAO; } - public static ProjectDAO getProjectDAO() { - if (projectDAO == null) - projectDAO = new ProjectDAO(); - return projectDAO; - } - public static RemotePartnerDAO getRemotePartnerDAO() { if (remotePartnerDAO == null) remotePartnerDAO = new RemotePartnerDAO(); @@ -140,12 +125,6 @@ public static SampleDAO getSampleDAO() { return sampleDAO; } - public static SearchDAO getSearchDAO() { - if (searchDAO == null) - searchDAO = new SearchDAO(); - return searchDAO; - } - public static SequenceDAO getSequenceDAO() { if (sequenceDAO == null) sequenceDAO = new SequenceDAO(); diff --git a/src/main/java/org/jbei/ice/lib/dao/hibernate/BulkUploadDAO.java b/src/main/java/org/jbei/ice/lib/dao/hibernate/BulkUploadDAO.java index 817c56c61..80ad606bf 100755 --- a/src/main/java/org/jbei/ice/lib/dao/hibernate/BulkUploadDAO.java +++ b/src/main/java/org/jbei/ice/lib/dao/hibernate/BulkUploadDAO.java @@ -15,7 +15,6 @@ import org.hibernate.HibernateException; import org.hibernate.Query; import org.hibernate.Session; -import org.hibernate.criterion.Projections; import org.hibernate.criterion.Restrictions; /** @@ -44,15 +43,6 @@ public ArrayList retrieveByAccount(Account account) throws DAOExcept } } - public int getUploadEntryCount(long id) throws DAOException { - Number number = (Number) currentSession().createCriteria(BulkUpload.class) - .setProjection(Projections.countDistinct("id")) - .add(Restrictions.eq("id", id)) - .uniqueResult(); - - return number.intValue(); - } - @SuppressWarnings("unchecked") public ArrayList retrieveByStatus(BulkUploadStatus status) throws DAOException { Session session = currentSession(); diff --git a/src/main/java/org/jbei/ice/lib/dao/hibernate/NewsDAO.java b/src/main/java/org/jbei/ice/lib/dao/hibernate/NewsDAO.java deleted file mode 100755 index cb422b82b..000000000 --- a/src/main/java/org/jbei/ice/lib/dao/hibernate/NewsDAO.java +++ /dev/null @@ -1,36 +0,0 @@ -package org.jbei.ice.lib.dao.hibernate; - -import java.util.ArrayList; - -import org.jbei.ice.lib.dao.DAOException; -import org.jbei.ice.lib.news.News; - -import org.hibernate.HibernateException; -import org.hibernate.Query; -import org.hibernate.Session; - -/** - * DAO for managing {@link org.jbei.ice.lib.news.News} - * - * @author Hector Plahar - */ -public class NewsDAO extends HibernateRepository { - - public News get(long id) throws DAOException { - return super.get(News.class, id); - } - - @SuppressWarnings("unchecked") - public ArrayList retrieveAll() throws DAOException { - Session session = currentSession(); - try { - ArrayList results = new ArrayList(); - Query query = session.createQuery("from " + News.class.getName() + " order by creationTime DESC "); - results.addAll(query.list()); - return results; - - } catch (HibernateException e) { - throw new DAOException("Failed to retrieve news", e); - } - } -} diff --git a/src/main/java/org/jbei/ice/lib/dao/hibernate/ProjectDAO.java b/src/main/java/org/jbei/ice/lib/dao/hibernate/ProjectDAO.java deleted file mode 100755 index 0f1a9227f..000000000 --- a/src/main/java/org/jbei/ice/lib/dao/hibernate/ProjectDAO.java +++ /dev/null @@ -1,121 +0,0 @@ -package org.jbei.ice.lib.dao.hibernate; - -import java.util.ArrayList; -import java.util.List; - -import org.jbei.ice.lib.account.model.Account; -import org.jbei.ice.lib.dao.DAOException; -import org.jbei.ice.lib.models.Project; - -import org.hibernate.HibernateException; -import org.hibernate.Query; -import org.hibernate.Session; - -/** - * Manager to manipulate {@link Project} objects. - * - * @author Zinovii Dmytriv, Timothy Ham, Hector Plahar - */ -public class ProjectDAO extends HibernateRepository { - - /** - * Delete the given {@link Project} object in the database. - * - * @param project - * @throws DAOException - */ - public void deleteProject(Project project) throws DAOException { - if (project == null) { - throw new DAOException("Failed to delete null project!"); - } - - delete(project); - } - - /** - * Retrieve the {@link Project} by its id. - * - * - * - * @param id - * @return Project object. - * @throws DAOException - */ - public Project get(long id) throws DAOException { - Project project = null; - - Session session = currentSession(); - try { - Query query = session.createQuery("from " + Project.class.getName() + " where id = :id"); - query.setParameter("id", id); - Object queryResult = query.uniqueResult(); - - if (queryResult != null) { - project = (Project) queryResult; - } - } catch (HibernateException e) { - throw new DAOException("Failed to retrieve project by id: " + id, e); - } - - return project; - } - - /** - * Retrieve the {@link Project} by its uuid. - * - * @param uuid - * @return Project object. - * @throws DAOException - */ - public Project getByUUID(String uuid) throws DAOException { - Project project = null; - - Session session = currentSession(); - try { - Query query = session.createQuery("from " + Project.class.getName() + " where uuid = :uuid"); - query.setParameter("uuid", uuid); - Object queryResult = query.uniqueResult(); - - if (queryResult != null) { - project = (Project) queryResult; - } - } catch (HibernateException e) { - throw new DAOException("Failed to retrieve project by uuid: " + uuid, e); - } - - return project; - } - - /** - * Retrieve all {@link Project} objects associated with the given {@link Account}. - * - * @param account - * @return ArrayList of Projects. - * @throws DAOException - */ - @SuppressWarnings("rawtypes") - public ArrayList getByAccount(Account account) throws DAOException { - ArrayList projects = new ArrayList(); - - Session session = currentSession(); - try { - String queryString = "select id from " + Project.class.getName() - + " where account.id = :account_id ORDER BY modification_time DESC"; - - Query query = session.createQuery(queryString); - query.setParameter("account_id", account.getId()); - - List list = query.list(); - - if (list != null) { - for (int i = 0; i < list.size(); i++) { - projects.add(get((Integer) list.get(i))); - } - } - } catch (HibernateException e) { - throw new DAOException("Failed to retrieve projects by account: " + account.getFullName(), e); - } - - return projects; - } -} \ No newline at end of file diff --git a/src/main/java/org/jbei/ice/lib/entry/model/EntryAssemblyRelationship.java b/src/main/java/org/jbei/ice/lib/entry/model/EntryAssemblyRelationship.java deleted file mode 100755 index 97ca6a116..000000000 --- a/src/main/java/org/jbei/ice/lib/entry/model/EntryAssemblyRelationship.java +++ /dev/null @@ -1,84 +0,0 @@ -package org.jbei.ice.lib.entry.model; - -import javax.persistence.Entity; -import javax.persistence.FetchType; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.ManyToOne; -import javax.persistence.SequenceGenerator; -import javax.persistence.Table; - -import org.jbei.ice.lib.dao.IDataModel; -import org.jbei.ice.lib.dao.IDataTransferModel; -import org.jbei.ice.lib.models.AssemblyRelationship; - -/** - * Many-to-Many relationship table between two {@link Entry} and {@link org.jbei.ice.lib.models.AssemblyRelationship}. - *

- * For example, Part1 "is a subcomponent of" Part2 is represented as subject = Part1, object = - * Part2, and relationship = "sub component of". - * - * @author Timothy Ham, Zinovii Dmytriv - */ -@Entity -@Table(name = "entry_entry_assembly_relationship") -@SequenceGenerator(name = "sequence", sequenceName = "entry_entry_assembly_relationship_id_seq", allocationSize = 1) -public class EntryAssemblyRelationship implements IDataModel { - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.AUTO, generator = "sequence") - private long id; - - @ManyToOne(fetch = FetchType.EAGER) - @JoinColumn(name = "subject") - private Entry subject; - - @ManyToOne(fetch = FetchType.EAGER) - @JoinColumn(name = "object") - private Entry object; - - @ManyToOne(fetch = FetchType.EAGER) - @JoinColumn(name = "relationship") - private AssemblyRelationship relationship; - - public long getId() { - return id; - } - - public void setId(long id) { - this.id = id; - } - - public Entry getSubject() { - return subject; - } - - public void setSubject(Entry subject) { - this.subject = subject; - } - - public Entry getObject() { - return object; - } - - public void setObject(Entry object) { - this.object = object; - } - - public AssemblyRelationship getRelationship() { - return relationship; - } - - public void setRelationship(AssemblyRelationship relationship) { - this.relationship = relationship; - } - - @Override - public IDataTransferModel toDataTransferObject() { - return null; //To change body of implemented methods use File | Settings | File Templates. - } -} diff --git a/src/main/java/org/jbei/ice/lib/entry/sequence/ByteArrayWrapper.java b/src/main/java/org/jbei/ice/lib/entry/sequence/ByteArrayWrapper.java index 33834188e..b4c2a6dcc 100644 --- a/src/main/java/org/jbei/ice/lib/entry/sequence/ByteArrayWrapper.java +++ b/src/main/java/org/jbei/ice/lib/entry/sequence/ByteArrayWrapper.java @@ -1,6 +1,9 @@ package org.jbei.ice.lib.entry.sequence; /** + * Wrapper around an array of bytes representing file contents, + * and the name of the file. + * * @author Hector Plahar */ public class ByteArrayWrapper { diff --git a/src/main/java/org/jbei/ice/lib/entry/sequence/SequenceAnalysisController.java b/src/main/java/org/jbei/ice/lib/entry/sequence/SequenceAnalysisController.java index a1d79edd8..d3b6af7a9 100755 --- a/src/main/java/org/jbei/ice/lib/entry/sequence/SequenceAnalysisController.java +++ b/src/main/java/org/jbei/ice/lib/entry/sequence/SequenceAnalysisController.java @@ -1,8 +1,6 @@ package org.jbei.ice.lib.entry.sequence; import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; import java.io.InputStream; import java.nio.file.Paths; import java.util.Date; @@ -30,10 +28,8 @@ import org.jbei.ice.lib.search.blast.BlastException; import org.jbei.ice.lib.search.blast.BlastPlus; import org.jbei.ice.lib.search.blast.ProgramTookTooLongException; -import org.jbei.ice.lib.utils.SerializationUtils; import org.jbei.ice.lib.utils.Utils; import org.jbei.ice.lib.vo.DNASequence; -import org.jbei.ice.lib.vo.SequenceTraceFile; /** * ABI to manipulate DNA sequence trace analysis @@ -210,41 +206,6 @@ public File getFile(TraceSequence traceSequence) throws ControllerException { traceSequence.getFileId()).toFile(); } - /** - * Retrieve the {@link SequenceTraceFile} value object of the given TraceSequence. - * - * @param traceSequence - * @return SequenceTraceFile object - * @throws ControllerException - */ - public SequenceTraceFile getSequenceTraceFile(TraceSequence traceSequence) throws ControllerException { - if (traceSequence == null) { - return null; - } - - String base64Data; - File file = getFile(traceSequence); - byte[] bytes; - - try (FileInputStream fileStream = new FileInputStream(file)) { - bytes = new byte[(int) (file.length())]; - fileStream.read(bytes); - } catch (IOException e) { - throw new ControllerException(e); - } - - base64Data = SerializationUtils.serializeBytesToBase64String(bytes); - SequenceTraceFile result = new SequenceTraceFile(); - - result.setDepositorEmail(traceSequence.getDepositor()); - result.setFileId(traceSequence.getFileId()); - result.setFileName(traceSequence.getFilename()); - result.setTimeStamp(new Date()); - result.setBase64Data(base64Data); - - return result; - } - /** * Calculate sequence alignment between the given {@link TraceSequence} and {@link Sequence} * using bl2seq, and save the result into the database. diff --git a/src/main/java/org/jbei/ice/lib/entry/sequence/composers/formatters/IFormatter.java b/src/main/java/org/jbei/ice/lib/entry/sequence/composers/formatters/IFormatter.java index 228b13b8b..df7670dc3 100755 --- a/src/main/java/org/jbei/ice/lib/entry/sequence/composers/formatters/IFormatter.java +++ b/src/main/java/org/jbei/ice/lib/entry/sequence/composers/formatters/IFormatter.java @@ -20,6 +20,5 @@ public interface IFormatter { * @throws FormatterException * @throws IOException */ - void format(Sequence sequence, OutputStream outputStream) throws FormatterException, - IOException; + void format(Sequence sequence, OutputStream outputStream) throws FormatterException, IOException; } diff --git a/src/main/java/org/jbei/ice/lib/models/AssemblyRelationship.java b/src/main/java/org/jbei/ice/lib/models/AssemblyRelationship.java deleted file mode 100755 index 9d35eaacc..000000000 --- a/src/main/java/org/jbei/ice/lib/models/AssemblyRelationship.java +++ /dev/null @@ -1,76 +0,0 @@ -package org.jbei.ice.lib.models; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.SequenceGenerator; -import javax.persistence.Table; - -import org.jbei.ice.lib.dao.IDataModel; -import org.jbei.ice.lib.dao.IDataTransferModel; - -/** - * Represent the relationship as to how an {@link org.jbei.ice.lib.entry.model.Entry} relates to another. For example, - * "derived from" would be an AssemblyRelationship. - * - * @author Timothy Ham, Zinovii Dmytriv - */ -@Entity -@Table(name = "assembly_relationship") -@SequenceGenerator(name = "sequence", sequenceName = "assembly_relationship_id_seq", allocationSize = 1) -public class AssemblyRelationship implements IDataModel { - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.AUTO, generator = "sequence") - private long id; - - @Column(name = "name", length = 128) - private String name; - - @Column(name = "description", length = 1023) - private String description; - - @Column(name = "ontology", length = 128) - private String ontology; - - public long getId() { - return id; - } - - public void setId(long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public String getOntology() { - return ontology; - } - - public void setOntology(String ontology) { - this.ontology = ontology; - } - - @Override - public IDataTransferModel toDataTransferObject() { - return null; //To change body of implemented methods use File | Settings | File Templates. - } -} diff --git a/src/main/java/org/jbei/ice/lib/news/News.java b/src/main/java/org/jbei/ice/lib/news/News.java deleted file mode 100755 index f872e3a56..000000000 --- a/src/main/java/org/jbei/ice/lib/news/News.java +++ /dev/null @@ -1,109 +0,0 @@ -package org.jbei.ice.lib.news; - -import java.util.Date; -import javax.persistence.*; - -import org.jbei.ice.lib.dao.IDataModel; -import org.jbei.ice.lib.dao.IDataTransferModel; - -import org.hibernate.annotations.Type; - -/** - * Store information about a news item. - * - * @author Timothy Ham, Zinovii Dmytriv - */ -@Entity -@Table(name = "news") -@SequenceGenerator(name = "sequence", sequenceName = "news_id_seq", allocationSize = 1) -public class News implements IDataModel { - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.AUTO, generator = "sequence") - private long id; - - @Column(name = "is_published", nullable = false) - private int isPublished; - - @Column(name = "title", length = 255, nullable = false) - private String title; - - @Column(name = "body", nullable = false) - @Lob - @Type(type = "org.hibernate.type.TextType") - private String body; - - @Column(name = "creation_time") - @Temporal(TemporalType.TIMESTAMP) - private Date creationTime; - - @Column(name = "modification_time") - @Temporal(TemporalType.TIMESTAMP) - private Date modificationTime; - - @Column(name = "publication_time") - @Temporal(TemporalType.TIMESTAMP) - private Date publicationTime; - - public long getId() { - return id; - } - - public void setId(long id) { - this.id = id; - } - - public int getIsPublished() { - return isPublished; - } - - public void setIsPublished(int isPublished) { - this.isPublished = isPublished; - } - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public String getBody() { - return body; - } - - public void setBody(String body) { - this.body = body; - } - - public Date getCreationTime() { - return creationTime; - } - - public void setCreationTime(Date creationTime) { - this.creationTime = creationTime; - } - - public Date getModificationTime() { - return modificationTime; - } - - public void setModificationTime(Date modificationTime) { - this.modificationTime = modificationTime; - } - - public Date getPublicationTime() { - return publicationTime; - } - - public void setPublicationTime(Date publicationTime) { - this.publicationTime = publicationTime; - } - - @Override - public IDataTransferModel toDataTransferObject() { - return null; //To change body of implemented methods use File | Settings | File Templates. - } -} diff --git a/src/main/java/org/jbei/ice/lib/news/NewsController.java b/src/main/java/org/jbei/ice/lib/news/NewsController.java deleted file mode 100755 index d19cf3d0f..000000000 --- a/src/main/java/org/jbei/ice/lib/news/NewsController.java +++ /dev/null @@ -1,46 +0,0 @@ -package org.jbei.ice.lib.news; - -import java.util.ArrayList; -import java.util.Date; - -import org.jbei.ice.ControllerException; -import org.jbei.ice.lib.dao.DAOException; -import org.jbei.ice.lib.dao.DAOFactory; -import org.jbei.ice.lib.dao.hibernate.NewsDAO; - -/** - * @auther Hector Plahar - */ -public class NewsController { - private final NewsDAO dao; - - public NewsController() { - this.dao = DAOFactory.getNewsDAO(); - } - - public News update(News news) throws ControllerException { - news.setModificationTime(new Date(System.currentTimeMillis())); - try { - return dao.update(news); - } catch (DAOException e) { - throw new ControllerException(e); - } - } - - public News save(News news) throws ControllerException { - news.setCreationTime(new Date(System.currentTimeMillis())); - try { - return dao.create(news); - } catch (DAOException e) { - throw new ControllerException(e); - } - } - - public ArrayList retrieveAll() throws ControllerException { - try { - return dao.retrieveAll(); - } catch (DAOException e) { - throw new ControllerException(e); - } - } -} diff --git a/src/main/java/org/jbei/ice/lib/utils/IAssemblyUtils.java b/src/main/java/org/jbei/ice/lib/utils/IAssemblyUtils.java deleted file mode 100755 index f6ceb508c..000000000 --- a/src/main/java/org/jbei/ice/lib/utils/IAssemblyUtils.java +++ /dev/null @@ -1,64 +0,0 @@ -package org.jbei.ice.lib.utils; - -import org.jbei.ice.lib.entry.model.Part.AssemblyStandard; -import org.jbei.ice.lib.models.Sequence; - -/** - * Interface for for Biobrick Assembly. - * - * @author Timothy Ham - */ -public interface IAssemblyUtils { - - /** - * Determine the assembly standard of given sequence string. - * - * @param partSequenceString Sequence string to evaluate. - * @return {@link AssemblyStandard}. - * @throws UtilityException - */ - public AssemblyStandard determineAssemblyStandard(String partSequenceString) - throws UtilityException; - - /** - * Search for recognized assembly format features such as prefixes, suffixes and - * scars for a given {@link Sequence}. - * - * @param partSequence Sequence to evaluate. - * @return {@link SequenceFeatureCollection}. - * @throws UtilityException - */ - public SequenceFeatureCollection determineAssemblyFeatures(Sequence partSequence) - throws UtilityException; - - /** - * Automatically annotate the given {@link Sequence} for recognized assembly features, such as - * prefixes, suffixes and scars. - * - * @param partSequence Sequence to evaluate. - * @return Sequence with new annotations. - * @throws UtilityException - */ - public Sequence populateAssemblyFeatures(Sequence partSequence) throws UtilityException; - - /** - * Perform assembly join operations, calculating the correct prefix/suffix and/or scar - * sequences. - * - * @param part1 First part. - * @param part2 Second part. - * @return {@link Sequence} of the joined assembly. - * @throws UtilityException - */ - public Sequence join(Sequence part1, Sequence part2) throws UtilityException; - - /** - * Compare two {@link SequenceFeatureCollection}s to determine if they are equal. - * - * @param sequenceFeatures1 - * @param sequenceFeatures2 - * @return Joined sequence. - */ - public int compareAssemblyAnnotations(SequenceFeatureCollection sequenceFeatures1, - SequenceFeatureCollection sequenceFeatures2); -} diff --git a/src/main/java/org/jbei/ice/lib/utils/RawAssemblyUtils.java b/src/main/java/org/jbei/ice/lib/utils/RawAssemblyUtils.java deleted file mode 100755 index dce5272b4..000000000 --- a/src/main/java/org/jbei/ice/lib/utils/RawAssemblyUtils.java +++ /dev/null @@ -1,125 +0,0 @@ -package org.jbei.ice.lib.utils; - -import java.util.List; -import java.util.Set; - -import org.jbei.ice.lib.dao.DAOFactory; -import org.jbei.ice.lib.entry.model.Entry; -import org.jbei.ice.lib.entry.model.Part.AssemblyStandard; -import org.jbei.ice.lib.models.AnnotationLocation; -import org.jbei.ice.lib.models.Feature; -import org.jbei.ice.lib.models.Sequence; -import org.jbei.ice.lib.models.SequenceFeature; - -import org.apache.commons.lang.NotImplementedException; - -/** - * Assembly Utils for sequences without any assembly format. - * - * @author Timothy Ham, Zinovii Dmytriv - */ -public class RawAssemblyUtils implements IAssemblyUtils { - - @Override - public SequenceFeatureCollection determineAssemblyFeatures(Sequence partSequence) - throws UtilityException { - return determineRawAssemblyFeatures(partSequence); - } - - @Override - public AssemblyStandard determineAssemblyStandard(String partSequenceString) { - return AssemblyStandard.RAW; - } - - @Override - public Sequence populateAssemblyFeatures(Sequence partSequence) throws UtilityException { - SequenceFeatureCollection newSequenceFeatures = determineAssemblyFeatures(partSequence); - Set temp = partSequence.getSequenceFeatures(); - if (!(temp instanceof SequenceFeatureCollection)) { - throw new UtilityException("Not A SequenceFeatureCollection"); - } - SequenceFeatureCollection oldSequenceFeatures = (SequenceFeatureCollection) temp; - for (SequenceFeature newSequenceFeature : newSequenceFeatures) { - List foundOldSequenceFeatures = oldSequenceFeatures - .getBySequence(newSequenceFeature.getFeature().getSequence()); - if (foundOldSequenceFeatures.size() > 1) { - // multiple with same sequence. Remove them and replace with new feature - oldSequenceFeatures.removeAll(foundOldSequenceFeatures); - oldSequenceFeatures.add(newSequenceFeature); - } else if (foundOldSequenceFeatures.size() == 1) { - SequenceFeature foundOldSequenceFeature = foundOldSequenceFeatures.get(0); - if (!(foundOldSequenceFeature.getAnnotationType() == newSequenceFeature - .getAnnotationType())) { - oldSequenceFeatures.remove(foundOldSequenceFeature); - oldSequenceFeatures.add(newSequenceFeature); - } - } else if (foundOldSequenceFeatures.size() == 0) { - oldSequenceFeatures.add(newSequenceFeature); - } - } - - DAOFactory.getSequenceDAO().create(partSequence); - return partSequence; - } - - @Override - public Sequence join(Sequence part1, Sequence part2) throws UtilityException { - throw new NotImplementedException(); - } - - @Override - public int compareAssemblyAnnotations(SequenceFeatureCollection sequenceFeatures1, - SequenceFeatureCollection sequenceFeatures2) { - int result = 1; - if (sequenceFeatures1 == null || sequenceFeatures2 == null) { - return result; - } - SequenceFeature inner1 = null; - SequenceFeature inner2 = null; - List temp = sequenceFeatures1.get(SequenceFeature.AnnotationType.INNER); - if (temp.size() == 1) { - inner1 = temp.get(0); - } - - temp = sequenceFeatures2.get(SequenceFeature.AnnotationType.INNER); - if (temp.size() == 1) { - inner2 = temp.get(0); - } - - if (inner1 != null && inner2 != null) { - if (inner1.getSequence().getFwdHash().equals(inner2.getSequence().getFwdHash())) { - result = 0; - } - } - - return result; - } - - /** - * Assign the sequence itself as the inner feature. - * - * @param partSequence - * @return - */ - private SequenceFeatureCollection determineRawAssemblyFeatures(Sequence partSequence) { - SequenceFeatureCollection sequenceFeatures = new SequenceFeatureCollection(); - String partSequenceString = partSequence.getSequence(); - Entry part = partSequence.getEntry(); - String featureName = part.getRecordId(); // uuid of the given part - String featureIdentification = part.getRecordId(); - - Feature innerPartFeature = new Feature(featureName, featureIdentification, - partSequenceString, 0, "misc_feature"); - SequenceFeature sequenceFeature = new SequenceFeature(partSequence, innerPartFeature, +1, - innerPartFeature.getName(), - innerPartFeature.getGenbankType(), - SequenceFeature.AnnotationType.INNER); - sequenceFeature.getAnnotationLocations().add( - new AnnotationLocation(1, partSequenceString.length(), sequenceFeature)); - - sequenceFeatures.add(sequenceFeature); - - return sequenceFeatures; - } - -} diff --git a/src/main/java/org/jbei/ice/lib/utils/SerializationUtils.java b/src/main/java/org/jbei/ice/lib/utils/SerializationUtils.java deleted file mode 100755 index 29ab0cab2..000000000 --- a/src/main/java/org/jbei/ice/lib/utils/SerializationUtils.java +++ /dev/null @@ -1,111 +0,0 @@ -package org.jbei.ice.lib.utils; - -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; -import java.io.Serializable; - -import org.apache.commons.codec.binary.Base64; - -/** - * Utility methods for serialization/deserialization. - * - * @author Zinovii Dmytriv, Timothy Ham - */ -public class SerializationUtils { - /** - * Exception class for SerializationUtils. - * - * @author Zinovii Dmytriv - */ - public static class SerializationUtilsException extends Exception { - private static final long serialVersionUID = -6597529889622775652L; - - /** - * Default constructor. - */ - public SerializationUtilsException() { - super(); - } - - /** - * Constructor using message and cause. - * - * @param message Message. - * @param cause Throwable. - */ - public SerializationUtilsException(String message, Throwable cause) { - super(message, cause); - } - } - - /** - * Deserialize Base64 encoded string to a java object. - * - * @param serializedObject Base64 encoded string of a java object. - * @return Deserialized java object. - * @throws SerializationUtilsException - */ - public static Serializable deserializeStringToObject(String serializedObject) - throws SerializationUtilsException { - try { - - ObjectInputStream objectInputStream; - objectInputStream = new ObjectInputStream(new ByteArrayInputStream( - deserializeBase64StringToBytes(serializedObject))); - Serializable result = (Serializable) objectInputStream.readObject(); - objectInputStream.close(); - - return result; - } catch (IOException e) { - throw new SerializationUtilsException("Deserialization failed! IOException", e); - } catch (ClassNotFoundException e) { - throw new SerializationUtilsException("Deserialization failed! ClassNotFoundException", - e); - } - } - - /** - * Serialize java {@link Serializable} object into base64 encoded string. - * - * @param object Object to serialize. - * @return Base64 encoded string of object. - * @throws SerializationUtilsException - */ - public static String serializeObjectToString(Serializable object) - throws SerializationUtilsException { - ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); - ObjectOutputStream objectOutputStream; - try { - objectOutputStream = new ObjectOutputStream(byteArrayOutputStream); - objectOutputStream.writeObject(object); - objectOutputStream.close(); - } catch (IOException e) { - throw new SerializationUtilsException("Serialization failed! IOException", e); - } - - return serializeBytesToBase64String(byteArrayOutputStream.toByteArray()); - } - - /** - * Convert the given byte array into base64 encoded string. - * - * @param bytes bytes to encdode. - * @return Base64 encoded string - */ - public static String serializeBytesToBase64String(byte[] bytes) { - return new Base64().encodeToString(bytes); - } - - /** - * Convert the given base64 encoded string into byte array. - * - * @param base64String base64 encoded string. - * @return Byte array - */ - public static byte[] deserializeBase64StringToBytes(String base64String) { - return new Base64().decode(base64String); - } -} diff --git a/src/main/java/org/jbei/ice/lib/utils/TraceAlignmentHelper.java b/src/main/java/org/jbei/ice/lib/utils/TraceAlignmentHelper.java deleted file mode 100755 index a876ff826..000000000 --- a/src/main/java/org/jbei/ice/lib/utils/TraceAlignmentHelper.java +++ /dev/null @@ -1,198 +0,0 @@ -package org.jbei.ice.lib.utils; - -import java.util.List; - -import org.jbei.ice.lib.entry.model.Entry; -import org.jbei.ice.lib.models.TraceSequence; -import org.jbei.ice.lib.models.TraceSequenceAlignment; -import org.jbei.ice.lib.parsers.bl2seq.Bl2SeqException; -import org.jbei.ice.lib.parsers.bl2seq.Bl2SeqParser; -import org.jbei.ice.lib.parsers.bl2seq.Bl2SeqResult; -import org.jbei.ice.lib.search.blast.BlastException; -import org.jbei.ice.lib.search.blast.BlastPlus; -import org.jbei.ice.lib.search.blast.ProgramTookTooLongException; -import org.jbei.ice.lib.vo.TraceData; - -/** - * Utility methods for sequence trace alignments. - * - * @author Zinovii Dmytriv - */ -public class TraceAlignmentHelper { - /** - * Convert {@link TraceSequence} to {@link TraceData} value object. - * - * @param traceSequence TraceSequence to convert. - * @return TraceData object. - */ - public static TraceData traceSequenceToTraceData(TraceSequence traceSequence) { - TraceData resultTraceData = new TraceData(); - - if (traceSequence == null) { - return resultTraceData; - } - - resultTraceData.setFilename(traceSequence.getFilename()); - resultTraceData.setSequence(traceSequence.getSequence()); - - if (traceSequence.getTraceSequenceAlignment() != null) { - resultTraceData.setScore(traceSequence.getTraceSequenceAlignment().getScore()); - resultTraceData.setStrand(traceSequence.getTraceSequenceAlignment().getStrand()); - resultTraceData - .setQueryStart(traceSequence.getTraceSequenceAlignment().getQueryStart()); - resultTraceData.setQueryEnd(traceSequence.getTraceSequenceAlignment().getQueryEnd()); - resultTraceData.setSubjectStart(traceSequence.getTraceSequenceAlignment() - .getSubjectStart()); - resultTraceData - .setSubjectEnd(traceSequence.getTraceSequenceAlignment().getSubjectEnd()); - resultTraceData.setQueryAlignment(traceSequence.getTraceSequenceAlignment() - .getQueryAlignment()); - resultTraceData.setSubjectAlignment(traceSequence.getTraceSequenceAlignment() - .getSubjectAlignment()); - } - - return resultTraceData; - } - - /** - * Convert {@link TraceData} value object into {@link TraceSequence} object with the given - * depositor and {@link Entry}. - * - * @param traceData TraceData object to convert. - * @param depositor Depositor email. - * @param entry Entry to associate. - * @return TraceSequence object. - */ - public static TraceSequence traceDataToTraceSequence(TraceData traceData, String depositor, - Entry entry) { - TraceSequence resultTraceSequence = new TraceSequence(); - - if (traceData == null) { - return resultTraceSequence; - } - - resultTraceSequence.setFilename(traceData.getFilename()); - resultTraceSequence.setSequence(traceData.getSequence()); - resultTraceSequence.setEntry(entry); - resultTraceSequence.setDepositor(depositor); - - TraceSequenceAlignment traceSequenceAlignment = new TraceSequenceAlignment(); - resultTraceSequence.setTraceSequenceAlignment(traceSequenceAlignment); - - if (traceData.getScore() >= 0) { - traceSequenceAlignment.setScore(traceData.getScore()); - traceSequenceAlignment.setStrand(traceData.getStrand()); - traceSequenceAlignment.setQueryStart(traceData.getQueryStart()); - traceSequenceAlignment.setQueryEnd(traceData.getQueryEnd()); - traceSequenceAlignment.setSubjectStart(traceData.getSubjectStart()); - traceSequenceAlignment.setSubjectEnd(traceData.getSubjectEnd()); - traceSequenceAlignment.setQueryAlignment(traceData.getQueryAlignment()); - traceSequenceAlignment.setSubjectAlignment(traceData.getSubjectAlignment()); - } - - return resultTraceSequence; - } - - /** - * Convert the given {@link TraceData} value object into {@link TraceSequence}. Set the - * depositor to "" and {@link Entry} to null. - * - * @param traceData TraceData to convert. - * @return TraceSequence object. - */ - public static TraceSequence traceDataToTraceSequence(TraceData traceData) { - return traceDataToTraceSequence(traceData, "", null); - } - - /** - * Align two sequences, querySequence and traceSequence. - * - * @param querySequence Reference sequence. - * @param traceSequence Trace sequence. - * @param traceFileName Trace file name, for identification. - * @param isCircular True if circular. - * @return {@link TraceData} object. - */ - public static TraceData alignSequences(String querySequence, String traceSequence, - String traceFileName, boolean isCircular) { - int querySequenceLength = querySequence.length(); - - String bl2seqOutput = ""; - - if (isCircular) { - querySequence += querySequence; - } - - try { - bl2seqOutput = BlastPlus.runBlast2Seq(querySequence, traceSequence); - } catch (BlastException e) { - - } catch (ProgramTookTooLongException e) { - - } - - if (bl2seqOutput == null || bl2seqOutput.isEmpty()) { - return null; - } - - List bl2seqAlignmentResults = null; - - try { - bl2seqAlignmentResults = Bl2SeqParser.parse(bl2seqOutput); - } catch (Bl2SeqException e) { - return null; - } - - if (bl2seqAlignmentResults != null && bl2seqAlignmentResults.size() > 0) { - int maxAlignedSequenceLength = -1; - Bl2SeqResult maxBl2SeqResult = null; - - for (Bl2SeqResult bl2seqResult : bl2seqAlignmentResults) { - int bl2seqResultQuerySequenceLength = bl2seqResult.getQuerySequence().length(); - - if (maxAlignedSequenceLength < bl2seqResultQuerySequenceLength) { - maxAlignedSequenceLength = bl2seqResultQuerySequenceLength; - maxBl2SeqResult = bl2seqResult; - } - } - - if (maxBl2SeqResult != null) { - int strand = maxBl2SeqResult.getOrientation() == 0 ? 1 : -1; - int queryStart = maxBl2SeqResult.getQueryStart(); - int queryEnd = maxBl2SeqResult.getQueryEnd(); - int subjectStart = maxBl2SeqResult.getSubjectStart(); - int subjectEnd = maxBl2SeqResult.getSubjectEnd(); - - if (isCircular) { - if (queryStart > querySequenceLength) { - queryStart = queryStart - querySequenceLength; - } - - if (queryEnd > querySequenceLength) { - queryEnd = queryEnd - querySequenceLength; - } - - if (subjectStart > querySequenceLength) { - subjectStart = subjectStart - querySequenceLength; - } - - if (subjectEnd > querySequenceLength) { - subjectEnd = subjectEnd - querySequenceLength; - } - } - - TraceData resultTraceData = new TraceData(traceFileName, traceSequence, - maxBl2SeqResult.getScore(), strand, queryStart, queryEnd, - subjectStart, - subjectEnd, maxBl2SeqResult.getQuerySequence(), - maxBl2SeqResult.getSubjectSequence()); - - return resultTraceData; - } else { - return null; - } - } else { - return null; - } - } -} \ No newline at end of file diff --git a/src/main/java/org/jbei/ice/lib/vo/Project.java b/src/main/java/org/jbei/ice/lib/vo/Project.java deleted file mode 100755 index 9b3bcb539..000000000 --- a/src/main/java/org/jbei/ice/lib/vo/Project.java +++ /dev/null @@ -1,96 +0,0 @@ -package org.jbei.ice.lib.vo; - -import java.io.Serializable; -import java.util.Date; - -/** - * Value object to store user projects - * - * @author Zinovii Dmytriv - */ -public abstract class Project implements Serializable { - private static final long serialVersionUID = 1L; - - private String name; - private String description; - private String uuid; - private String ownerName; - private String ownerEmail; - private Date creationTime; - private Date modificationTime; - - public Project() { - super(); - } - - public Project(String name, String description, String uuid, String ownerEmail, - String ownerName, Date creationTime, Date modificationTime) { - super(); - - this.name = name; - this.description = description; - this.uuid = uuid; - this.ownerEmail = ownerEmail; - this.ownerName = ownerName; - this.creationTime = creationTime; - this.modificationTime = modificationTime; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public String getUuid() { - return uuid; - } - - public void setUuid(String uuid) { - this.uuid = uuid; - } - - public String getOwnerName() { - return ownerName; - } - - public void setOwnerName(String ownerName) { - this.ownerName = ownerName; - } - - public String getOwnerEmail() { - return ownerEmail; - } - - public void setOwnerEmail(String ownerEmail) { - this.ownerEmail = ownerEmail; - } - - public Date getCreationTime() { - return creationTime; - } - - public void setCreationTime(Date creationTime) { - this.creationTime = creationTime; - } - - public Date getModificationTime() { - return modificationTime; - } - - public void setModificationTime(Date modificationTime) { - this.modificationTime = modificationTime; - } - - public abstract String typeName(); -} diff --git a/src/main/java/org/jbei/ice/lib/vo/SequenceCheckerData.java b/src/main/java/org/jbei/ice/lib/vo/SequenceCheckerData.java deleted file mode 100755 index a9dcf6668..000000000 --- a/src/main/java/org/jbei/ice/lib/vo/SequenceCheckerData.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.jbei.ice.lib.vo; - -import java.io.Serializable; -import java.util.List; - -/** - * Value object to hold SequenceChecker data. - * - * @author Zinovii Dmytriv - */ -public class SequenceCheckerData implements Serializable { - private static final long serialVersionUID = 1L; - - private FeaturedDNASequence sequence; - private List traces; - - public FeaturedDNASequence getSequence() { - return sequence; - } - - public void setSequence(FeaturedDNASequence sequence) { - this.sequence = sequence; - } - - public List getTraces() { - return traces; - } - - public void setTraces(List traces) { - this.traces = traces; - } -} diff --git a/src/main/java/org/jbei/ice/lib/vo/SequenceCheckerProject.java b/src/main/java/org/jbei/ice/lib/vo/SequenceCheckerProject.java deleted file mode 100755 index 5f10bca42..000000000 --- a/src/main/java/org/jbei/ice/lib/vo/SequenceCheckerProject.java +++ /dev/null @@ -1,39 +0,0 @@ -package org.jbei.ice.lib.vo; - -import java.util.Date; - -/** - * Value object for Sequence Checker project. - * - * @author Zinovii Dmytriv - */ -public class SequenceCheckerProject extends Project { - private static final long serialVersionUID = 1L; - - private SequenceCheckerData sequenceCheckerData; - - public SequenceCheckerProject() { - super(); - } - - public SequenceCheckerProject(String name, String description, String uuid, String ownerEmail, - String ownerName, Date creationTime, Date modificationTime, - SequenceCheckerData sequenceCheckerData) { - super(name, description, uuid, ownerEmail, ownerName, creationTime, modificationTime); - - this.sequenceCheckerData = sequenceCheckerData; - } - - public SequenceCheckerData getSequenceCheckerData() { - return sequenceCheckerData; - } - - public void setSequenceCheckerData(SequenceCheckerData sequenceCheckerData) { - this.sequenceCheckerData = sequenceCheckerData; - } - - @Override - public String typeName() { - return "sequence-checker"; - } -} \ No newline at end of file diff --git a/src/main/java/org/jbei/ice/lib/vo/SequenceTraceFile.java b/src/main/java/org/jbei/ice/lib/vo/SequenceTraceFile.java deleted file mode 100755 index 7401f1d0a..000000000 --- a/src/main/java/org/jbei/ice/lib/vo/SequenceTraceFile.java +++ /dev/null @@ -1,57 +0,0 @@ -package org.jbei.ice.lib.vo; - -import java.util.Date; - -/** - * Value object for sequence trace data. - * - * @author Timothy Ham - */ -public class SequenceTraceFile { - private String base64Data; - private String fileName; - private String fileId; - private String depositorEmail; - private Date timeStamp; - - public String getBase64Data() { - return base64Data; - } - - public void setBase64Data(String base64Data) { - this.base64Data = base64Data; - } - - public String getFileName() { - return fileName; - } - - public void setFileName(String fileName) { - this.fileName = fileName; - } - - public String getFileId() { - return fileId; - } - - public void setFileId(String fileId) { - this.fileId = fileId; - } - - public String getDepositorEmail() { - return depositorEmail; - } - - public void setDepositorEmail(String depositorEmail) { - this.depositorEmail = depositorEmail; - } - - public Date getTimeStamp() { - return timeStamp; - } - - public void setTimeStamp(Date timestamp) { - timeStamp = timestamp; - } - -} \ No newline at end of file diff --git a/src/main/java/org/jbei/ice/lib/vo/TraceData.java b/src/main/java/org/jbei/ice/lib/vo/TraceData.java deleted file mode 100755 index 1d450609d..000000000 --- a/src/main/java/org/jbei/ice/lib/vo/TraceData.java +++ /dev/null @@ -1,124 +0,0 @@ -package org.jbei.ice.lib.vo; - -import java.io.Serializable; - -/** - * Value object for sequence trace data. - * - * @author Ziovii Dmytriv - */ -public class TraceData implements Serializable { - private static final long serialVersionUID = 1L; - - private String filename; - private String sequence; - private int score; - private int strand; - private int queryStart; - private int queryEnd; - private int subjectStart; - private int subjectEnd; - private String queryAlignment; - private String subjectAlignment; - - public TraceData() { - super(); - } - - public TraceData(String filename, String sequence, int score, int strand, int queryStart, - int queryEnd, int subjectStart, int subjectEnd, String queryAlignment, - String subjectAlignment) { - super(); - - this.filename = filename; - this.sequence = sequence; - this.score = score; - this.strand = strand; - this.queryStart = queryStart; - this.queryEnd = queryEnd; - this.subjectStart = subjectStart; - this.subjectEnd = subjectEnd; - this.queryAlignment = queryAlignment; - this.subjectAlignment = subjectAlignment; - } - - public String getFilename() { - return filename; - } - - public void setFilename(String filename) { - this.filename = filename; - } - - public String getSequence() { - return sequence; - } - - public void setSequence(String sequence) { - this.sequence = sequence; - } - - public int getScore() { - return score; - } - - public void setScore(int score) { - this.score = score; - } - - public int getStrand() { - return strand; - } - - public void setStrand(int strand) { - this.strand = strand; - } - - public int getQueryStart() { - return queryStart; - } - - public void setQueryStart(int queryStart) { - this.queryStart = queryStart; - } - - public int getQueryEnd() { - return queryEnd; - } - - public void setQueryEnd(int queryEnd) { - this.queryEnd = queryEnd; - } - - public int getSubjectStart() { - return subjectStart; - } - - public void setSubjectStart(int subjectStart) { - this.subjectStart = subjectStart; - } - - public int getSubjectEnd() { - return subjectEnd; - } - - public void setSubjectEnd(int subjectEnd) { - this.subjectEnd = subjectEnd; - } - - public String getQueryAlignment() { - return queryAlignment; - } - - public void setQueryAlignment(String queryAlignment) { - this.queryAlignment = queryAlignment; - } - - public String getSubjectAlignment() { - return subjectAlignment; - } - - public void setSubjectAlignment(String subjectAlignment) { - this.subjectAlignment = subjectAlignment; - } -} \ No newline at end of file diff --git a/src/main/java/org/jbei/ice/lib/vo/VectorEditorProject.java b/src/main/java/org/jbei/ice/lib/vo/VectorEditorProject.java deleted file mode 100755 index 699907a5b..000000000 --- a/src/main/java/org/jbei/ice/lib/vo/VectorEditorProject.java +++ /dev/null @@ -1,38 +0,0 @@ -package org.jbei.ice.lib.vo; - -import java.util.Date; - -/** - * Value object to hold VectorEditor project files. - * - * @author Zinovii Dmytriv - */ -public class VectorEditorProject extends Project { - private static final long serialVersionUID = 1L; - - private FeaturedDNASequence featuredDNASequence; - - public VectorEditorProject() { - } - - public VectorEditorProject(String name, String description, String uuid, String ownerEmail, - String ownerName, Date creationTime, Date modificationTime, - FeaturedDNASequence featuredDNASequence) { - super(name, description, uuid, ownerEmail, ownerName, creationTime, modificationTime); - - this.featuredDNASequence = featuredDNASequence; - } - - public FeaturedDNASequence getFeaturedDNASequence() { - return featuredDNASequence; - } - - public void setFeaturedDNASequence(FeaturedDNASequence featuredDNASequence) { - this.featuredDNASequence = featuredDNASequence; - } - - @Override - public String typeName() { - return "vector-editor"; - } -} \ No newline at end of file diff --git a/src/main/resources/hibernate.cfg.xml b/src/main/resources/hibernate.cfg.xml index 8afab6bee..f5d2521a8 100755 --- a/src/main/resources/hibernate.cfg.xml +++ b/src/main/resources/hibernate.cfg.xml @@ -63,10 +63,7 @@ - - - @@ -74,7 +71,6 @@ - diff --git a/src/main/resources/mock_hibernate.cfg.xml b/src/main/resources/mock_hibernate.cfg.xml index 5fe45ab1e..95bea6a0e 100755 --- a/src/main/resources/mock_hibernate.cfg.xml +++ b/src/main/resources/mock_hibernate.cfg.xml @@ -50,10 +50,7 @@ - - - @@ -61,7 +58,6 @@ - From 2ded7b0468f5c9933a771f92e4e057769ed38c3c Mon Sep 17 00:00:00 2001 From: Hector Plahar Date: Fri, 19 Dec 2014 16:26:34 -0800 Subject: [PATCH 02/63] deleting unused --- docs/exp.xsd | 34 ------------- docs/seq.xsd | 135 --------------------------------------------------- 2 files changed, 169 deletions(-) delete mode 100755 docs/exp.xsd delete mode 100755 docs/seq.xsd diff --git a/docs/exp.xsd b/docs/exp.xsd deleted file mode 100755 index a5288b609..000000000 --- a/docs/exp.xsd +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/seq.xsd b/docs/seq.xsd deleted file mode 100755 index aca631801..000000000 --- a/docs/seq.xsd +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From d9e9150ed2a1338bee61703da5dad371480dac9c Mon Sep 17 00:00:00 2001 From: Hector Plahar Date: Fri, 2 Jan 2015 17:35:59 -0800 Subject: [PATCH 03/63] fix for #22: take bulk upload permissions into consideration when approving --- .../lib/bulkupload/BulkUploadController.java | 35 +++++++++++-------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/src/main/java/org/jbei/ice/lib/bulkupload/BulkUploadController.java b/src/main/java/org/jbei/ice/lib/bulkupload/BulkUploadController.java index 6f52f1bfb..26b786f79 100755 --- a/src/main/java/org/jbei/ice/lib/bulkupload/BulkUploadController.java +++ b/src/main/java/org/jbei/ice/lib/bulkupload/BulkUploadController.java @@ -150,7 +150,7 @@ public HashMap> getPendingImports(String userI * @throws PermissionException */ public BulkUploadInfo retrieveById(String userId, long id, int start, int limit) - throws ControllerException, PermissionException { + throws PermissionException { BulkUpload draft = dao.get(id); if (draft == null) return null; @@ -212,8 +212,7 @@ public BulkUploadInfo getBulkImport(String userId, long id, int offset, int limi return info; } - protected ArrayList convertParts(Account account, List contents) - throws ControllerException { + protected ArrayList convertParts(Account account, List contents) { ArrayList addList = new ArrayList<>(); SequenceDAO sequenceDAO = DAOFactory.getSequenceDAO(); @@ -428,6 +427,19 @@ public boolean approveBulkImport(Account account, long id) { return false; } + // get permissions for bulk upload and set it to the individual entries + PermissionsController permissionsController = new PermissionsController(); + ArrayList permissions = new ArrayList<>(); + for (Permission permission : bulkUpload.getPermissions()) { + AccessPermission accessPermission = permission.toDataTransferObject(); + // read or write access + if (accessPermission.getType() == AccessPermission.Type.READ_UPLOAD) + accessPermission.setType(AccessPermission.Type.READ_ENTRY); + else + accessPermission.setType(AccessPermission.Type.WRITE_ENTRY); + permissions.add(accessPermission); + } + // go through passed contents // TODO : this needs to go into a task that auto updates for (Entry entry : bulkUpload.getContents()) { @@ -439,19 +451,14 @@ public boolean approveBulkImport(Account account, long id) { plasmid.setVisibility(Visibility.OK.getValue()); } - PermissionsController permissionsController = new PermissionsController(); // set permissions - for (Permission permission : bulkUpload.getPermissions()) { - // add permission for entry - AccessPermission access = new AccessPermission(); - access.setType(AccessPermission.Type.READ_ENTRY); - access.setTypeId(entry.getId()); - access.setArticleId(permission.getGroup().getId()); - access.setArticle(AccessPermission.Article.GROUP); - permissionsController.addPermission(account.getEmail(), access); + for (AccessPermission accessPermission : permissions) { + accessPermission.setTypeId(entry.getId()); + + permissionsController.addPermission(account.getEmail(), accessPermission); if (plasmid != null) { - access.setTypeId(plasmid.getId()); - permissionsController.addPermission(account.getEmail(), access); + accessPermission.setTypeId(plasmid.getId()); + permissionsController.addPermission(account.getEmail(), accessPermission); } } From f91d248096262390cc32f0af5a687815fd2531f4 Mon Sep 17 00:00:00 2001 From: Hector Plahar Date: Fri, 2 Jan 2015 17:48:21 -0800 Subject: [PATCH 04/63] refactoring entry update() --- .../ice/lib/bulkupload/BulkEntryCreator.java | 23 ++++++++----------- .../lib/bulkupload/BulkUploadController.java | 4 ++-- .../jbei/ice/lib/entry/EntryController.java | 6 ++--- 3 files changed, 14 insertions(+), 19 deletions(-) diff --git a/src/main/java/org/jbei/ice/lib/bulkupload/BulkEntryCreator.java b/src/main/java/org/jbei/ice/lib/bulkupload/BulkEntryCreator.java index 1aae96bd1..3bcc12d9e 100644 --- a/src/main/java/org/jbei/ice/lib/bulkupload/BulkEntryCreator.java +++ b/src/main/java/org/jbei/ice/lib/bulkupload/BulkEntryCreator.java @@ -1,15 +1,7 @@ package org.jbei.ice.lib.bulkupload; -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.nio.file.Paths; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - +import org.apache.commons.io.IOUtils; +import org.apache.commons.lang.StringUtils; import org.jbei.ice.ApplicationController; import org.jbei.ice.lib.account.AccountController; import org.jbei.ice.lib.account.model.Account; @@ -36,8 +28,11 @@ import org.jbei.ice.lib.vo.DNASequence; import org.jbei.ice.servlet.InfoToModelFactory; -import org.apache.commons.io.IOUtils; -import org.apache.commons.lang.StringUtils; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Paths; +import java.util.*; /** * Creates entries for bulk uploads @@ -316,7 +311,7 @@ public BulkUploadAutoUpdate createOrUpdateEntry(String userId, BulkUploadAutoUpd if (otherEntry.getVisibility() == null || otherEntry.getVisibility() != Visibility.DRAFT.getValue()) otherEntry.setVisibility(Visibility.DRAFT.getValue()); - entryController.update(account, otherEntry); + entryController.update(userId, otherEntry); } if ((entry.getVisibility() == null || entry.getVisibility() != Visibility.DRAFT.getValue()) @@ -332,7 +327,7 @@ public BulkUploadAutoUpdate createOrUpdateEntry(String userId, BulkUploadAutoUpd editor.setStrainPlasmids(account, strain, strain.getPlasmids()); } - entryController.update(account, entry); + entryController.update(userId, entry); // update bulk upload. even if no new entry was created, entries belonging to it was updated if (draft != null) { diff --git a/src/main/java/org/jbei/ice/lib/bulkupload/BulkUploadController.java b/src/main/java/org/jbei/ice/lib/bulkupload/BulkUploadController.java index 26b786f79..6c59f81d0 100755 --- a/src/main/java/org/jbei/ice/lib/bulkupload/BulkUploadController.java +++ b/src/main/java/org/jbei/ice/lib/bulkupload/BulkUploadController.java @@ -462,9 +462,9 @@ public boolean approveBulkImport(Account account, long id) { } } - entryController.update(account, entry); + entryController.update(account.getEmail(), entry); if (plasmid != null) - entryController.update(account, plasmid); + entryController.update(account.getEmail(), plasmid); } // when done approving, delete the bulk upload record but not the entries associated with it. diff --git a/src/main/java/org/jbei/ice/lib/entry/EntryController.java b/src/main/java/org/jbei/ice/lib/entry/EntryController.java index a241ff2de..6bd4cf82a 100755 --- a/src/main/java/org/jbei/ice/lib/entry/EntryController.java +++ b/src/main/java/org/jbei/ice/lib/entry/EntryController.java @@ -220,12 +220,12 @@ public long updatePart(String userId, long partId, PartData part) { return entry.getId(); } - public void update(Account account, Entry entry) { + public void update(String userId, Entry entry) { if (entry == null) { return; } - authorization.expectWrite(account.getEmail(), entry); + authorization.expectWrite(userId, entry); boolean scheduleRebuild = sequenceDAO.hasSequence(entry.getId()); entry.setModificationTime(Calendar.getInstance().getTime()); @@ -244,7 +244,7 @@ public void update(Account account, Entry entry) { accessPermission.setArticleId(pi.getId()); accessPermission.setType(AccessPermission.Type.WRITE_ENTRY); accessPermission.setTypeId(entry.getId()); - permissionsController.addPermission(account.getEmail(), accessPermission); + permissionsController.addPermission(userId, accessPermission); } } From 722f501fbbdccf255951177328766ce14580e379 Mon Sep 17 00:00:00 2001 From: Hector Plahar Date: Fri, 2 Jan 2015 18:48:40 -0800 Subject: [PATCH 05/63] fix for issue causing links to be removed when updating entries --- src/main/webapp/scripts/controllers.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/webapp/scripts/controllers.js b/src/main/webapp/scripts/controllers.js index 43a04962a..26a6ae87e 100755 --- a/src/main/webapp/scripts/controllers.js +++ b/src/main/webapp/scripts/controllers.js @@ -1252,9 +1252,12 @@ iceControllers.controller('EditEntryController', var sid = $cookieStore.get("sessionId"); var entry = Entry(sid); + var partLinks; $scope.entry = undefined; + entry.query({partId:$stateParams.id}, function (result) { $scope.entry = EntryService.convertToUIForm(result); + partLinks = angular.copy($scope.entry.linkedParts); $scope.entry.linkedParts = []; // todo : this is used in other places and should be in a service @@ -1398,13 +1401,14 @@ iceControllers.controller('EditEntryController', $scope.entry.links = EntryService.toStringArray($scope.entry.links); $scope.entry.selectionMarkers = EntryService.toStringArray($scope.entry.selectionMarkers); - for (var i = 0; i < $scope.entry.linkedParts.length; i += 1) { - $scope.entry.linkedParts[i].links = EntryService.toStringArray($scope.entry.linkedParts[i].links); - $scope.entry.linkedParts[i].selectionMarkers = EntryService.toStringArray($scope.entry.linkedParts[i].selectionMarkers); - } + //for (var i = 0; i < $scope.entry.linkedParts.length; i += 1) { + // $scope.entry.linkedParts[i].links = EntryService.toStringArray($scope.entry.linkedParts[i].links); + // $scope.entry.linkedParts[i].selectionMarkers = EntryService.toStringArray($scope.entry.linkedParts[i].selectionMarkers); + //} // convert the part to a form the server can work with $scope.entry = EntryService.getTypeData($scope.entry); + $scope.entry.linkedParts = partLinks; entry.update({partId:$scope.entry.id}, $scope.entry, function (result) { $location.path("/entry/" + result.id); From 4a1ba4f03a008c02aae0794cb932b31deee0cd1d Mon Sep 17 00:00:00 2001 From: Hector Plahar Date: Fri, 2 Jan 2015 18:49:53 -0800 Subject: [PATCH 06/63] bumping version number --- pom.xml | 2 +- src/main/webapp/index.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index e80e003f2..bc11ad79b 100755 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ org.jbei ice war - 4.1.8 + 4.1.9 ice Inventory of Composable Elements (ICE) for Synthetic Biology diff --git a/src/main/webapp/index.html b/src/main/webapp/index.html index 49c046480..64b5d67ad 100755 --- a/src/main/webapp/index.html +++ b/src/main/webapp/index.html @@ -131,7 +131,7 @@ Help -

  |   v4.1.8
+
  |   v4.1.9
From 37f98092a103425f84d4db954bb40ade726c08b1 Mon Sep 17 00:00:00 2001 From: Hector Plahar Date: Mon, 12 Jan 2015 10:13:16 -0800 Subject: [PATCH 07/63] update test --- src/test/java/org/jbei/ice/lib/TestEntryCreator.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/test/java/org/jbei/ice/lib/TestEntryCreator.java b/src/test/java/org/jbei/ice/lib/TestEntryCreator.java index 96ad3ce6c..bdba83306 100644 --- a/src/test/java/org/jbei/ice/lib/TestEntryCreator.java +++ b/src/test/java/org/jbei/ice/lib/TestEntryCreator.java @@ -3,6 +3,7 @@ import org.jbei.ice.lib.account.model.Account; import org.jbei.ice.lib.entry.EntryCreator; import org.jbei.ice.lib.entry.model.Strain; +import org.jbei.ice.lib.shared.BioSafetyOption; /** * Helper class for creating entries to be used in test. @@ -18,4 +19,14 @@ public static Strain createTestStrain(Account account) throws Exception { strain = (Strain) new EntryCreator().createEntry(account, strain, null); return strain; } + + public static Strain createTestAccountAndStrain(String userId) throws Exception { + Account account = AccountCreator.createTestAccount(userId, false); + Strain strain = new Strain(); + strain.setName("sTrain"); + strain.setBioSafetyLevel(BioSafetyOption.LEVEL_ONE.ordinal()); + strain.setShortDescription("test strain"); + strain = (Strain) new EntryCreator().createEntry(account, strain, null); + return strain; + } } From 0551401fce96956b29201711d7752889a849fcfc Mon Sep 17 00:00:00 2001 From: Hector Plahar Date: Mon, 12 Jan 2015 14:17:48 -0800 Subject: [PATCH 08/63] log --- .../ice/services/rest/FolderResource.java | 25 +++++++++---------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/src/main/java/org/jbei/ice/services/rest/FolderResource.java b/src/main/java/org/jbei/ice/services/rest/FolderResource.java index ceeb53bc1..508a4afe5 100644 --- a/src/main/java/org/jbei/ice/services/rest/FolderResource.java +++ b/src/main/java/org/jbei/ice/services/rest/FolderResource.java @@ -1,14 +1,8 @@ package org.jbei.ice.services.rest; -import java.lang.reflect.Type; -import java.util.ArrayList; -import java.util.List; -import javax.ws.rs.*; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.UriInfo; - +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.reflect.TypeToken; import org.jbei.ice.lib.access.PermissionsController; import org.jbei.ice.lib.account.SessionHandler; import org.jbei.ice.lib.common.logging.Logger; @@ -22,9 +16,14 @@ import org.jbei.ice.lib.folder.FolderController; import org.jbei.ice.lib.shared.ColumnField; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.google.gson.reflect.TypeToken; +import javax.ws.rs.*; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import javax.ws.rs.core.UriInfo; +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.List; /** * @author Hector Plahar @@ -172,7 +171,7 @@ public FolderDetails read(@Context UriInfo uriInfo, EntryController entryController = new EntryController(); FolderDetails details = new FolderDetails(); - Logger.info("Retrieving " + folderId + " entries"); + log(userId, "retrieving " + folderId + " entries"); switch (folderId) { case "personal": From dcffe0d48b5861f612d67674280c6a3f8b0bb8de Mon Sep 17 00:00:00 2001 From: Hector Plahar Date: Thu, 15 Jan 2015 15:25:29 -0800 Subject: [PATCH 09/63] using analyzer and filter for part number --- src/main/java/org/jbei/ice/lib/entry/model/Entry.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/jbei/ice/lib/entry/model/Entry.java b/src/main/java/org/jbei/ice/lib/entry/model/Entry.java index 0bbfa34b8..e1ce52219 100755 --- a/src/main/java/org/jbei/ice/lib/entry/model/Entry.java +++ b/src/main/java/org/jbei/ice/lib/entry/model/Entry.java @@ -1,5 +1,7 @@ package org.jbei.ice.lib.entry.model; +import org.apache.solr.analysis.LowerCaseFilterFactory; +import org.apache.solr.analysis.StandardTokenizerFactory; import org.hibernate.annotations.Type; import org.hibernate.search.annotations.*; import org.hibernate.search.annotations.Index; @@ -76,6 +78,11 @@ @FullTextFilterDef(name = "security", impl = EntrySecurityFilterFactory.class), @FullTextFilterDef(name = "boolean", impl = EntryHasFilterFactory.class) }) +@AnalyzerDef(name = "customanalyzer", + tokenizer = @TokenizerDef(factory = StandardTokenizerFactory.class), + filters = { + @TokenFilterDef(factory = LowerCaseFilterFactory.class), + }) @Table(name = "entries") @SequenceGenerator(name = "sequence", sequenceName = "entries_id_seq", allocationSize = 1) @Inheritance(strategy = InheritanceType.JOINED) @@ -123,7 +130,8 @@ public class Entry implements IDataModel { private String name; @Column(name = "part_number", length = 127) - @Field(boost = @Boost(2f), store = Store.YES, analyze = Analyze.NO) + @Analyzer(definition = "customanalyzer") + @Field(boost = @Boost(2f), store = Store.YES) private String partNumber; @Column(name = "keywords", length = 127) From aef4c7daaa8d41f63616fa97633215dc9550ce9d Mon Sep 17 00:00:00 2001 From: Hector Plahar Date: Fri, 23 Jan 2015 14:54:07 -0800 Subject: [PATCH 10/63] use time and not date --- .../org/jbei/ice/lib/entry/EntryUtil.java | 33 +++++++------------ 1 file changed, 11 insertions(+), 22 deletions(-) diff --git a/src/main/java/org/jbei/ice/lib/entry/EntryUtil.java b/src/main/java/org/jbei/ice/lib/entry/EntryUtil.java index 12bc2aac3..982d8439c 100755 --- a/src/main/java/org/jbei/ice/lib/entry/EntryUtil.java +++ b/src/main/java/org/jbei/ice/lib/entry/EntryUtil.java @@ -1,34 +1,23 @@ package org.jbei.ice.lib.entry; -import java.text.DateFormat; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Set; - +import org.apache.commons.lang.StringUtils; import org.jbei.ice.lib.common.logging.Logger; import org.jbei.ice.lib.dto.ConfigurationKey; import org.jbei.ice.lib.dto.bulkupload.EntryField; -import org.jbei.ice.lib.dto.entry.ArabidopsisSeedData; -import org.jbei.ice.lib.dto.entry.EntryType; -import org.jbei.ice.lib.dto.entry.Generation; -import org.jbei.ice.lib.dto.entry.PartData; -import org.jbei.ice.lib.dto.entry.PlantType; -import org.jbei.ice.lib.dto.entry.PlasmidData; -import org.jbei.ice.lib.dto.entry.StrainData; -import org.jbei.ice.lib.entry.model.ArabidopsisSeed; -import org.jbei.ice.lib.entry.model.Entry; -import org.jbei.ice.lib.entry.model.Part; -import org.jbei.ice.lib.entry.model.Plasmid; -import org.jbei.ice.lib.entry.model.Strain; +import org.jbei.ice.lib.dto.entry.*; +import org.jbei.ice.lib.entry.model.*; import org.jbei.ice.lib.models.SelectionMarker; import org.jbei.ice.lib.shared.BioSafetyOption; import org.jbei.ice.lib.utils.Utils; -import org.apache.commons.lang.StringUtils; +import java.text.DateFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Set; /** * Utility class for operating on entries @@ -354,7 +343,7 @@ private static ArabidopsisSeedData setSeedDataFromField(ArabidopsisSeedData seed if (value != null && !value.isEmpty()) { try { Date date = SimpleDateFormat.getDateInstance(DateFormat.SHORT).parse(value); - seedData.setHarvestDate(date); + seedData.setHarvestDate(date.getTime()); } catch (ParseException ia) { Logger.error(ia); } From 9b593a0991deb1769bc53808a19cfee4e730c833 Mon Sep 17 00:00:00 2001 From: Hector Plahar Date: Wed, 11 Feb 2015 12:08:45 -0800 Subject: [PATCH 11/63] set owner email to user creating entry only if not specified --- src/main/java/org/jbei/ice/lib/entry/EntryCreator.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/jbei/ice/lib/entry/EntryCreator.java b/src/main/java/org/jbei/ice/lib/entry/EntryCreator.java index d0704afe0..5def5f723 100644 --- a/src/main/java/org/jbei/ice/lib/entry/EntryCreator.java +++ b/src/main/java/org/jbei/ice/lib/entry/EntryCreator.java @@ -56,8 +56,12 @@ public Entry createEntry(Account account, Entry entry, ArrayList Date: Wed, 25 Feb 2015 12:15:41 -0800 Subject: [PATCH 12/63] start of growth temp feature. adding cols to database and displaying option in sample request --- .../org/jbei/ice/lib/dto/sample/SampleRequest.java | 9 +++++++++ .../jbei/ice/lib/entry/sample/model/Request.java | 14 +++++++++++--- src/main/webapp/views/modal/sample-request.html | 11 +++++++++++ 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/jbei/ice/lib/dto/sample/SampleRequest.java b/src/main/java/org/jbei/ice/lib/dto/sample/SampleRequest.java index acb0ebe06..a7e75be4e 100644 --- a/src/main/java/org/jbei/ice/lib/dto/sample/SampleRequest.java +++ b/src/main/java/org/jbei/ice/lib/dto/sample/SampleRequest.java @@ -18,6 +18,7 @@ public class SampleRequest implements IDataTransferModel { private SampleRequestStatus status; private long requestTime; private long updateTime; + private int growthTemperature; public SampleRequest() { } @@ -77,4 +78,12 @@ public long getId() { public void setId(long id) { this.id = id; } + + public int getGrowthTemperature() { + return growthTemperature; + } + + public void setGrowthTemperature(int growthTemperature) { + this.growthTemperature = growthTemperature; + } } diff --git a/src/main/java/org/jbei/ice/lib/entry/sample/model/Request.java b/src/main/java/org/jbei/ice/lib/entry/sample/model/Request.java index e818c5152..bd1728535 100644 --- a/src/main/java/org/jbei/ice/lib/entry/sample/model/Request.java +++ b/src/main/java/org/jbei/ice/lib/entry/sample/model/Request.java @@ -1,8 +1,5 @@ package org.jbei.ice.lib.entry.sample.model; -import java.util.Date; -import javax.persistence.*; - import org.jbei.ice.lib.account.model.Account; import org.jbei.ice.lib.dao.IDataModel; import org.jbei.ice.lib.dto.entry.EntryType; @@ -13,6 +10,9 @@ import org.jbei.ice.lib.entry.EntryUtil; import org.jbei.ice.lib.entry.model.Entry; +import javax.persistence.*; +import java.util.Date; + /** * Storage data model for sample requests * @@ -49,6 +49,9 @@ public class Request implements IDataModel { @Enumerated(value = EnumType.STRING) private SampleRequestType type; + @Column(name = "growth_temp") + private int growthTemperature; + @Column(name = "request_status") @Enumerated(value = EnumType.STRING) private SampleRequestStatus status = SampleRequestStatus.IN_CART; @@ -97,6 +100,10 @@ public void setStatus(SampleRequestStatus requestStatus) { this.status = requestStatus; } + public void setGrowthTemperature(int growthTemperature) { + this.growthTemperature = growthTemperature; + } + public Entry getEntry() { return entry; } @@ -111,6 +118,7 @@ public SampleRequest toDataTransferObject() { sampleRequest.setId(getId()); sampleRequest.setRequestType(getType()); sampleRequest.setStatus(getStatus()); + sampleRequest.setGrowthTemperature(growthTemperature); EntryType type = EntryType.nameToType(entry.getRecordType()); PartData data = new PartData(type); data.setId(entry.getId()); diff --git a/src/main/webapp/views/modal/sample-request.html b/src/main/webapp/views/modal/sample-request.html index 1f87d791e..979250bcd 100644 --- a/src/main/webapp/views/modal/sample-request.html +++ b/src/main/webapp/views/modal/sample-request.html @@ -19,6 +19,17 @@ Agar Plate + +
+ + Requested Growth Temp °C + +
+ +