ref #6072 test missing entity in webservice
[cdmlib.git] / cdmlib-services / src / main / java / eu / etaxonomy / cdm / api / service / dto / DerivateDataDTO.java
1 // $Id$
2 /**
3 * Copyright (C) 2015 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
6 *
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.
9 */
10 package eu.etaxonomy.cdm.api.service.dto;
11
12 import java.net.URI;
13 import java.util.ArrayList;
14 import java.util.List;
15 import java.util.UUID;
16
17 /**
18 * @author pplitzner
19 * @date Mar 26, 2015
20 *
21 */
22 public class DerivateDataDTO {
23
24 private List<Link> specimenScans;
25 private List<MolecularData> molecularDataList;
26 private List<Link> detailImages;
27 private List<UUID> specimenScanUuids;
28 private List<UUID> detailImageUuids;
29
30 /**
31 * @return the molecularData
32 */
33 public List<MolecularData> getMolecularDataList() {
34 return molecularDataList;
35 }
36
37 public MolecularData addProviderLink(URI uri, String linkText) {
38 if(this.molecularDataList==null){
39 molecularDataList = new ArrayList<MolecularData>();
40 }
41 MolecularData molecularData = new MolecularData(new Link(uri, linkText));
42 this.molecularDataList.add(molecularData);
43 return molecularData;
44 }
45
46 /**
47 * @return the specimenScans
48 */
49 public List<Link> getSpecimenScans() {
50 return specimenScans;
51 }
52
53 public void addSpecimenScan(URI uri, String linkText){
54 if(specimenScans==null){
55 specimenScans = new ArrayList<Link>();
56 }
57 specimenScans.add(new Link(uri, linkText));
58 }
59
60 /**
61 * @return the detailImages
62 */
63 public List<Link> getDetailImages() {
64 return detailImages;
65 }
66
67 public void addDetailImage(URI uri, String motif){
68 if(detailImages==null){
69 detailImages = new ArrayList<Link>();
70 }
71 detailImages.add(new Link(uri, motif));
72 }
73
74 /**
75 * @return the specimenScanUuids
76 */
77 public List<UUID> getSpecimenScanUuids() {
78 return specimenScanUuids;
79 }
80
81 public void addSpecimenScanUuid(UUID uuid){
82 if(specimenScanUuids==null){
83 specimenScanUuids = new ArrayList<UUID>();
84 }
85 specimenScanUuids.add(uuid);
86 }
87
88 /**
89 * @return the detailImageUuids
90 */
91 public List<UUID> getDetailImageUuids() {
92 return detailImageUuids;
93 }
94
95 public void addDetailImageUuid(UUID uuid){
96 if(detailImageUuids==null){
97 detailImageUuids = new ArrayList<UUID>();
98 }
99 detailImageUuids.add(uuid);
100 }
101
102 public class MolecularData{
103 private final Link providerLink;
104 private List<ContigFile> contigFiles;
105
106 public MolecularData(Link providerLink) {
107 super();
108 this.providerLink = providerLink;
109 }
110
111 public ContigFile addContigFile(URI uri, String linkText){
112 if(contigFiles==null){
113 contigFiles = new ArrayList<ContigFile>();
114 }
115 ContigFile contigFile = new ContigFile(new Link(uri, linkText));
116 contigFiles.add(contigFile);
117 return contigFile;
118 }
119
120 public synchronized Link getProviderLink() {
121 return providerLink;
122 }
123
124 public List<ContigFile> getContigFiles() {
125 return contigFiles;
126 }
127
128 }
129
130 public class ContigFile{
131 private final Link contigLink;
132 private List<Link> primerLinks;
133
134 public ContigFile(Link contigLink) {
135 this.contigLink = contigLink;
136 }
137
138 public void addPrimerLink(URI uri, String linkText){
139 if(primerLinks==null){
140 primerLinks = new ArrayList<Link>();
141 }
142 primerLinks.add(new Link(uri, linkText));
143 }
144
145 public Link getContigLink() {
146 return contigLink;
147 }
148
149 public List<Link> getPrimerLinks() {
150 return primerLinks;
151 }
152
153 }
154
155 public class Link{
156 private String linkText;
157 private URI uri;
158
159 public Link(URI uri, String linkText) {
160 super();
161 this.linkText = linkText;
162 this.uri = uri;
163 }
164 /**
165 * @return the linkText
166 */
167 public synchronized String getLinkText() {
168 return linkText;
169 }
170 /**
171 * @param linkText the linkText to set
172 */
173 public synchronized void setLinkText(String linkText) {
174 this.linkText = linkText;
175 }
176 /**
177 * @return the uri
178 */
179 public synchronized URI getUri() {
180 return uri;
181 }
182 /**
183 * @param uri the uri to set
184 */
185 public synchronized void setUri(URI uri) {
186 this.uri = uri;
187 }
188 /* (non-Javadoc)
189 * @see java.lang.Object#hashCode()
190 */
191 @Override
192 public int hashCode() {
193 final int prime = 31;
194 int result = 1;
195 result = prime * result + ((linkText == null) ? 0 : linkText.hashCode());
196 result = prime * result + ((uri == null) ? 0 : uri.hashCode());
197 return result;
198 }
199 /* (non-Javadoc)
200 * @see java.lang.Object#equals(java.lang.Object)
201 */
202 @Override
203 public boolean equals(Object obj) {
204 if (this == obj) {
205 return true;
206 }
207 if (obj == null) {
208 return false;
209 }
210 if (getClass() != obj.getClass()) {
211 return false;
212 }
213 Link other = (Link) obj;
214 if (linkText == null) {
215 if (other.linkText != null) {
216 return false;
217 }
218 } else if (!linkText.equals(other.linkText)) {
219 return false;
220 }
221 if (uri == null) {
222 if (other.uri != null) {
223 return false;
224 }
225 } else if (!uri.equals(other.uri)) {
226 return false;
227 }
228 return true;
229 }
230 }
231
232
233 }