View Javadoc
1   /*
2    * Copyright (c) 2002-2022, City of Paris
3    * All rights reserved.
4    *
5    * Redistribution and use in source and binary forms, with or without
6    * modification, are permitted provided that the following conditions
7    * are met:
8    *
9    *  1. Redistributions of source code must retain the above copyright notice
10   *     and the following disclaimer.
11   *
12   *  2. Redistributions in binary form must reproduce the above copyright notice
13   *     and the following disclaimer in the documentation and/or other materials
14   *     provided with the distribution.
15   *
16   *  3. Neither the name of 'Mairie de Paris' nor 'Lutece' nor the names of its
17   *     contributors may be used to endorse or promote products derived from
18   *     this software without specific prior written permission.
19   *
20   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23   * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
24   * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27   * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30   * POSSIBILITY OF SUCH DAMAGE.
31   *
32   * License 1.0
33   */
34  package fr.paris.lutece.plugins.appointment.web.dto;
35  
36  import java.sql.Date;
37  
38  import javax.validation.constraints.Min;
39  import javax.validation.constraints.NotBlank;
40  import javax.validation.constraints.NotNull;
41  import javax.validation.constraints.Size;
42  
43  import fr.paris.lutece.plugins.appointment.business.rule.ReservationRule;
44  import fr.paris.lutece.portal.service.image.ImageResource;
45  import fr.paris.lutece.portal.service.rbac.RBACResource;
46  import fr.paris.lutece.portal.service.workgroup.AdminWorkgroupResource;
47  
48  /**
49   * This is the DTO class for the object AppointmentForm
50   * 
51   * @author Laurent Payen
52   *
53   */
54  public final class AppointmentFormDTO extends ReservationRule implements RBACResource, AdminWorkgroupResource
55  {
56      /**
57       * Name of the resource type of Appointment Forms
58       */
59      public static final String RESOURCE_TYPE = "APPOINTMENT_FORM";
60  
61      /**
62       * Name of the resource type of Appointment Forms
63       */
64      public static final String RESOURCE_TYPE_CREATE = "APPOINTMENT_FORM_CREATE";
65  
66      /**
67       * Serial version UID
68       */
69      private static final long serialVersionUID = 307685220867535209L;
70  
71      /**
72       * The title of the form
73       */
74      @NotBlank( message = "#i18n{appointment.validation.appointmentform.Title.notEmpty}" )
75      @Size( max = 255, message = "#i18n{appointment.validation.appointmentform.Title.size}" )
76      private String _strTitle;
77  
78      /**
79       * The description of the form
80       */
81      @NotBlank( message = "#i18n{appointment.validation.appointmentform.Description.notEmpty}" )
82      private String _strDescription;
83  
84      /**
85       * The starting time of a working day
86       */
87      private String _strTimeStart;
88  
89      /**
90       * The ending time of a working day
91       */
92      private String _strTimeEnd;
93  
94      /**
95       * The minimum time from now before a user can take an appointment
96       */
97      @NotNull( message = "#i18n{portal.validation.message.notEmpty}" )
98      @Min( value = 0, message = "#i18n{portal.validation.message.notEmpty}" )
99      private int _nMinTimeBeforeAppointment;
100 
101     /**
102      * True if it is open on Monday (checkbox)
103      */
104     private boolean _bIsOpenMonday;
105 
106     /**
107      * True if it is open on Tuesday (checkbox)
108      */
109     private boolean _bIsOpenTuesday;
110 
111     /**
112      * True if it is open on Wednesday (checkbox)
113      */
114     private boolean _bIsOpenWednesday;
115 
116     /**
117      * True if it is open on Thursday (checkbox)
118      */
119     private boolean _bIsOpenThursday;
120 
121     /**
122      * True if it is open on Friday (checkbox)
123      */
124     private boolean _bIsOpenFriday;
125 
126     /**
127      * True if it is open on Saturday (checkbox)
128      */
129     private boolean _bIsOpenSaturday;
130 
131     /**
132      * True if it is open on Sunday (checkbox)
133      */
134     private boolean _bIsOpenSunday;
135 
136     /**
137      * Starting validity date of the form
138      */
139     private Date _dateStartValidity;
140 
141     /**
142      * Ending validity date of the form
143      */
144     private Date _dateEndValidity;
145 
146     /**
147      * Date of modification of the form
148      */
149     private Date _dateOfModification;
150 
151     /**
152      * True if the form is active
153      */
154     private boolean _bIsActive;
155 
156     /**
157      * True if the title has to be displayed on the front office
158      */
159     private boolean _bDisplayTitleFo;
160 
161     /**
162      * True if the form has to be displayed on the front office portlet
163      */
164     private boolean _bIsDisplayOnPortlet = true;
165 
166     /**
167      * Number of weeks to display the form to the user
168      */
169     @NotNull( message = "#i18n{portal.validation.message.notEmpty}" )
170     @Min( value = 1, message = "#i18n{appointment.validation.appointmentform.NbWeeksToDisplay.notEmpty}" )
171     private int _nNbWeeksToDisplay = 1;
172 
173     /**
174      * True if the authentication is required
175      */
176     private boolean _bActiveAuthentication;
177 
178     /**
179      * The workflow Id
180      */
181     private int _nIdWorkflow;
182 
183     /**
184      * True if the captcha is enabled
185      */
186     private boolean _bEnableCaptcha;
187 
188     /**
189      * The Calendar Template Id
190      */
191     @Min( value = 1, message = "#i18n{portal.validation.message.notEmpty}" )
192     private int _nCalendarTemplateId;
193 
194     /**
195      * The Reference of the form (that will be in front of the reference appointment)
196      */
197     private String _strReference;
198 
199     /**
200      * True if the email is enabled
201      */
202     private boolean _bEnableMandatoryEmail;
203 
204     /**
205      * The icon of the form
206      */
207     private ImageResource _imageResource;
208 
209     /**
210      * The category of the form
211      */
212     private int _nIdCategory;
213 
214     /**
215      * Minimum of days between two appointments of a same user
216      */
217     private int _nNbDaysBeforeNewAppointment;
218 
219     /**
220      * Maximum appointments for a user on a given period
221      */
222     private int _nNbMaxAppointmentsPerUser;
223 
224     /**
225      * Number of days for the period for the the maximum appointments for a user
226      */
227     private int _nNbDaysForMaxAppointmentsPerUser;
228 
229     /**
230      * Workgroup of the form
231      */
232     private String _strWorkgroup;
233 
234     /**
235      * Longitude
236      */
237     private Double _dLongitude;
238 
239     /**
240      * Latitude
241      */
242     private Double _dLatitude;
243 
244     /**
245      * Address
246      */
247     private String _strAddress;
248     /**
249      * BoOverbooking
250      */
251     private boolean _bBoOverbooking;
252     /**
253      * isMultislotAppointment
254      */
255     private boolean _bIsMultislotAppointment;
256 
257     /**
258      * The number of consecutive slots
259      */
260     @NotNull( message = "#i18n{portal.validation.message.notEmpty}" )
261     @Min( value = 1, message = "#i18n{portal.validation.message.notEmpty}" )
262     private int _nNbConsecutiveSlots = 1;
263 
264     /**
265      * Role FO
266      */
267     private String _strRole;
268 
269     /**
270      * theoretical capacity per slot
271      */
272     @Min( value = 1, message = "#i18n{portal.validation.message.notEmpty}" )
273     private int _nCapacityPerSlot = 1;
274     
275     /**
276      * IsAnonymizable
277      */
278     private boolean _bIsAnonymizable;
279 
280     /**
281      * Anonymization Pattern
282      */
283     private String _strAnonymizationPattern;
284 
285     /**
286      * Get the maximum number of appointments authorized for a same user
287      * 
288      * @return the maximum number
289      */
290     public int getNbMaxAppointmentsPerUser( )
291     {
292         return _nNbMaxAppointmentsPerUser;
293     }
294 
295     /**
296      * Set the maximum number of appointments authorized for a same user
297      * 
298      * @param nNbMaxAppointmentsPerUser
299      *            the maximum number of appointments to set
300      */
301     public void setNbMaxAppointmentsPerUser( int nNbMaxAppointmentsPerUser )
302     {
303         this._nNbMaxAppointmentsPerUser = nNbMaxAppointmentsPerUser;
304     }
305 
306     /**
307      * Get the number of days for the period of the maximum number of appointments authorized for a same user
308      * 
309      * @return the number of days of the period
310      */
311     public int getNbDaysForMaxAppointmentsPerUser( )
312     {
313         return _nNbDaysForMaxAppointmentsPerUser;
314     }
315 
316     /**
317      * Set the number of days of the period for the maximum number of appointments authorized for a same user
318      * 
319      * @param nNbDaysForMaxAppointmentsPerUser
320      *            the number of days to set
321      */
322     public void setNbDaysForMaxAppointmentsPerUser( int nNbDaysForMaxAppointmentsPerUser )
323     {
324         this._nNbDaysForMaxAppointmentsPerUser = nNbDaysForMaxAppointmentsPerUser;
325     }
326 
327     /**
328      * Returns the Title
329      * 
330      * @return The Title
331      */
332     public String getTitle( )
333     {
334         return _strTitle;
335     }
336 
337     /**
338      * Sets the Title
339      * 
340      * @param strTitle
341      *            The Title
342      */
343     public void setTitle( String strTitle )
344     {
345         _strTitle = strTitle;
346     }
347 
348     /**
349      * Get the date of modification of the form
350      * 
351      * @return the date of modification
352      */
353     public Date getDateOfModification( )
354     {
355         if ( _dateOfModification != null )
356         {
357             return (Date) _dateOfModification.clone( );
358         }
359         else
360         {
361             return null;
362         }
363     }
364 
365     /**
366      * Set the date of modification of the form
367      * 
368      * @param dateOfModification
369      *            the date to set
370      */
371     public void setDateOfModification( Date dateOfModification )
372     {
373         if ( dateOfModification != null )
374         {
375             this._dateOfModification = (Date) dateOfModification.clone( );
376         }
377         else
378         {
379             this._dateOfModification = null;
380         }
381     }
382 
383     /**
384      * Get the description of the appointment form
385      * 
386      * @return The description of the appointment form
387      */
388     public String getDescription( )
389     {
390         return _strDescription;
391     }
392 
393     /**
394      * Set the description of the appointment form
395      * 
396      * @param strDescription
397      *            The description of the appointment form
398      */
399     public void setDescription( String strDescription )
400     {
401         this._strDescription = strDescription;
402     }
403 
404     /**
405      * Returns the Reference of the form
406      * 
407      * @return The reference of the form
408      */
409     public String getReference( )
410     {
411         return _strReference;
412     }
413 
414     /**
415      * Sets the Reference of the form
416      * 
417      * @param the
418      *            reference to set
419      * 
420      */
421     public void setReference( String strRef )
422     {
423         _strReference = strRef;
424     }
425 
426     /**
427      * Returns the starting time of the working day of the form
428      * 
429      * @return The starting time
430      */
431     public String getTimeStart( )
432     {
433         return _strTimeStart;
434     }
435 
436     /**
437      * Sets the starting time of the working day of the form
438      * 
439      * @param the
440      *            starting time to set The TimeStart
441      */
442     public void setTimeStart( String timeStart )
443     {
444         _strTimeStart = timeStart;
445     }
446 
447     /**
448      * Returns the ending time of the working day of the form
449      * 
450      * @return The ending time
451      */
452     public String getTimeEnd( )
453     {
454         return _strTimeEnd;
455     }
456 
457     /**
458      * Sets the ending time of the working day of the form
459      * 
460      * @param the
461      *            ending time to set
462      */
463     public void setTimeEnd( String timeEnd )
464     {
465         _strTimeEnd = timeEnd;
466     }
467 
468     /**
469      * Get the minimum time from now before a user can take an appointment
470      * 
471      * @return
472      */
473     public int getMinTimeBeforeAppointment( )
474     {
475         return _nMinTimeBeforeAppointment;
476     }
477 
478     public void setMinTimeBeforeAppointment( int nMinTimeBeforeAppointment )
479     {
480         this._nMinTimeBeforeAppointment = nMinTimeBeforeAppointment;
481     }
482 
483     /**
484      * Returns if it is open on Monday (if the checkbox is checked or not)
485      * 
486      * @return true if it is open on Monday
487      */
488     public boolean getIsOpenMonday( )
489     {
490         return _bIsOpenMonday;
491     }
492 
493     /**
494      * Sets if it is open on Monday (if the checkbox is checked or not)
495      * 
496      * @param bIsOpenMonday
497      *            The boolean value
498      */
499     public void setIsOpenMonday( boolean bIsOpenMonday )
500     {
501         _bIsOpenMonday = bIsOpenMonday;
502     }
503 
504     /**
505      * Returns if it is open on Tuesday (if the checkbox is checked or not)
506      * 
507      * @return true if it is open on Tuesday
508      */
509     public boolean getIsOpenTuesday( )
510     {
511         return _bIsOpenTuesday;
512     }
513 
514     /**
515      * Sets if it is open on Tuesday (if the checkbox is checked or not)
516      * 
517      * @param bIsOpenTuesday
518      *            The boolean value
519      */
520     public void setIsOpenTuesday( boolean bIsOpenTuesday )
521     {
522         _bIsOpenTuesday = bIsOpenTuesday;
523     }
524 
525     /**
526      * Returns if it is open on Wednesday (if the checkbox is checked or not)
527      * 
528      * @return true if it is open on Wednesday
529      */
530     public boolean getIsOpenWednesday( )
531     {
532         return _bIsOpenWednesday;
533     }
534 
535     /**
536      * Sets if it is open on Wednesday (if the checkbox is checked or not)
537      * 
538      * @param bIsOpenWednesday
539      *            The boolean value
540      */
541     public void setIsOpenWednesday( boolean bIsOpenWednesday )
542     {
543         _bIsOpenWednesday = bIsOpenWednesday;
544     }
545 
546     /**
547      * Returns if it is open on Thursday (if the checkbox is checked or not)
548      * 
549      * @return true if it is open on Thursday
550      */
551     public boolean getIsOpenThursday( )
552     {
553         return _bIsOpenThursday;
554     }
555 
556     /**
557      * Sets if it is open on Thursday (if the checkbox is checked or not)
558      * 
559      * @param bIsOpenThursday
560      *            The boolean value
561      */
562     public void setIsOpenThursday( boolean bIsOpenThursday )
563     {
564         _bIsOpenThursday = bIsOpenThursday;
565     }
566 
567     /**
568      * Returns if it is open on Friday (if the checkbox is checked or not)
569      * 
570      * @return true if it is open on Friday
571      */
572     public boolean getIsOpenFriday( )
573     {
574         return _bIsOpenFriday;
575     }
576 
577     /**
578      * Sets if it is open on Friday (if the checkbox is checked or not)
579      * 
580      * @param bIsOpenFriday
581      *            The boolean value
582      */
583     public void setIsOpenFriday( boolean bIsOpenFriday )
584     {
585         _bIsOpenFriday = bIsOpenFriday;
586     }
587 
588     /**
589      * Returns if it is open on Saturday (if the checkbox is checked or not)
590      * 
591      * @return true if it is open on Saturday
592      */
593     public boolean getIsOpenSaturday( )
594     {
595         return _bIsOpenSaturday;
596     }
597 
598     /**
599      * Sets if it is open on Saturday (if the checkbox is checked or not)
600      * 
601      * @param bIsOpenSaturday
602      *            The boolean value
603      */
604     public void setIsOpenSaturday( boolean bIsOpenSaturday )
605     {
606         _bIsOpenSaturday = bIsOpenSaturday;
607     }
608 
609     /**
610      * Returns if it is open on Monday (if the checkbox is checked or not)
611      * 
612      * @return true if it is open on Sunday
613      */
614     public boolean getIsOpenSunday( )
615     {
616         return _bIsOpenSunday;
617     }
618 
619     /**
620      * Sets if it is open on Sunday (if the checkbox is checked or not)
621      * 
622      * @param bIsOpenSunday
623      *            The boolean value
624      */
625     public void setIsOpenSunday( boolean bIsOpenSunday )
626     {
627         _bIsOpenSunday = bIsOpenSunday;
628     }
629 
630     /**
631      * Returns the starting validity date of the form
632      * 
633      * @return The starting validity date of the form
634      */
635     public Date getDateStartValidity( )
636     {
637         if ( _dateStartValidity != null )
638         {
639             return (Date) _dateStartValidity.clone( );
640         }
641         else
642         {
643             return null;
644         }
645     }
646 
647     /**
648      * Sets the starting validity date of the form
649      * 
650      * @param dateStartValidity
651      *            The starting validity date
652      */
653     public void setDateStartValidity( Date dateStartValidity )
654     {
655         if ( dateStartValidity != null )
656         {
657             this._dateStartValidity = (Date) dateStartValidity.clone( );
658         }
659         else
660         {
661             this._dateStartValidity = null;
662         }
663     }
664 
665     /**
666      * Returns the ending validity date of the form
667      * 
668      * @return The ending validity date
669      */
670     public Date getDateEndValidity( )
671     {
672         if ( _dateEndValidity != null )
673         {
674             return (Date) _dateEndValidity.clone( );
675         }
676         else
677         {
678             return null;
679         }
680     }
681 
682     /**
683      * Sets the ending validity date of the form
684      * 
685      * @param dateEndValidity
686      *            the ending validity date to set
687      */
688     public void setDateEndValidity( Date dateEndValidity )
689     {
690         if ( dateEndValidity != null )
691         {
692             this._dateEndValidity = (Date) dateEndValidity.clone( );
693         }
694         else
695         {
696             this._dateEndValidity = null;
697         }
698     }
699 
700     /**
701      * Returns if the form is active or not
702      * 
703      * @return true if the form is active
704      */
705     public boolean getIsActive( )
706     {
707         return _bIsActive;
708     }
709 
710     /**
711      * Sets if the form is active or not
712      * 
713      * @param bIsActive
714      *            The boolean value
715      */
716     public void setIsActive( boolean bIsActive )
717     {
718         _bIsActive = bIsActive;
719     }
720 
721     /**
722      * Returns if the title of the form has to be displayed on the front office
723      * 
724      * @return true if it has to be displayed
725      */
726     public boolean getDisplayTitleFo( )
727     {
728         return _bDisplayTitleFo;
729     }
730 
731     /**
732      * Sets if the title of the form has to be displayed on the front office
733      * 
734      * @param bDisplayTitleFo
735      *            The boolean value
736      */
737     public void setDisplayTitleFo( boolean bDisplayTitleFo )
738     {
739         _bDisplayTitleFo = bDisplayTitleFo;
740     }
741 
742     /**
743      * Returns if the form has to be displayed on the front office portlet
744      * 
745      * @return true if it has to be displayed
746      */
747     public boolean getIsDisplayedOnPortlet( )
748     {
749         return _bIsDisplayOnPortlet;
750     }
751 
752     /**
753      * Sets if the form has to be displayed on the front office portlet
754      * 
755      * @param bIsDisplayedOnPortlet
756      *            The boolean value
757      */
758     public void setIsDisplayedOnPortlet( boolean bIsDisplayedOnPortlet )
759     {
760         this._bIsDisplayOnPortlet = bIsDisplayedOnPortlet;
761     }
762 
763     /**
764      * Returns the number of weeks to display the form to the user (for an appointment)
765      * 
766      * @return The number of weeks to display
767      */
768     public int getNbWeeksToDisplay( )
769     {
770         return _nNbWeeksToDisplay;
771     }
772 
773     /**
774      * Sets the number of weeks to display the form to the user (for an appointment)
775      * 
776      * @param nNbWeeksToDisplay
777      *            the number of weeks to display the form
778      */
779     public void setNbWeeksToDisplay( int nNbWeeksToDisplay )
780     {
781         _nNbWeeksToDisplay = nNbWeeksToDisplay;
782     }
783 
784     /**
785      * Get the id of the workflow associated with this appointment form
786      * 
787      * @return The id of the workflow
788      */
789     public int getIdWorkflow( )
790     {
791         return _nIdWorkflow;
792     }
793 
794     /**
795      * Set the id of the workflow associated with this appointment form
796      * 
797      * @param nIdWorkflow
798      *            The id of the workflow
799      */
800     public void setIdWorkflow( int nIdWorkflow )
801     {
802         _nIdWorkflow = nIdWorkflow;
803     }
804 
805     /**
806      * Check if the captcha is enabled for this appointment form
807      * 
808      * @return True if the captcha is enabled, false otherwise
809      */
810     public boolean getEnableCaptcha( )
811     {
812         return _bEnableCaptcha;
813     }
814 
815     /**
816      * Enable or disable the captcha for this appointment form
817      * 
818      * @param bEnableCaptcha
819      *            True to enable the captcha, false to disable it
820      */
821     public void setEnableCaptcha( boolean bEnableCaptcha )
822     {
823         this._bEnableCaptcha = bEnableCaptcha;
824     }
825 
826     /**
827      * Get the id of the calendar template of this appointment form
828      * 
829      * @return The id of the calendar template of this appointment form
830      */
831     public int getCalendarTemplateId( )
832     {
833         return _nCalendarTemplateId;
834     }
835 
836     /**
837      * Set the id of the calendar template of this appointment form
838      * 
839      * @param nCalendarTemplateId
840      *            The id of the calendar template of this appointment form
841      */
842     public void setCalendarTemplateId( int nCalendarTemplateId )
843     {
844         _nCalendarTemplateId = nCalendarTemplateId;
845     }
846 
847     /**
848      * Check if the email is mandatory or not
849      * 
850      * @return true if enable mandatory email
851      */
852     public boolean getEnableMandatoryEmail( )
853     {
854         return _bEnableMandatoryEmail;
855     }
856 
857     /**
858      * Set enable mandatory email
859      * 
860      * @param bEnableMandatoryEmail
861      *            the boolean value for mandatory email
862      */
863     public void setEnableMandatoryEmail( boolean bEnableMandatoryEmail )
864     {
865         this._bEnableMandatoryEmail = bEnableMandatoryEmail;
866     }
867 
868     /**
869      * Get the Icon of the form
870      * 
871      * @return the icon of the form
872      */
873     public ImageResource getIcon( )
874     {
875         return _imageResource;
876     }
877 
878     /**
879      * Set the icon of the form
880      * 
881      * @param imgIcon
882      *            the icon to associate to the form
883      */
884     public void setIcon( ImageResource imgIcon )
885     {
886         this._imageResource = imgIcon;
887     }
888 
889     /**
890      * Get the number of days between two appointments of the same user
891      * 
892      * @return the delay in days
893      */
894     public int getNbDaysBeforeNewAppointment( )
895     {
896         return _nNbDaysBeforeNewAppointment;
897     }
898 
899     /**
900      * Set the number of days between two appointments of the same user (0 : no delay)
901      * 
902      * @param nNbDaysBeforeNewAppointment
903      *            the number of days to set
904      */
905     public void setNbDaysBeforeNewAppointment( int nNbDaysBeforeNewAppointment )
906     {
907         this._nNbDaysBeforeNewAppointment = nNbDaysBeforeNewAppointment;
908     }
909 
910     /**
911      * Get the category of the form
912      * 
913      * @return the category of the form
914      */
915     public int getIdCategory( )
916     {
917         return _nIdCategory;
918     }
919 
920     /**
921      * Set the category of the form
922      * 
923      * @param nIdCategory
924      *            the category to set
925      */
926     public void setIdCategory( int nIdCategory )
927     {
928         _nIdCategory = nIdCategory;
929     }
930 
931     /**
932      * Get the authentication
933      * 
934      * @return true if the authentication is required
935      */
936     public boolean getActiveAuthentication( )
937     {
938         return _bActiveAuthentication;
939     }
940 
941     /**
942      * Set the authentication of the form
943      * 
944      * @param _bActiveAuthentication
945      *            the boolean value for the authentication
946      */
947     public void setActiveAuthentication( boolean bActiveAuthentication )
948     {
949         this._bActiveAuthentication = bActiveAuthentication;
950     }
951 
952     /**
953      * Get latitude
954      * 
955      * @return latitude
956      */
957     public Double getLatitude( )
958     {
959         return _dLatitude;
960     }
961 
962     /**
963      * Set latitude
964      * 
965      * @param dLatitude
966      *            latitude
967      */
968     public void setLatitude( Double dLatitude )
969     {
970         this._dLatitude = dLatitude;
971     }
972 
973     /**
974      * Get longitude
975      * 
976      * @return longitude
977      */
978     public Double getLongitude( )
979     {
980         return _dLongitude;
981     }
982 
983     /**
984      * Set longitude
985      * 
986      * @param dLongitude
987      *            longitude
988      */
989     public void setLongitude( Double dLongitude )
990     {
991         this._dLongitude = dLongitude;
992     }
993 
994     /**
995      * Get address
996      * 
997      * @return address
998      */
999     public String getAddress( )
1000     {
1001         return _strAddress;
1002     }
1003 
1004     /**
1005      * Set address
1006      * 
1007      * @param strAddress
1008      *            address
1009      */
1010     public void setAddress( String strAddress )
1011     {
1012         this._strAddress = strAddress;
1013     }
1014 
1015     /**
1016      * {@inheritDoc}
1017      */
1018     @Override
1019     public String getResourceTypeCode( )
1020     {
1021         return RESOURCE_TYPE;
1022     }
1023 
1024     /**
1025      * {@inheritDoc}
1026      */
1027     @Override
1028     public String getResourceId( )
1029     {
1030         return Integer.toString( getIdForm( ) );
1031     }
1032 
1033     @Override
1034     public String getWorkgroup( )
1035     {
1036         return _strWorkgroup;
1037     }
1038 
1039     /**
1040      * set the work group associate to the form
1041      * 
1042      * @param workGroup
1043      *            the work group associate to the form
1044      */
1045     public void setWorkgroup( String workGroup )
1046     {
1047         _strWorkgroup = workGroup;
1048     }
1049 
1050     /**
1051      * Returns the BoOverbooking
1052      * 
1053      * @return The BoOverbooking
1054      */
1055     public boolean getBoOverbooking( )
1056     {
1057         return _bBoOverbooking;
1058     }
1059 
1060     /**
1061      * Sets the BoOverbooking
1062      * 
1063      * @param bBoOverbooking
1064      *            The BoOverbooking
1065      */
1066     public void setBoOverbooking( boolean bBoOverbooking )
1067     {
1068         _bBoOverbooking = bBoOverbooking;
1069     }
1070 
1071     /**
1072      * Returns the IsMultislotAppointment
1073      * 
1074      * @return The IsMultislotAppointment
1075      */
1076     public boolean getIsMultislotAppointment( )
1077     {
1078         return _bIsMultislotAppointment;
1079     }
1080 
1081     /**
1082      * Sets the IsMultislotAppointment
1083      * 
1084      * @param bIsMultislotAppointment
1085      *            The IsMultislotAppointment
1086      */
1087     public void setIsMultislotAppointment( boolean bIsMultislotAppointment )
1088     {
1089         _bIsMultislotAppointment = bIsMultislotAppointment;
1090     }
1091 
1092     /**
1093      * Get the number of consecutive slots
1094      *
1095      * @return the number of consecutive slots
1096      */
1097     public int getNbConsecutiveSlots( )
1098     {
1099         return _nNbConsecutiveSlots;
1100     }
1101 
1102     /**
1103      * Set the number of consecutive slots
1104      *
1105      * @param nbConsecutiveSlots
1106      *            the number of consecutive slots
1107      */
1108     public void setNbConsecutiveSlots( int nbConsecutiveSlots )
1109     {
1110         this._nNbConsecutiveSlots = nbConsecutiveSlots;
1111     }
1112 
1113     /**
1114      * @return the strRole
1115      */
1116     public String getRole( )
1117     {
1118         return _strRole;
1119     }
1120 
1121     /**
1122      * @param strRole
1123      *            the strRole to set
1124      */
1125     public void setRole( String strRole )
1126     {
1127         _strRole = strRole;
1128     }
1129 
1130     /**
1131      * Returns the theoretical capacity per slot
1132      * 
1133      * @return The theoretical capacity per slot
1134      */
1135     public int getCapacityPerSlot( )
1136     {
1137         return _nCapacityPerSlot;
1138     }
1139 
1140     /**
1141      * Sets the theoretical capacity per slot
1142      * 
1143      * @param nCapacityPerSlot
1144      *            The theoretical capacity per slot
1145      */
1146     public void setCapacityPerSlot( int nCapacityPerSlot )
1147     {
1148         _nCapacityPerSlot = nCapacityPerSlot;
1149     }
1150 
1151     public String getAnonymizationPattern() {
1152         return _strAnonymizationPattern;
1153     }
1154 
1155     public void setAnonymizationPattern(String strAnonymizationPattern) {
1156         _strAnonymizationPattern = strAnonymizationPattern;
1157     }
1158 
1159 	public boolean isAnonymizable()
1160 	{
1161 		return _bIsAnonymizable;
1162 	}
1163 
1164 	public void setAnonymizable(boolean bIsAnonymizable)
1165 	{
1166 		this._bIsAnonymizable = bIsAnonymizable;
1167 	}
1168 
1169 }