3 * Copyright (C) 2015 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
10 package eu
.etaxonomy
.cdm
.api
.service
.dto
;
13 import java
.util
.ArrayList
;
14 import java
.util
.List
;
16 import org
.hibernate
.envers
.tools
.Pair
;
23 public class DerivateDataDTO
{
25 private List
<Pair
<String
, String
>> specimenScans
;
26 private List
<MolecularData
> molecularDataList
;
27 private List
<Pair
<String
, String
>> detailImages
;
30 * @return the molecularData
32 public List
<MolecularData
> getMolecularDataList() {
33 return molecularDataList
;
36 public MolecularData
addProviderLink(URI uri
, String linkText
) {
37 if(this.molecularDataList
==null){
38 molecularDataList
= new ArrayList
<MolecularData
>();
40 MolecularData molecularData
= new MolecularData(new Link(uri
, linkText
));
41 this.molecularDataList
.add(molecularData
);
46 * @return the specimenScans
48 public List
<Pair
<String
, String
>> getSpecimenScans() {
52 public void addSpecimenScan(String uri
, String herbarium
){
53 if(specimenScans
==null){
54 specimenScans
= new ArrayList
<Pair
<String
,String
>>();
56 specimenScans
.add(new Pair
<String
, String
>(uri
, herbarium
));
60 * @return the detailImages
62 public List
<Pair
<String
, String
>> getDetailImages() {
66 public void addDetailImage(String uri
, String motif
){
67 if(detailImages
==null){
68 detailImages
= new ArrayList
<Pair
<String
,String
>>();
70 detailImages
.add(new Pair
<String
, String
>(uri
, motif
));
73 public class MolecularData
{
74 private final Link providerLink
;
75 private List
<ContigFile
> contigFiles
;
77 public MolecularData(Link providerLink
) {
79 this.providerLink
= providerLink
;
82 public ContigFile
addContigFile(URI uri
, String linkText
){
83 if(contigFiles
==null){
84 contigFiles
= new ArrayList
<ContigFile
>();
86 ContigFile contigFile
= new ContigFile(new Link(uri
, linkText
));
87 contigFiles
.add(contigFile
);
91 public synchronized Link
getProviderLink() {
95 public List
<ContigFile
> getContigFiles() {
101 public class ContigFile
{
102 private final Link contigLink
;
103 private List
<Link
> primerLinks
;
105 public ContigFile(Link contigLink
) {
106 this.contigLink
= contigLink
;
109 public void addPrimerLink(URI uri
, String linkText
){
110 if(primerLinks
==null){
111 primerLinks
= new ArrayList
<Link
>();
113 primerLinks
.add(new Link(uri
, linkText
));
116 public Link
getContigLink() {
120 public List
<Link
> getPrimerLinks() {
127 private String linkText
;
130 public Link(URI uri
, String linkText
) {
132 this.linkText
= linkText
;
136 * @return the linkText
138 public synchronized String
getLinkText() {
142 * @param linkText the linkText to set
144 public synchronized void setLinkText(String linkText
) {
145 this.linkText
= linkText
;
150 public synchronized URI
getUri() {
154 * @param uri the uri to set
156 public synchronized void setUri(URI uri
) {
160 * @see java.lang.Object#hashCode()
163 public int hashCode() {
164 final int prime
= 31;
166 result
= prime
* result
+ ((linkText
== null) ?
0 : linkText
.hashCode());
167 result
= prime
* result
+ ((uri
== null) ?
0 : uri
.hashCode());
171 * @see java.lang.Object#equals(java.lang.Object)
174 public boolean equals(Object obj
) {
181 if (getClass() != obj
.getClass()) {
184 Link other
= (Link
) obj
;
185 if (linkText
== null) {
186 if (other
.linkText
!= null) {
189 } else if (!linkText
.equals(other
.linkText
)) {
193 if (other
.uri
!= null) {
196 } else if (!uri
.equals(other
.uri
)) {