package org.opencb.opencga.storage.core.metadata; import org.opencb.commons.datastore.core.Query; import org.opencb.commons.datastore.core.QueryOptions; import org.opencb.opencga.core.common.GitRepositoryState; import java.time.Instant; import java.util.List; import java.util.Objects; /** * Created on 06/12/16. * * @author Jacobo Coll <jacobo167@gmail.com> */ public class ExportMetadata { private final List<StudyConfiguration> studies; private final String date; private final Query query; private final QueryOptions queryOptions; private final String version; private final String gitVersion; // TODO: // private final long numVariants; ExportMetadata() { studies = null; date = null; query = null; queryOptions = null; version = null; gitVersion = null; } public ExportMetadata(List<StudyConfiguration> studies, Query query, QueryOptions queryOptions) { this.studies = studies; this.queryOptions = queryOptions; date = Instant.now().toString(); this.query = query; version = GitRepositoryState.get().getDescribeShort(); gitVersion = GitRepositoryState.get().getCommitId(); } public ExportMetadata(List<StudyConfiguration> studies, String date, Query query, QueryOptions queryOptions, String version, String gitVersion) { this.studies = studies; this.date = date; this.query = query; this.queryOptions = queryOptions; this.version = version; this.gitVersion = gitVersion; } public List<StudyConfiguration> getStudies() { return studies; } public String getDate() { return date; } public Query getQuery() { return query; } public QueryOptions getQueryOptions() { return queryOptions; } public String getVersion() { return version; } public String getGitVersion() { return gitVersion; } @Override public String toString() { final StringBuilder sb = new StringBuilder("ExportMetadata{"); sb.append("studies=").append(studies); sb.append(", date='").append(date).append('\''); sb.append(", query=").append(query); sb.append(", queryOptions=").append(queryOptions); sb.append(", version='").append(version).append('\''); sb.append(", gitVersion='").append(gitVersion).append('\''); sb.append('}'); return sb.toString(); } @Override public boolean equals(Object o) { if (this == o) { return true; } if (!(o instanceof ExportMetadata)) { return false; } ExportMetadata that = (ExportMetadata) o; return Objects.equals(studies, that.studies) && Objects.equals(date, that.date) && Objects.equals(query, that.query) && Objects.equals(queryOptions, that.queryOptions) && Objects.equals(version, that.version) && Objects.equals(gitVersion, that.gitVersion); } @Override public int hashCode() { return Objects.hash(studies, date, query, queryOptions, version, gitVersion); } }