/* * Copyright 2015-2016 OpenCB * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.opencb.opencga.catalog.models; import org.opencb.opencga.core.common.TimeUtils; import java.util.*; /** * Created by jacobo on 11/09/14. */ public class Project { private long id; private String name; private String alias; private String creationDate; private String description; private String organization; private Organism organism; private Status status; private String lastModified; private long size; private List<Study> studies; private Map<File.Bioformat, DataStore> dataStores; private Map<String, Object> attributes; public Project() { } public Project(String name, String alias, String description, Status status, String organization, Organism organism) { this(-1, name, alias, TimeUtils.getTime(), description, organization, organism, status, null, 0, new LinkedList<>(), new HashMap<>(), new HashMap<>()); } public Project(String name, String alias, String creationDate, String description, Status status, String lastModified, long size, String organization, Organism organism) { this(-1, name, alias, creationDate, description, organization, organism, status, lastModified, size, new LinkedList<>(), new HashMap<>(), new HashMap<>()); } public Project(long id, String name, String alias, String creationDate, String description, String organization, Organism organism, Status status, String lastModified, long size, List<Study> studies, Map<File.Bioformat, DataStore> dataStores, Map<String, Object> attributes) { this.id = id; this.name = name; this.alias = alias; this.creationDate = creationDate; this.description = description; this.organization = organization; this.organism = organism; this.status = status; this.lastModified = lastModified; this.size = size; this.studies = studies; this.dataStores = dataStores; this.attributes = attributes; } public static class Organism { private String scientificName; private String commonName; private int taxonomyCode; private String assembly; public Organism() { } public Organism(String scientificName, String assembly) { this(scientificName, "", -1, assembly); } public Organism(String scientificName, String commonName, int taxonomyCode, String assembly) { this.scientificName = scientificName != null ? scientificName : ""; this.commonName = commonName != null ? commonName : ""; this.taxonomyCode = taxonomyCode; this.assembly = assembly != null ? assembly : ""; } @Override public String toString() { final StringBuilder sb = new StringBuilder("Organism{"); sb.append("scientificName='").append(scientificName).append('\''); sb.append(", commonName='").append(commonName).append('\''); sb.append(", taxonomyCode=").append(taxonomyCode); sb.append(", assembly='").append(assembly).append('\''); sb.append('}'); return sb.toString(); } @Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } Organism organism = (Organism) o; return Objects.equals(taxonomyCode, organism.taxonomyCode) && Objects.equals(scientificName, organism.scientificName) && Objects.equals(commonName, organism.commonName) && Objects.equals(assembly, organism.assembly); } @Override public int hashCode() { return Objects.hash(taxonomyCode, scientificName, commonName, assembly); } public int getTaxonomyCode() { return taxonomyCode; } public Organism setTaxonomyCode(int taxonomyCode) { this.taxonomyCode = taxonomyCode; return this; } public String getScientificName() { return scientificName; } public Organism setScientificName(String scientificName) { this.scientificName = scientificName; return this; } public String getCommonName() { return commonName; } public Organism setCommonName(String commonName) { this.commonName = commonName; return this; } public String getAssembly() { return assembly; } public Organism setAssembly(String assembly) { this.assembly = assembly; return this; } } @Override public String toString() { final StringBuilder sb = new StringBuilder("Project{"); sb.append("id=").append(id); sb.append(", name='").append(name).append('\''); sb.append(", alias='").append(alias).append('\''); sb.append(", creationDate='").append(creationDate).append('\''); sb.append(", description='").append(description).append('\''); sb.append(", organization='").append(organization).append('\''); sb.append(", status=").append(status); sb.append(", lastModified='").append(lastModified).append('\''); sb.append(", size=").append(size); sb.append(", studies=").append(studies); sb.append(", dataStores=").append(dataStores); sb.append(", attributes=").append(attributes); sb.append('}'); return sb.toString(); } public long getId() { return id; } public Project setId(long id) { this.id = id; return this; } public String getName() { return name; } public Project setName(String name) { this.name = name; return this; } public String getAlias() { return alias; } public Project setAlias(String alias) { this.alias = alias; return this; } public String getCreationDate() { return creationDate; } public Project setCreationDate(String creationDate) { this.creationDate = creationDate; return this; } public String getDescription() { return description; } public Project setDescription(String description) { this.description = description; return this; } public String getOrganization() { return organization; } public Project setOrganization(String organization) { this.organization = organization; return this; } public Organism getOrganism() { return organism; } public Project setOrganism(Organism organism) { this.organism = organism; return this; } public Status getStatus() { return status; } public Project setStatus(Status status) { this.status = status; return this; } public String getLastModified() { return lastModified; } public Project setLastModified(String lastModified) { this.lastModified = lastModified; return this; } public long getSize() { return size; } public Project setSize(long size) { this.size = size; return this; } public List<Study> getStudies() { return studies; } public Project setStudies(List<Study> studies) { this.studies = studies; return this; } public Map<File.Bioformat, DataStore> getDataStores() { return dataStores; } public Project setDataStores(Map<File.Bioformat, DataStore> dataStores) { this.dataStores = dataStores; return this; } public Map<String, Object> getAttributes() { return attributes; } public Project setAttributes(Map<String, Object> attributes) { this.attributes = attributes; return this; } }