View Javadoc
1   package fr.ifremer.reefdb.ui.swing.content.observation;
2   
3   /*
4    * #%L
5    * Reef DB :: UI
6    * $Id:$
7    * $HeadURL:$
8    * %%
9    * Copyright (C) 2014 - 2015 Ifremer
10   * %%
11   * This program is free software: you can redistribute it and/or modify
12   * it under the terms of the GNU Affero General Public License as published by
13   * the Free Software Foundation, either version 3 of the License, or
14   * (at your option) any later version.
15   * 
16   * This program is distributed in the hope that it will be useful,
17   * but WITHOUT ANY WARRANTY; without even the implied warranty of
18   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19   * GNU General Public License for more details.
20   * 
21   * You should have received a copy of the GNU Affero General Public License
22   * along with this program.  If not, see <http://www.gnu.org/licenses/>.
23   * #L%
24   */
25  
26  import fr.ifremer.reefdb.dto.*;
27  import fr.ifremer.reefdb.dto.configuration.control.ControlRuleDTO;
28  import fr.ifremer.reefdb.dto.configuration.programStrategy.PmfmStrategyDTO;
29  import fr.ifremer.reefdb.dto.configuration.programStrategy.ProgramDTO;
30  import fr.ifremer.reefdb.dto.data.measurement.MeasurementAware;
31  import fr.ifremer.reefdb.dto.data.measurement.MeasurementDTO;
32  import fr.ifremer.reefdb.dto.data.photo.PhotoDTO;
33  import fr.ifremer.reefdb.dto.data.sampling.SamplingOperationDTO;
34  import fr.ifremer.reefdb.dto.data.survey.CampaignDTO;
35  import fr.ifremer.reefdb.dto.data.survey.OccasionDTO;
36  import fr.ifremer.reefdb.dto.data.survey.SurveyDTO;
37  import fr.ifremer.reefdb.dto.referential.*;
38  import fr.ifremer.reefdb.dto.referential.pmfm.PmfmDTO;
39  import fr.ifremer.reefdb.ui.swing.content.observation.operation.measurement.OperationMeasurementsTabUIModel;
40  import fr.ifremer.reefdb.ui.swing.content.observation.photo.PhotosTabUIModel;
41  import fr.ifremer.reefdb.ui.swing.content.observation.survey.SurveyDetailsTabUIModel;
42  import fr.ifremer.reefdb.ui.swing.content.observation.survey.measurement.SurveyMeasurementsTabUIModel;
43  import fr.ifremer.reefdb.ui.swing.util.AbstractReefDbBeanUIModel;
44  import org.nuiton.util.beans.Binder;
45  import org.nuiton.util.beans.BinderFactory;
46  
47  import java.time.LocalDate;
48  import java.util.Collection;
49  import java.util.Date;
50  import java.util.List;
51  
52  /**
53   * Modele pour l ecran observation.
54   */
55  public class ObservationUIModel extends AbstractReefDbBeanUIModel<SurveyDTO, ObservationUIModel> implements SurveyDTO {
56  
57      /** Constant <code>PROPERTY_EDITABLE="editable"</code> */
58      public static final String PROPERTY_EDITABLE = "editable";
59      private static final Binder<ObservationUIModel, SurveyDTO> TO_BEAN_BINDER =
60              BinderFactory.newBinder(ObservationUIModel.class, SurveyDTO.class);
61      private static final Binder<SurveyDTO, ObservationUIModel> FROM_BEAN_BINDER =
62              BinderFactory.newBinder(SurveyDTO.class, ObservationUIModel.class);
63      private SurveyDetailsTabUIModel surveyDetailsTabUIModel;
64      private SurveyMeasurementsTabUIModel surveyMeasurementsTabUIModel;
65      private OperationMeasurementsTabUIModel operationMeasurementsTabUIModel;
66      private PhotosTabUIModel photosTabUIModel;
67      // the PMFM strategy list for the entire survey
68      private List<PmfmStrategyDTO> pmfmStrategies;
69      // the preconditioned rules
70      private List<ControlRuleDTO> preconditionedRules;
71      // the grouped rules
72      private List<ControlRuleDTO> groupedRules;
73      private boolean editable;
74      // the current full list of available taxons
75      private List<TaxonDTO> allAvailableTaxons;
76      // the current full list of available taxon groups
77      private List<TaxonGroupDTO> allAvailableTaxonGroups;
78      // determine if the available taxons are context driven
79      private Boolean forceNoContextOnTaxons;
80      // determine if the available taxon groups are context driven
81      private Boolean forceNoContextOnTaxonGroups;
82  
83      /**
84       * <p>Constructor for ObservationUIModel.</p>
85       */
86      public ObservationUIModel() {
87          super(FROM_BEAN_BINDER, TO_BEAN_BINDER);
88      }
89  
90      /**
91       * Check if there is real error (if not, means control is valid, then the save is enabled) (Mantis #50538)
92       *
93       * @return true if already valid or there is only control errors
94       */
95      public boolean isControlValid() {
96          if (isValid() || !isEditable())
97              return true;
98          if (getSurveyMeasurementsTabUIModel() == null
99              || getSurveyMeasurementsTabUIModel().getUngroupedTableUIModel() == null
100             || getSurveyMeasurementsTabUIModel().getGroupedTableUIModel() == null
101             || getOperationMeasurementsTabUIModel() == null
102             || getOperationMeasurementsTabUIModel().getUngroupedTableUIModel() == null
103             || getOperationMeasurementsTabUIModel().getGroupedTableUIModel() == null
104         )
105             return false;
106 
107         for (MeasurementAware bean: getSurveyMeasurementsTabUIModel().getUngroupedTableUIModel().getRows()) {
108             if (!ReefDbBeans.getErrors(bean, false).isEmpty()) {
109                 return false;
110             }
111         }
112         for (MeasurementAware bean: getSurveyMeasurementsTabUIModel().getGroupedTableUIModel().getRows()) {
113             if (!ReefDbBeans.getErrors(bean, false).isEmpty()) {
114                 return false;
115             }
116         }
117         for (MeasurementAware bean: getOperationMeasurementsTabUIModel().getUngroupedTableUIModel().getRows()) {
118             if (!ReefDbBeans.getErrors(bean, false).isEmpty()) {
119                 return false;
120             }
121         }
122         for (MeasurementAware bean: getOperationMeasurementsTabUIModel().getGroupedTableUIModel().getRows()) {
123             if (!ReefDbBeans.getErrors(bean, false).isEmpty()) {
124                 return false;
125             }
126         }
127         return true;
128     }
129 
130     /**
131      * <p>isEditable.</p>
132      *
133      * @return a boolean.
134      */
135     public boolean isEditable() {
136         return editable;
137     }
138 
139     /**
140      * <p>Setter for the field <code>editable</code>.</p>
141      *
142      * @param editable a boolean.
143      */
144     public void setEditable(boolean editable) {
145         this.editable = editable;
146         firePropertyChange(PROPERTY_EDITABLE, null, editable);
147     }
148 
149     /**
150      * <p>Getter for the field <code>surveyDetailsTabUIModel</code>.</p>
151      *
152      * @return a {@link fr.ifremer.reefdb.ui.swing.content.observation.survey.SurveyDetailsTabUIModel} object.
153      */
154     public SurveyDetailsTabUIModel getSurveyDetailsTabUIModel() {
155         return surveyDetailsTabUIModel;
156     }
157 
158     /**
159      * <p>Setter for the field <code>surveyDetailsTabUIModel</code>.</p>
160      *
161      * @param surveyDetailsTabUIModel a {@link fr.ifremer.reefdb.ui.swing.content.observation.survey.SurveyDetailsTabUIModel} object.
162      */
163     public void setSurveyDetailsTabUIModel(SurveyDetailsTabUIModel surveyDetailsTabUIModel) {
164         this.surveyDetailsTabUIModel = surveyDetailsTabUIModel;
165         this.surveyDetailsTabUIModel.setObservationModel(this);
166     }
167 
168     /**
169      * <p>Getter for the field <code>surveyMeasurementsTabUIModel</code>.</p>
170      *
171      * @return a {@link fr.ifremer.reefdb.ui.swing.content.observation.survey.measurement.SurveyMeasurementsTabUIModel} object.
172      */
173     public SurveyMeasurementsTabUIModel getSurveyMeasurementsTabUIModel() {
174         return surveyMeasurementsTabUIModel;
175     }
176 
177     /**
178      * <p>Setter for the field <code>surveyMeasurementsTabUIModel</code>.</p>
179      *
180      * @param surveyMeasurementsTabUIModel a {@link fr.ifremer.reefdb.ui.swing.content.observation.survey.measurement.SurveyMeasurementsTabUIModel} object.
181      */
182     public void setSurveyMeasurementsTabUIModel(SurveyMeasurementsTabUIModel surveyMeasurementsTabUIModel) {
183         this.surveyMeasurementsTabUIModel = surveyMeasurementsTabUIModel;
184         this.surveyMeasurementsTabUIModel.setObservationModel(this);
185     }
186 
187     /**
188      * <p>Getter for the field <code>operationMeasurementsTabUIModel</code>.</p>
189      *
190      * @return a {@link fr.ifremer.reefdb.ui.swing.content.observation.operation.measurement.OperationMeasurementsTabUIModel} object.
191      */
192     public OperationMeasurementsTabUIModel getOperationMeasurementsTabUIModel() {
193         return operationMeasurementsTabUIModel;
194     }
195 
196     /**
197      * <p>Setter for the field <code>operationMeasurementsTabUIModel</code>.</p>
198      *
199      * @param operationMeasurementsTabUIModel a {@link fr.ifremer.reefdb.ui.swing.content.observation.operation.measurement.OperationMeasurementsTabUIModel} object.
200      */
201     public void setOperationMeasurementsTabUIModel(OperationMeasurementsTabUIModel operationMeasurementsTabUIModel) {
202         this.operationMeasurementsTabUIModel = operationMeasurementsTabUIModel;
203         this.operationMeasurementsTabUIModel.setObservationModel(this);
204     }
205 
206     /**
207      * <p>Getter for the field <code>photosTabUIModel</code>.</p>
208      *
209      * @return a {@link fr.ifremer.reefdb.ui.swing.content.observation.photo.PhotosTabUIModel} object.
210      */
211     public PhotosTabUIModel getPhotosTabUIModel() {
212         return photosTabUIModel;
213     }
214 
215     /**
216      * <p>Setter for the field <code>photosTabUIModel</code>.</p>
217      *
218      * @param photosTabUIModel a {@link fr.ifremer.reefdb.ui.swing.content.observation.photo.PhotosTabUIModel} object.
219      */
220     public void setPhotosTabUIModel(PhotosTabUIModel photosTabUIModel) {
221         this.photosTabUIModel = photosTabUIModel;
222         this.photosTabUIModel.setObservationModel(this);
223     }
224 
225     /**
226      * <p>Getter for the field <code>pmfmStrategies</code>.</p>
227      *
228      * @return a {@link java.util.List} object.
229      */
230     public List<PmfmStrategyDTO> getPmfmStrategies() {
231         return pmfmStrategies;
232     }
233 
234     /**
235      * <p>Setter for the field <code>pmfmStrategies</code>.</p>
236      *
237      * @param pmfmStrategies a {@link java.util.List} object.
238      */
239     public void setPmfmStrategies(List<PmfmStrategyDTO> pmfmStrategies) {
240         this.pmfmStrategies = pmfmStrategies;
241     }
242 
243     public List<ControlRuleDTO> getPreconditionedRules() {
244         return preconditionedRules;
245     }
246 
247     public void setPreconditionedRules(List<ControlRuleDTO> preconditionedRules) {
248         this.preconditionedRules = preconditionedRules;
249     }
250 
251     public List<ControlRuleDTO> getGroupedRules() {
252         return groupedRules;
253     }
254 
255     public void setGroupedRules(List<ControlRuleDTO> groupedRules) {
256         this.groupedRules = groupedRules;
257     }
258 
259     public List<TaxonDTO> getAllAvailableTaxons() {
260         return allAvailableTaxons;
261     }
262 
263     public void setAllAvailableTaxons(List<TaxonDTO> allAvailableTaxons) {
264         this.allAvailableTaxons = allAvailableTaxons;
265     }
266 
267     public List<TaxonGroupDTO> getAllAvailableTaxonGroups() {
268         return allAvailableTaxonGroups;
269     }
270 
271     public void setAllAvailableTaxonGroups(List<TaxonGroupDTO> allAvailableTaxonGroups) {
272         this.allAvailableTaxonGroups = allAvailableTaxonGroups;
273     }
274 
275     public Boolean getForceNoContextOnTaxons() {
276         return forceNoContextOnTaxons;
277     }
278 
279     public void setForceNoContextOnTaxons(Boolean forceNoContextOnTaxons) {
280         this.forceNoContextOnTaxons = forceNoContextOnTaxons;
281     }
282 
283     public Boolean getForceNoContextOnTaxonGroups() {
284         return forceNoContextOnTaxonGroups;
285     }
286 
287     public void setForceNoContextOnTaxonGroups(Boolean forceNoContextOnTaxonGroups) {
288         this.forceNoContextOnTaxonGroups = forceNoContextOnTaxonGroups;
289     }
290 
291     /** {@inheritDoc} */
292     public void setLoading(boolean loading) {
293         super.setLoading(loading);
294 
295         // propagate to sub models
296         if (surveyDetailsTabUIModel != null) {
297             surveyDetailsTabUIModel.setLoading(loading);
298         }
299         if (surveyMeasurementsTabUIModel != null) {
300             surveyMeasurementsTabUIModel.setLoading(loading);
301         }
302         if (operationMeasurementsTabUIModel != null) {
303             operationMeasurementsTabUIModel.setLoading(loading);
304         }
305         if (photosTabUIModel != null) {
306             photosTabUIModel.setLoading(loading);
307         }
308     }
309 
310     /** {@inheritDoc} */
311     @Override
312     public void setModify(boolean modify) {
313 
314         if (!modify) {
315             surveyDetailsTabUIModel.setModify(false);
316             surveyMeasurementsTabUIModel.setModify(false);
317             operationMeasurementsTabUIModel.setModify(false);
318             photosTabUIModel.setModify(false);
319         }
320 
321         super.setModify(modify);
322     }
323 
324     /** {@inheritDoc} */
325     @Override
326     protected SurveyDTO newBean() {
327         return ReefDbBeanFactory.newSurveyDTO();
328     }
329 
330     /**
331      * <p>getObservationLabel.</p>
332      *
333      * @return a {@link java.lang.String} object.
334      */
335     public String getObservationLabel() {
336         return ReefDbBeans.toString(this);
337     }
338 
339     /** {@inheritDoc} */
340     @Override
341     public String getName() {
342         return delegateObject.getName();
343     }
344 
345     /** {@inheritDoc} */
346     @Override
347     public void setName(String name) {
348         delegateObject.setName(name);
349     }
350 
351     /** {@inheritDoc} */
352     @Override
353     public LocalDate getDate() {
354         return delegateObject.getDate();
355     }
356 
357     /** {@inheritDoc} */
358     @Override
359     public void setDate(LocalDate date) {
360         delegateObject.setDate(date);
361     }
362 
363     /** {@inheritDoc} */
364     @Override
365     public Integer getTime() {
366         return delegateObject.getTime();
367     }
368 
369     /** {@inheritDoc} */
370     @Override
371     public void setTime(Integer time) {
372         delegateObject.setTime(time);
373     }
374 
375     /** {@inheritDoc} */
376     @Override
377     public Double getPreciseDepth() {
378         return delegateObject.getPreciseDepth();
379     }
380 
381     /** {@inheritDoc} */
382     @Override
383     public void setPreciseDepth(Double preciseDepth) {
384         delegateObject.setPreciseDepth(preciseDepth);
385     }
386 
387     /** {@inheritDoc} */
388     @Override
389     public String getComment() {
390         return delegateObject.getComment();
391     }
392 
393     /** {@inheritDoc} */
394     @Override
395     public void setComment(String comment) {
396         delegateObject.setComment(comment);
397     }
398 
399     /** {@inheritDoc} */
400     @Override
401     public String getPositioningComment() {
402         return delegateObject.getPositioningComment();
403     }
404 
405     /** {@inheritDoc} */
406     @Override
407     public void setPositioningComment(String positioningComment) {
408         delegateObject.setPositioningComment(positioningComment);
409     }
410 
411     /** {@inheritDoc} */
412     @Override
413     public String getQualificationComment() {
414         return delegateObject.getQualificationComment();
415     }
416 
417     /** {@inheritDoc} */
418     @Override
419     public void setQualificationComment(String qualificationComment) {
420         delegateObject.setQualificationComment(qualificationComment);
421     }
422 
423     /** {@inheritDoc} */
424     @Override
425     public Date getUpdateDate() {
426         return delegateObject.getUpdateDate();
427     }
428 
429     /** {@inheritDoc} */
430     @Override
431     public void setUpdateDate(Date updateDate) {
432         delegateObject.setUpdateDate(updateDate);
433     }
434 
435     /** {@inheritDoc} */
436     @Override
437     public Date getControlDate() {
438         return delegateObject.getControlDate();
439     }
440 
441     /** {@inheritDoc} */
442     @Override
443     public void setControlDate(Date controlDate) {
444         delegateObject.setControlDate(controlDate);
445     }
446 
447     /** {@inheritDoc} */
448     @Override
449     public Date getValidationDate() {
450         return delegateObject.getValidationDate();
451     }
452 
453     /** {@inheritDoc} */
454     @Override
455     public void setValidationDate(Date validationDate) {
456         delegateObject.setValidationDate(validationDate);
457     }
458 
459     @Override
460     public String getValidationComment() {
461         return delegateObject.getValidationComment();
462     }
463 
464     @Override
465     public void setValidationComment(String validationComment) {
466         delegateObject.setValidationComment(validationComment);
467     }
468 
469     /** {@inheritDoc} */
470     @Override
471     public Date getQualificationDate() {
472         return delegateObject.getQualificationDate();
473     }
474 
475     /** {@inheritDoc} */
476     @Override
477     public void setQualificationDate(Date validationDate) {
478         delegateObject.setQualificationDate(validationDate);
479     }
480 
481     /** {@inheritDoc} */
482     @Override
483     public boolean isSamplingOperationsLoaded() {
484         return delegateObject.isSamplingOperationsLoaded();
485     }
486 
487     /** {@inheritDoc} */
488     @Override
489     public void setSamplingOperationsLoaded(boolean samplingOperationsLoaded) {
490         delegateObject.setSamplingOperationsLoaded(samplingOperationsLoaded);
491     }
492 
493     /** {@inheritDoc} */
494     @Override
495     public boolean isObserversLoaded() {
496         return delegateObject.isObserversLoaded();
497     }
498 
499     /** {@inheritDoc} */
500     @Override
501     public void setObserversLoaded(boolean observersLoaded) {
502         delegateObject.setObserversLoaded(observersLoaded);
503     }
504 
505     /** {@inheritDoc} */
506     @Override
507     public boolean isMeasurementsLoaded() {
508         return delegateObject.isMeasurementsLoaded();
509     }
510 
511     /** {@inheritDoc} */
512     @Override
513     public void setMeasurementsLoaded(boolean measurementsLoaded) {
514         delegateObject.setMeasurementsLoaded(measurementsLoaded);
515     }
516 
517     /** {@inheritDoc} */
518     @Override
519     public boolean isPhotosLoaded() {
520         return delegateObject.isPhotosLoaded();
521     }
522 
523     /** {@inheritDoc} */
524     @Override
525     public void setPhotosLoaded(boolean photosLoaded) {
526         delegateObject.setPhotosLoaded(photosLoaded);
527     }
528 
529     /** {@inheritDoc} */
530     @Override
531     public boolean isDirty() {
532         return delegateObject.isDirty();
533     }
534 
535     /** {@inheritDoc} */
536     @Override
537     public void setDirty(boolean dirty) {
538         delegateObject.setDirty(dirty);
539     }
540 
541     /** {@inheritDoc} */
542     @Override
543     public DepartmentDTO getRecorderDepartment() {
544         return delegateObject.getRecorderDepartment();
545     }
546 
547     /** {@inheritDoc} */
548     @Override
549     public void setRecorderDepartment(DepartmentDTO department) {
550         delegateObject.setRecorderDepartment(department);
551     }
552 
553     /** {@inheritDoc} */
554     @Override
555     public DepthDTO getDepth() {
556         return delegateObject.getDepth();
557     }
558 
559     /** {@inheritDoc} */
560     @Override
561     public void setDepth(DepthDTO depth) {
562         delegateObject.setDepth(depth);
563     }
564 
565     /** {@inheritDoc} */
566     @Override
567     public CoordinateDTO getCoordinate() {
568         return delegateObject.getCoordinate();
569     }
570 
571     /** {@inheritDoc} */
572     @Override
573     public void setCoordinate(CoordinateDTO coordinate) {
574         delegateObject.setCoordinate(coordinate);
575     }
576 
577     /** {@inheritDoc} */
578     @Override
579     public PositioningSystemDTO getPositioning() {
580         return delegateObject.getPositioning();
581     }
582 
583     /** {@inheritDoc} */
584     @Override
585     public void setPositioning(PositioningSystemDTO positioning) {
586         delegateObject.setPositioning(positioning);
587     }
588 
589     /** {@inheritDoc} */
590     @Override
591     public CampaignDTO getCampaign() {
592         return delegateObject.getCampaign();
593     }
594 
595     /** {@inheritDoc} */
596     @Override
597     public void setCampaign(CampaignDTO campaign) {
598         delegateObject.setCampaign(campaign);
599     }
600 
601     /** {@inheritDoc} */
602     @Override
603     public OccasionDTO getOccasion() {
604         return delegateObject.getOccasion();
605     }
606 
607     /** {@inheritDoc} */
608     @Override
609     public void setOccasion(OccasionDTO occasion) {
610         delegateObject.setOccasion(occasion);
611     }
612 
613     /** {@inheritDoc} */
614     @Override
615     public LocationDTO getLocation() {
616         return delegateObject.getLocation();
617     }
618 
619     /** {@inheritDoc} */
620     @Override
621     public void setLocation(LocationDTO location) {
622         delegateObject.setLocation(location);
623     }
624 
625     @Override
626     public DepartmentDTO getDepthAnalyst() {
627         return delegateObject.getDepthAnalyst();
628     }
629 
630     @Override
631     public void setDepthAnalyst(DepartmentDTO depthAnalyst) {
632         delegateObject.setDepthAnalyst(depthAnalyst);
633     }
634 
635     /** {@inheritDoc} */
636     @Override
637     public PmfmDTO getIndividualPmfms(int index) {
638         return delegateObject.getIndividualPmfms(index);
639     }
640 
641     /** {@inheritDoc} */
642     @Override
643     public boolean isIndividualPmfmsEmpty() {
644         return delegateObject.isIndividualPmfmsEmpty();
645     }
646 
647     /** {@inheritDoc} */
648     @Override
649     public int sizeIndividualPmfms() {
650         return delegateObject.sizeIndividualPmfms();
651     }
652 
653     /** {@inheritDoc} */
654     @Override
655     public void addIndividualPmfms(PmfmDTO individualPmfms) {
656         delegateObject.addIndividualPmfms(individualPmfms);
657     }
658 
659     /** {@inheritDoc} */
660     @Override
661     public void addAllIndividualPmfms(Collection<PmfmDTO> individualPmfms) {
662         delegateObject.addAllIndividualPmfms(individualPmfms);
663     }
664 
665     /** {@inheritDoc} */
666     @Override
667     public boolean removeIndividualPmfms(PmfmDTO individualPmfms) {
668         return delegateObject.removeIndividualPmfms(individualPmfms);
669     }
670 
671     /** {@inheritDoc} */
672     @Override
673     public boolean removeAllIndividualPmfms(Collection<PmfmDTO> individualPmfms) {
674         return delegateObject.removeAllIndividualPmfms(individualPmfms);
675     }
676 
677     /** {@inheritDoc} */
678     @Override
679     public boolean containsIndividualPmfms(PmfmDTO individualPmfms) {
680         return delegateObject.containsIndividualPmfms(individualPmfms);
681     }
682 
683     /** {@inheritDoc} */
684     @Override
685     public boolean containsAllIndividualPmfms(Collection<PmfmDTO> individualPmfms) {
686         return delegateObject.containsAllIndividualPmfms(individualPmfms);
687     }
688 
689     /** {@inheritDoc} */
690     @Override
691     public List<PmfmDTO> getIndividualPmfms() {
692         return delegateObject.getIndividualPmfms();
693     }
694 
695     /** {@inheritDoc} */
696     @Override
697     public void setIndividualPmfms(List<PmfmDTO> individualPmfms) {
698         delegateObject.setIndividualPmfms(individualPmfms);
699     }
700 
701     /** {@inheritDoc} */
702     @Override
703     public PmfmDTO getPmfms(int index) {
704         return delegateObject.getPmfms(index);
705     }
706 
707     /** {@inheritDoc} */
708     @Override
709     public boolean isPmfmsEmpty() {
710         return delegateObject.isPmfmsEmpty();
711     }
712 
713     /** {@inheritDoc} */
714     @Override
715     public int sizePmfms() {
716         return delegateObject.sizePmfms();
717     }
718 
719     /** {@inheritDoc} */
720     @Override
721     public void addPmfms(PmfmDTO pmfms) {
722         delegateObject.addPmfms(pmfms);
723     }
724 
725     /** {@inheritDoc} */
726     @Override
727     public void addAllPmfms(Collection<PmfmDTO> pmfms) {
728         delegateObject.addAllPmfms(pmfms);
729     }
730 
731     /** {@inheritDoc} */
732     @Override
733     public boolean removePmfms(PmfmDTO pmfms) {
734         return delegateObject.removePmfms(pmfms);
735     }
736 
737     /** {@inheritDoc} */
738     @Override
739     public boolean removeAllPmfms(Collection<PmfmDTO> pmfms) {
740         return delegateObject.removeAllPmfms(pmfms);
741     }
742 
743     /** {@inheritDoc} */
744     @Override
745     public boolean containsPmfms(PmfmDTO pmfms) {
746         return delegateObject.containsPmfms(pmfms);
747     }
748 
749     /** {@inheritDoc} */
750     @Override
751     public boolean containsAllPmfms(Collection<PmfmDTO> pmfms) {
752         return delegateObject.containsAllPmfms(pmfms);
753     }
754 
755     /** {@inheritDoc} */
756     @Override
757     public List<PmfmDTO> getPmfms() {
758         return delegateObject.getPmfms();
759     }
760 
761     /** {@inheritDoc} */
762     @Override
763     public void setPmfms(List<PmfmDTO> pmfms) {
764         delegateObject.setPmfms(pmfms);
765     }
766 
767     /** {@inheritDoc} */
768     @Override
769     public SamplingOperationDTO getSamplingOperations(int index) {
770         return delegateObject.getSamplingOperations(index);
771     }
772 
773     /** {@inheritDoc} */
774     @Override
775     public boolean isSamplingOperationsEmpty() {
776         return delegateObject.isSamplingOperationsEmpty();
777     }
778 
779     /** {@inheritDoc} */
780     @Override
781     public int sizeSamplingOperations() {
782         return delegateObject.sizeSamplingOperations();
783     }
784 
785     /** {@inheritDoc} */
786     @Override
787     public void addSamplingOperations(SamplingOperationDTO samplingOperations) {
788         delegateObject.addSamplingOperations(samplingOperations);
789     }
790 
791     /** {@inheritDoc} */
792     @Override
793     public void addAllSamplingOperations(Collection<SamplingOperationDTO> samplingOperations) {
794         delegateObject.addAllSamplingOperations(samplingOperations);
795     }
796 
797     /** {@inheritDoc} */
798     @Override
799     public boolean removeSamplingOperations(SamplingOperationDTO samplingOperations) {
800         return delegateObject.removeSamplingOperations(samplingOperations);
801     }
802 
803     /** {@inheritDoc} */
804     @Override
805     public boolean removeAllSamplingOperations(Collection<SamplingOperationDTO> samplingOperations) {
806         return delegateObject.removeAllSamplingOperations(samplingOperations);
807     }
808 
809     /** {@inheritDoc} */
810     @Override
811     public boolean containsSamplingOperations(SamplingOperationDTO samplingOperations) {
812         return delegateObject.containsSamplingOperations(samplingOperations);
813     }
814 
815     /** {@inheritDoc} */
816     @Override
817     public boolean containsAllSamplingOperations(Collection<SamplingOperationDTO> samplingOperations) {
818         return delegateObject.containsAllSamplingOperations(samplingOperations);
819     }
820 
821     /** {@inheritDoc} */
822     @Override
823     public Collection<SamplingOperationDTO> getSamplingOperations() {
824         return delegateObject.getSamplingOperations();
825     }
826 
827     /** {@inheritDoc} */
828     @Override
829     public void setSamplingOperations(Collection<SamplingOperationDTO> samplingOperations) {
830         delegateObject.setSamplingOperations(samplingOperations);
831     }
832 
833     /** {@inheritDoc} */
834     @Override
835     public PhotoDTO getPhotos(int index) {
836         return delegateObject.getPhotos(index);
837     }
838 
839     /** {@inheritDoc} */
840     @Override
841     public boolean isPhotosEmpty() {
842         return delegateObject.isPhotosEmpty();
843     }
844 
845     /** {@inheritDoc} */
846     @Override
847     public int sizePhotos() {
848         return delegateObject.sizePhotos();
849     }
850 
851     /** {@inheritDoc} */
852     @Override
853     public void addPhotos(PhotoDTO photo) {
854         delegateObject.addPhotos(photo);
855     }
856 
857     /** {@inheritDoc} */
858     @Override
859     public void addAllPhotos(Collection<PhotoDTO> photo) {
860         delegateObject.addAllPhotos(photo);
861     }
862 
863     /** {@inheritDoc} */
864     @Override
865     public boolean removePhotos(PhotoDTO photo) {
866         return delegateObject.removePhotos(photo);
867     }
868 
869     /** {@inheritDoc} */
870     @Override
871     public boolean removeAllPhotos(Collection<PhotoDTO> photo) {
872         return delegateObject.removeAllPhotos(photo);
873     }
874 
875     /** {@inheritDoc} */
876     @Override
877     public boolean containsPhotos(PhotoDTO photo) {
878         return delegateObject.containsPhotos(photo);
879     }
880 
881     /** {@inheritDoc} */
882     @Override
883     public boolean containsAllPhotos(Collection<PhotoDTO> photo) {
884         return delegateObject.containsAllPhotos(photo);
885     }
886 
887     /** {@inheritDoc} */
888     @Override
889     public List<PhotoDTO> getPhotos() {
890         return delegateObject.getPhotos();
891     }
892 
893     /** {@inheritDoc} */
894     @Override
895     public void setPhotos(List<PhotoDTO> photo) {
896         delegateObject.setPhotos(photo);
897     }
898 
899     /** {@inheritDoc} */
900     @Override
901     public ProgramDTO getProgram() {
902         return delegateObject.getProgram();
903     }
904 
905     /** {@inheritDoc} */
906     @Override
907     public void setProgram(ProgramDTO program) {
908         delegateObject.setProgram(program);
909     }
910 
911     /** {@inheritDoc} */
912     @Override
913     public MeasurementDTO getMeasurements(int index) {
914         return delegateObject.getMeasurements(index);
915     }
916 
917     /** {@inheritDoc} */
918     @Override
919     public boolean isMeasurementsEmpty() {
920         return delegateObject.isMeasurementsEmpty();
921     }
922 
923     /** {@inheritDoc} */
924     @Override
925     public int sizeMeasurements() {
926         return delegateObject.sizeMeasurements();
927     }
928 
929     /** {@inheritDoc} */
930     @Override
931     public void addMeasurements(MeasurementDTO measurements) {
932         delegateObject.addMeasurements(measurements);
933     }
934 
935     /** {@inheritDoc} */
936     @Override
937     public void addAllMeasurements(Collection<MeasurementDTO> measurements) {
938         delegateObject.addAllMeasurements(measurements);
939     }
940 
941     /** {@inheritDoc} */
942     @Override
943     public boolean removeMeasurements(MeasurementDTO measurements) {
944         return delegateObject.removeMeasurements(measurements);
945     }
946 
947     /** {@inheritDoc} */
948     @Override
949     public boolean removeAllMeasurements(Collection<MeasurementDTO> measurements) {
950         return delegateObject.removeAllMeasurements(measurements);
951     }
952 
953     /** {@inheritDoc} */
954     @Override
955     public boolean containsMeasurements(MeasurementDTO measurements) {
956         return delegateObject.containsMeasurements(measurements);
957     }
958 
959     /** {@inheritDoc} */
960     @Override
961     public boolean containsAllMeasurements(Collection<MeasurementDTO> measurements) {
962         return delegateObject.containsAllMeasurements(measurements);
963     }
964 
965     /** {@inheritDoc} */
966     @Override
967     public List<MeasurementDTO> getMeasurements() {
968         return delegateObject.getMeasurements();
969     }
970 
971     /** {@inheritDoc} */
972     @Override
973     public void setMeasurements(List<MeasurementDTO> measurements) {
974         delegateObject.setMeasurements(measurements);
975     }
976 
977     /** {@inheritDoc} */
978     @Override
979     public PersonDTO getObservers(int index) {
980         return delegateObject.getObservers(index);
981     }
982 
983     /** {@inheritDoc} */
984     @Override
985     public boolean isObserversEmpty() {
986         return delegateObject.isObserversEmpty();
987     }
988 
989     /** {@inheritDoc} */
990     @Override
991     public int sizeObservers() {
992         return delegateObject.sizeObservers();
993     }
994 
995     /** {@inheritDoc} */
996     @Override
997     public void addObservers(PersonDTO observers) {
998         delegateObject.addObservers(observers);
999     }
1000 
1001     /** {@inheritDoc} */
1002     @Override
1003     public void addAllObservers(Collection<PersonDTO> observers) {
1004         delegateObject.addAllObservers(observers);
1005     }
1006 
1007     /** {@inheritDoc} */
1008     @Override
1009     public boolean removeObservers(PersonDTO observers) {
1010         return delegateObject.removeObservers(observers);
1011     }
1012 
1013     /** {@inheritDoc} */
1014     @Override
1015     public boolean removeAllObservers(Collection<PersonDTO> observers) {
1016         return delegateObject.removeAllObservers(observers);
1017     }
1018 
1019     /** {@inheritDoc} */
1020     @Override
1021     public boolean containsObservers(PersonDTO observers) {
1022         return delegateObject.containsObservers(observers);
1023     }
1024 
1025     /** {@inheritDoc} */
1026     @Override
1027     public boolean containsAllObservers(Collection<PersonDTO> observers) {
1028         return delegateObject.containsAllObservers(observers);
1029     }
1030 
1031     /** {@inheritDoc} */
1032     @Override
1033     public Collection<PersonDTO> getObservers() {
1034         return delegateObject.getObservers();
1035     }
1036 
1037     /** {@inheritDoc} */
1038     @Override
1039     public void setObservers(Collection<PersonDTO> observers) {
1040         delegateObject.setObservers(observers);
1041     }
1042 
1043     /** {@inheritDoc} */
1044     @Override
1045     public SynchronizationStatusDTO getSynchronizationStatus() {
1046         return delegateObject.getSynchronizationStatus();
1047     }
1048 
1049     /** {@inheritDoc} */
1050     @Override
1051     public void setSynchronizationStatus(SynchronizationStatusDTO synchronizationstatus) {
1052         delegateObject.setSynchronizationStatus(synchronizationstatus);
1053     }
1054 
1055     /** {@inheritDoc} */
1056     @Override
1057     public ErrorDTO getErrors(int index) {
1058         return delegateObject.getErrors(index);
1059     }
1060 
1061     /** {@inheritDoc} */
1062     @Override
1063     public boolean isErrorsEmpty() {
1064         return delegateObject.isErrorsEmpty();
1065     }
1066 
1067     /** {@inheritDoc} */
1068     @Override
1069     public int sizeErrors() {
1070         return delegateObject.sizeErrors();
1071     }
1072 
1073     /** {@inheritDoc} */
1074     @Override
1075     public void addErrors(ErrorDTO error) {
1076         delegateObject.addErrors(error);
1077     }
1078 
1079     /** {@inheritDoc} */
1080     @Override
1081     public void addAllErrors(Collection<ErrorDTO> error) {
1082         delegateObject.addAllErrors(error);
1083     }
1084 
1085     /** {@inheritDoc} */
1086     @Override
1087     public boolean removeErrors(ErrorDTO error) {
1088         return delegateObject.removeErrors(error);
1089     }
1090 
1091     /** {@inheritDoc} */
1092     @Override
1093     public boolean removeAllErrors(Collection<ErrorDTO> error) {
1094         return delegateObject.removeAllErrors(error);
1095     }
1096 
1097     /** {@inheritDoc} */
1098     @Override
1099     public boolean containsErrors(ErrorDTO error) {
1100         return delegateObject.containsErrors(error);
1101     }
1102 
1103     /** {@inheritDoc} */
1104     @Override
1105     public boolean containsAllErrors(Collection<ErrorDTO> error) {
1106         return delegateObject.containsAllErrors(error);
1107     }
1108 
1109     /** {@inheritDoc} */
1110     @Override
1111     public Collection<ErrorDTO> getErrors() {
1112         return delegateObject.getErrors();
1113     }
1114 
1115     /** {@inheritDoc} */
1116     @Override
1117     public void setErrors(Collection<ErrorDTO> error) {
1118         delegateObject.setErrors(error);
1119     }
1120 
1121     /** {@inheritDoc} */
1122     @Override
1123     public MeasurementDTO getIndividualMeasurements(int index) {
1124         return delegateObject.getIndividualMeasurements(index);
1125     }
1126 
1127     /** {@inheritDoc} */
1128     @Override
1129     public boolean isIndividualMeasurementsEmpty() {
1130         return delegateObject.isIndividualMeasurementsEmpty();
1131     }
1132 
1133     /** {@inheritDoc} */
1134     @Override
1135     public int sizeIndividualMeasurements() {
1136         return delegateObject.sizeIndividualMeasurements();
1137     }
1138 
1139     /** {@inheritDoc} */
1140     @Override
1141     public void addIndividualMeasurements(MeasurementDTO individualMeasurements) {
1142         delegateObject.addIndividualMeasurements(individualMeasurements);
1143     }
1144 
1145     /** {@inheritDoc} */
1146     @Override
1147     public void addAllIndividualMeasurements(Collection<MeasurementDTO> individualMeasurements) {
1148         delegateObject.addAllIndividualMeasurements(individualMeasurements);
1149     }
1150 
1151     /** {@inheritDoc} */
1152     @Override
1153     public boolean removeIndividualMeasurements(MeasurementDTO individualMeasurements) {
1154         return delegateObject.removeIndividualMeasurements(individualMeasurements);
1155     }
1156 
1157     /** {@inheritDoc} */
1158     @Override
1159     public boolean removeAllIndividualMeasurements(Collection<MeasurementDTO> individualMeasurements) {
1160         return delegateObject.removeAllIndividualMeasurements(individualMeasurements);
1161     }
1162 
1163     /** {@inheritDoc} */
1164     @Override
1165     public boolean containsIndividualMeasurements(MeasurementDTO individualMeasurements) {
1166         return delegateObject.containsIndividualMeasurements(individualMeasurements);
1167     }
1168 
1169     /** {@inheritDoc} */
1170     @Override
1171     public boolean containsAllIndividualMeasurements(Collection<MeasurementDTO> individualMeasurements) {
1172         return delegateObject.containsAllIndividualMeasurements(individualMeasurements);
1173     }
1174 
1175     /** {@inheritDoc} */
1176     @Override
1177     public List<MeasurementDTO> getIndividualMeasurements() {
1178         return delegateObject.getIndividualMeasurements();
1179     }
1180 
1181     /** {@inheritDoc} */
1182     @Override
1183     public void setIndividualMeasurements(List<MeasurementDTO> individualMeasurements) {
1184         delegateObject.setIndividualMeasurements(individualMeasurements);
1185     }
1186 
1187 }