View Javadoc
1   /**
2    * Copyright 2014 Internet2
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *   http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  /*
17   * @author mchyzer
18   * $Id: LoaderJobBean.java,v 1.2 2009-04-28 20:08:08 mchyzer Exp $
19   */
20  package edu.internet2.middleware.grouper.app.loader;
21  
22  import java.util.List;
23  import java.util.Set;
24  
25  import edu.internet2.middleware.grouper.Group;
26  import edu.internet2.middleware.grouper.GroupType;
27  import edu.internet2.middleware.grouper.GrouperSession;
28  import edu.internet2.middleware.grouper.annotations.GrouperIgnoreDbVersion;
29  import edu.internet2.middleware.grouper.app.loader.db.GrouperLoaderDb;
30  import edu.internet2.middleware.grouper.app.loader.db.Hib3GrouperLoaderLog;
31  import edu.internet2.middleware.grouper.misc.GrouperFailsafeBean;
32  import edu.internet2.middleware.grouper.util.GrouperUtil;
33  
34  
35  /**
36   * bean to hold objects for loader job
37   */
38  @GrouperIgnoreDbVersion
39  public class LoaderJobBean {
40    
41    //*****  START GENERATED WITH GenerateFieldConstants.java *****//
42  
43      /** constant for field name for: andGroups */
44      public static final String FIELD_AND_GROUPS = "andGroups";
45  
46      /** constant for field name for: attributeDefName */
47      public static final String FIELD_ATTRIBUTE_DEF_NAME = "attributeDefName";
48  
49      /** constant for field name for: attributeLoaderActionQuery */
50      public static final String FIELD_ATTRIBUTE_LOADER_ACTION_QUERY = "attributeLoaderActionQuery";
51  
52      /** constant for field name for: attributeLoaderActionSetQuery */
53      public static final String FIELD_ATTRIBUTE_LOADER_ACTION_SET_QUERY = "attributeLoaderActionSetQuery";
54  
55      /** constant for field name for: attributeLoaderAttrQuery */
56      public static final String FIELD_ATTRIBUTE_LOADER_ATTR_QUERY = "attributeLoaderAttrQuery";
57  
58      /** constant for field name for: attributeLoaderAttrSetQuery */
59      public static final String FIELD_ATTRIBUTE_LOADER_ATTR_SET_QUERY = "attributeLoaderAttrSetQuery";
60  
61      /** constant for field name for: attributeLoaderAttrsLike */
62      public static final String FIELD_ATTRIBUTE_LOADER_ATTRS_LIKE = "attributeLoaderAttrsLike";
63  
64      /** constant for field name for: groupLikeString */
65      public static final String FIELD_GROUP_LIKE_STRING = "groupLikeString";
66  
67      /** constant for field name for: groupNameOverall */
68      public static final String FIELD_GROUP_NAME_OVERALL = "groupNameOverall";
69  
70      /** constant for field name for: groupQuery */
71      public static final String FIELD_GROUP_QUERY = "groupQuery";
72  
73      /** constant for field name for: groupTypes */
74      public static final String FIELD_GROUP_TYPES = "groupTypes";
75  
76      /** constant for field name for: grouperLoaderDb */
77      public static final String FIELD_GROUPER_LOADER_DB = "grouperLoaderDb";
78  
79      /** constant for field name for: grouperLoaderType */
80      public static final String FIELD_GROUPER_LOADER_TYPE = "grouperLoaderType";
81  
82      /** constant for field name for: grouperSession */
83      public static final String FIELD_GROUPER_SESSION = "grouperSession";
84  
85      /** constant for field name for: hib3GrouploaderLogOverall */
86      public static final String FIELD_HIB3_GROUPLOADER_LOG_OVERALL = "hib3GrouploaderLogOverall";
87  
88      /** constant for field name for: ldapAttributeFilterExpression */
89      public static final String FIELD_LDAP_ATTRIBUTE_FILTER_EXPRESSION = "ldapAttributeFilterExpression";
90  
91      /** constant for field name for: ldapExtraAttributes */
92      public static final String FIELD_LDAP_EXTRA_ATTRIBUTES = "ldapExtraAttributes";
93  
94      /** constant for field name for: ldapFilter */
95      public static final String FIELD_LDAP_FILTER = "ldapFilter";
96  
97      /** constant for field name for: ldapGroupAttribute */
98      public static final String FIELD_LDAP_GROUP_ATTRIBUTE = "ldapGroupAttribute";
99  
100     /** constant for field name for: ldapGroupDescriptionExpression */
101     public static final String FIELD_LDAP_GROUP_DESCRIPTION_EXPRESSION = "ldapGroupDescriptionExpression";
102 
103     /** constant for field name for: ldapGroupDisplayExtensionExpression */
104     public static final String FIELD_LDAP_GROUP_DISPLAY_EXTENSION_EXPRESSION = "ldapGroupDisplayExtensionExpression";
105 
106     /** constant for field name for: ldapGroupNameExpression */
107     public static final String FIELD_LDAP_GROUP_NAME_EXPRESSION = "ldapGroupNameExpression";
108 
109     /** constant for field name for: ldapQuartzCron */
110     public static final String FIELD_LDAP_QUARTZ_CRON = "ldapQuartzCron";
111 
112     /** constant for field name for: ldapSearchDn */
113     public static final String FIELD_LDAP_SEARCH_DN = "ldapSearchDn";
114 
115     /** constant for field name for: ldapSearchScope */
116     public static final String FIELD_LDAP_SEARCH_SCOPE = "ldapSearchScope";
117 
118     /** constant for field name for: ldapServerId */
119     public static final String FIELD_LDAP_SERVER_ID = "ldapServerId";
120 
121     /** constant for field name for: ldapSourceId */
122     public static final String FIELD_LDAP_SOURCE_ID = "ldapSourceId";
123 
124     /** constant for field name for: ldapSubjectAttribute */
125     public static final String FIELD_LDAP_SUBJECT_ATTRIBUTE = "ldapSubjectAttribute";
126 
127     /** constant for field name for: ldapSubjectExpression */
128     public static final String FIELD_LDAP_SUBJECT_EXPRESSION = "ldapSubjectExpression";
129 
130     /** constant for field name for: ldapSubjectIdType */
131     public static final String FIELD_LDAP_SUBJECT_ID_TYPE = "ldapSubjectIdType";
132 
133     /** constant for field name for: ldapType */
134     public static final String FIELD_LDAP_TYPE = "ldapType";
135 
136     /** constant for field name for: query */
137     public static final String FIELD_QUERY = "query";
138 
139     /** constant for field name for: startTime */
140     public static final String FIELD_START_TIME = "startTime";
141 
142     /**
143      * fields which are included in clone method
144      */
145     private static final Set<String> CLONE_FIELDS = GrouperUtil.toSet(
146         FIELD_AND_GROUPS, FIELD_ATTRIBUTE_DEF_NAME, FIELD_ATTRIBUTE_LOADER_ACTION_QUERY, FIELD_ATTRIBUTE_LOADER_ACTION_SET_QUERY, 
147         FIELD_ATTRIBUTE_LOADER_ATTR_QUERY, FIELD_ATTRIBUTE_LOADER_ATTR_SET_QUERY, FIELD_ATTRIBUTE_LOADER_ATTRS_LIKE, FIELD_GROUP_LIKE_STRING, 
148         FIELD_GROUP_NAME_OVERALL, FIELD_GROUP_QUERY, FIELD_GROUP_TYPES, FIELD_GROUPER_LOADER_DB, 
149         FIELD_GROUPER_LOADER_TYPE, FIELD_GROUPER_SESSION, FIELD_HIB3_GROUPLOADER_LOG_OVERALL, 
150         FIELD_LDAP_ATTRIBUTE_FILTER_EXPRESSION, 
151         FIELD_LDAP_EXTRA_ATTRIBUTES, FIELD_LDAP_FILTER, FIELD_LDAP_GROUP_ATTRIBUTE, FIELD_LDAP_GROUP_DESCRIPTION_EXPRESSION, 
152         FIELD_LDAP_GROUP_DISPLAY_EXTENSION_EXPRESSION, FIELD_LDAP_GROUP_NAME_EXPRESSION, FIELD_LDAP_QUARTZ_CRON, FIELD_LDAP_SEARCH_DN, 
153         FIELD_LDAP_SEARCH_SCOPE, FIELD_LDAP_SERVER_ID, FIELD_LDAP_SOURCE_ID, FIELD_LDAP_SUBJECT_ATTRIBUTE, 
154         FIELD_LDAP_SUBJECT_EXPRESSION, FIELD_LDAP_SUBJECT_ID_TYPE, FIELD_LDAP_TYPE, FIELD_QUERY, 
155         FIELD_START_TIME);
156 
157     //*****  END GENERATED WITH GenerateFieldConstants.java *****//
158 
159 
160   /**
161    * extension of the attribute def name for type of ldap loader (e.g. LDAP_SIMPLE).
162    * Like the SQL loader, this holds the type of job from the GrouperLoaderType enum,
163    * currently the only valid values are LDAP_SIMPLE, LDAP_GROUP_LIST, LDAP_GROUPS_FROM_ATTRIBUTES.
164    * Simple is a group loaded from LDAP filter which returns subject ids or identifiers.
165    * Group list is an LDAP filter which returns group objects, and the group objects
166    * have a list of subjects.  Groups from attributes is an LDAP filter that returns
167    * subjects which have a multi-valued attribute e.g. affiliations where groups will
168    * be created based on subject who have each attribute value
169    */
170   private String ldapType;
171   
172   /**
173    * extension of the attribute def name for type of ldap loader (e.g. LDAP_SIMPLE).
174    * Like the SQL loader, this holds the type of job from the GrouperLoaderType enum,
175    * currently the only valid values are LDAP_SIMPLE, LDAP_GROUP_LIST, LDAP_GROUPS_FROM_ATTRIBUTES.
176    * Simple is a group loaded from LDAP filter which returns subject ids or identifiers.
177    * Group list is an LDAP filter which returns group objects, and the group objects
178    * have a list of subjects.  Groups from attributes is an LDAP filter that returns
179    * subjects which have a multi-valued attribute e.g. affiliations where groups will
180    * be created based on subject who have each attribute value
181    * @return type
182    */
183   public String getLdapType() {
184     return this.ldapType;
185   }
186 
187   /**
188    * extension of the attribute def name for type of ldap loader (e.g. LDAP_SIMPLE).
189    * Like the SQL loader, this holds the type of job from the GrouperLoaderType enum,
190    * currently the only valid values are LDAP_SIMPLE, LDAP_GROUP_LIST, LDAP_GROUPS_FROM_ATTRIBUTES.
191    * Simple is a group loaded from LDAP filter which returns subject ids or identifiers.
192    * Group list is an LDAP filter which returns group objects, and the group objects
193    * have a list of subjects.  Groups from attributes is an LDAP filter that returns
194    * subjects which have a multi-valued attribute e.g. affiliations where groups will
195    * be created based on subject who have each attribute value
196    * @param ldapType1
197    */
198   public void setLdapType(String ldapType1) {
199     this.ldapType = ldapType1;
200   }
201 
202   /**
203    * required for LDAP_GROUPS_FROM_ATTRIBUTES
204    * Attribute name of the filter object result that holds the group name 
205    */
206   private String ldapGroupAttribute;
207   
208   /**
209    * Attribute names (comma separated) to get LDAP data for expressions in group name, 
210    * displayExtension, description, optional, for LDAP_GROUP_LIST
211    */
212   private String ldapExtraAttributes;
213   
214   /**
215    * Attribute names (comma separated) to get LDAP data for expressions in group name, 
216    * displayExtension, description, optional, for LDAP_GROUP_LIST
217    * @return the ldapExtraAttributes
218    */
219   public String getLdapExtraAttributes() {
220     return this.ldapExtraAttributes;
221   }
222 
223   /**
224    * Attribute names (comma separated) to get LDAP data for expressions in group name, 
225    * displayExtension, description, optional, for LDAP_GROUP_LIST
226    * @param ldapExtraAttributes1 the ldapExtraAttributes to set
227    */
228   public void setLdapExtraAttributes(String ldapExtraAttributes1) {
229     this.ldapExtraAttributes = ldapExtraAttributes1;
230   }
231 
232   /**
233    * optional for LDAP_GROUPS_FROM_ATTRIBUTES, LDAP_GROUP_LIST
234    * Comma separated list of subjectIds or subjectIdentifiers who can UPDATE the group memberships
235    */
236   private String ldapGroupUpdaters;
237 
238   /**
239    * optional for LDAP_GROUPS_FROM_ATTRIBUTES, LDAP_GROUP_LIST
240    * Comma separated list of subjectIds or subjectIdentifiers who can OPTOUT their group membership
241    */
242   private String ldapGroupOptouts;
243   
244   /**
245    * optional for LDAP_GROUPS_FROM_ATTRIBUTES, LDAP_GROUP_LIST
246    * Comma separated list of subjectIds or subjectIdentifiers who can GROUP_ATTR_READ
247    */
248   private String ldapGroupAttrReaders;
249   
250   /**
251    * optional for LDAP_GROUPS_FROM_ATTRIBUTES, LDAP_GROUP_LIST
252    * Comma separated list of subjectIds or subjectIdentifiers who can GROUP_ATTR_UPDATE
253    */
254   private String ldapGroupAttrUpdaters;
255   
256   /**
257    * optional for LDAP_GROUPS_FROM_ATTRIBUTES
258    * Class to transform data from ldap for more advanced transformations (e.g. parsing ldap attribute values into multiple groups)
259    */
260   private String ldapResultsTransformationClass;
261   
262   /**
263    * optional for LDAP_GROUPS_FROM_ATTRIBUTES, LDAP_GROUP_LIST
264    * Comma separated list of subjectIds or subjectIdentifiers who can OPTOUT their group membership
265    * @return optouts
266    */
267   public String getLdapGroupOptouts() {
268     return this.ldapGroupOptouts;
269   }
270   
271   /**
272    * optional for LDAP_GROUPS_FROM_ATTRIBUTES, LDAP_GROUP_LIST
273    * Comma separated list of subjectIds or subjectIdentifiers who can GROUP_ATTR_READ
274    * @return optouts
275    */
276   public String getLdapGroupAttrReaders() {
277     return this.ldapGroupAttrReaders;
278   }
279   
280   /**
281    * optional for LDAP_GROUPS_FROM_ATTRIBUTES, LDAP_GROUP_LIST
282    * Comma separated list of subjectIds or subjectIdentifiers who can GROUP_ATTR_UPDATE
283    * @return optouts
284    */
285   public String getLdapGroupAttrUpdaters() {
286     return this.ldapGroupAttrUpdaters;
287   }
288 
289   /**
290    * optional for LDAP_GROUPS_FROM_ATTRIBUTES, LDAP_GROUP_LIST
291    * Comma separated list of subjectIds or subjectIdentifiers who can OPTOUT their group membership
292    * @param ldapGroupOptouts1
293    */
294   public void setLdapGroupOptouts(String ldapGroupOptouts1) {
295     this.ldapGroupOptouts = ldapGroupOptouts1;
296   }
297   
298   /**
299    * optional for LDAP_GROUPS_FROM_ATTRIBUTES, LDAP_GROUP_LIST
300    * Comma separated list of subjectIds or subjectIdentifiers who can GROUP_ATTR_READ
301    * @param ldapGroupAttrReaders1
302    */
303   public void setLdapGroupAttrReaders(String ldapGroupAttrReaders1) {
304     this.ldapGroupAttrReaders = ldapGroupAttrReaders1;
305   }
306   
307   /**
308    * optional for LDAP_GROUPS_FROM_ATTRIBUTES, LDAP_GROUP_LIST
309    * Comma separated list of subjectIds or subjectIdentifiers who can GROUP_ATTR_UPDATE
310    * @param ldapGroupAttrUpdaters1
311    */
312   public void setLdapGroupAttrUpdate(String ldapGroupAttrUpdaters1) {
313     this.ldapGroupAttrUpdaters = ldapGroupAttrUpdaters1;
314   }
315 
316   /**
317    * optional for LDAP_GROUPS_FROM_ATTRIBUTES, LDAP_GROUP_LIST
318    * Comma separated list of subjectIds or subjectIdentifiers who can OPTIN their group membership
319    */
320   private String ldapGroupOptins;
321   
322   /**
323    * optional for LDAP_GROUPS_FROM_ATTRIBUTES, LDAP_GROUP_LIST
324    * Comma separated list of subjectIds or subjectIdentifiers who can OPTIN their group membership
325    * @return optins
326    */
327   public String getLdapGroupOptins() {
328     return this.ldapGroupOptins;
329   }
330 
331   /**
332    * optional for LDAP_GROUPS_FROM_ATTRIBUTES, LDAP_GROUP_LIST
333    * Comma separated list of subjectIds or subjectIdentifiers who can OPTIN their group membership
334    * @param ldapGroupOptins1
335    */
336   public void setLdapGroupOptins(String ldapGroupOptins1) {
337     this.ldapGroupOptins = ldapGroupOptins1;
338   }
339 
340   /**
341    * optional for LDAP_GROUPS_FROM_ATTRIBUTES, LDAP_GROUP_LIST
342    * Comma separated list of subjectIds or subjectIdentifiers who can UPDATE the group memberships
343    * @return updaters
344    */
345   public String getLdapGroupUpdaters() {
346     return this.ldapGroupUpdaters;
347   }
348 
349   /**
350    * optional for LDAP_GROUPS_FROM_ATTRIBUTES, LDAP_GROUP_LIST
351    * Comma separated list of subjectIds or subjectIdentifiers who can UPDATE the group memberships
352    * @param ldapGroupUpdaters1
353    */
354   public void setLdapGroupUpdaters(String ldapGroupUpdaters1) {
355     this.ldapGroupUpdaters = ldapGroupUpdaters1;
356   }
357 
358   /**
359    * optional for LDAP_GROUPS_FROM_ATTRIBUTES, LDAP_GROUP_LIST
360    * Comma separated list of subjectIds or subjectIdentifiers who can ADMIN the group 
361    */
362   private String ldapGroupAdmins;
363   
364   /**
365    * optional for LDAP_GROUPS_FROM_ATTRIBUTES, LDAP_GROUP_LIST
366    * Comma separated list of subjectIds or subjectIdentifiers who can ADMIN the group 
367    * @return admins
368    */
369   public String getLdapGroupAdmins() {
370     return this.ldapGroupAdmins;
371   }
372 
373   /**
374    * optional for LDAP_GROUPS_FROM_ATTRIBUTES, LDAP_GROUP_LIST
375    * Comma separated list of subjectIds or subjectIdentifiers who can ADMIN the group 
376    * @param ldapGroupAdmins1
377    */
378   public void setLdapGroupAdmins(String ldapGroupAdmins1) {
379     this.ldapGroupAdmins = ldapGroupAdmins1;
380   }
381 
382   /**
383    * optional for LDAP_GROUPS_FROM_ATTRIBUTES, LDAP_GROUP_LIST
384    * Comma separated list of subjectIds or subjectIdentifiers who can VIEW the group 
385    */
386   private String ldapGroupViewers;
387   
388   /**
389    * optional for LDAP_GROUPS_FROM_ATTRIBUTES, LDAP_GROUP_LIST
390    * Comma separated list of subjectIds or subjectIdentifiers who can VIEW the group 
391    * @return viewers
392    */
393   public String getLdapGroupViewers() {
394     return this.ldapGroupViewers;
395   }
396 
397   /**
398    * optional for LDAP_GROUPS_FROM_ATTRIBUTES, LDAP_GROUP_LIST
399    * Comma separated list of subjectIds or subjectIdentifiers who can VIEW the group 
400    * @param ldapGroupViewers1
401    */
402   public void setLdapGroupViewers(String ldapGroupViewers1) {
403     this.ldapGroupViewers = ldapGroupViewers1;
404   }
405 
406   /**
407    * optional for LDAP_GROUPS_FROM_ATTRIBUTES, LDAP_GROUP_LIST
408    * Comma separated list of subjectIds or subjectIdentifiers who can READ the group memberships 
409    */
410   private String ldapGroupReaders;
411   
412   /**
413    * optional for LDAP_GROUPS_FROM_ATTRIBUTES, LDAP_GROUP_LIST
414    * Comma separated list of subjectIds or subjectIdentifiers who can READ the group memberships 
415    * @return readers
416    */
417   public String getLdapGroupReaders() {
418     return this.ldapGroupReaders;
419   }
420 
421   /**
422    * optional for LDAP_GROUPS_FROM_ATTRIBUTES, LDAP_GROUP_LIST
423    * Comma separated list of subjectIds or subjectIdentifiers who can READ the group memberships 
424    * @param ldapGroupReaders1
425    */
426   public void setLdapGroupReaders(String ldapGroupReaders1) {
427     this.ldapGroupReaders = ldapGroupReaders1;
428   }
429 
430 
431   /**
432    * optional, for LDAP_GROUP_LIST, or LDAP_GROUPS_FROM_ATTRIBUTES   
433    * JEXL expression language fragment that evaluates to the group name (relative 
434    * in the stem as the group which has the loader definition)
435    */
436   private String ldapGroupNameExpression;
437   
438   /**
439    * optional, for LDAP_GROUP_LIST, or LDAP_GROUPS_FROM_ATTRIBUTES   
440    * JEXL expression language fragment that evaluates to the group name (relative 
441    * in the stem as the group which has the loader definition)
442    * @return the ldapGroupNameExpression
443    */
444   public String getLdapGroupNameExpression() {
445     return this.ldapGroupNameExpression;
446   }
447   
448   /**
449    * optional, for LDAP_GROUP_LIST, or LDAP_GROUPS_FROM_ATTRIBUTES   
450    * JEXL expression language fragment that evaluates to the group name (relative 
451    * in the stem as the group which has the loader definition)
452    * @param ldapGroupNameExpression1 the ldapGroupNameExpression to set
453    */
454   public void setLdapGroupNameExpression(String ldapGroupNameExpression1) {
455     this.ldapGroupNameExpression = ldapGroupNameExpression1;
456   }
457 
458   /**
459    * JEXL expression language fragment that evaluates to the group display 
460    * extension, optional for LDAP_GROUP_LIST or LDAP_GROUPS_FROM_ATTRIBUTES
461    */
462   private String ldapGroupDisplayNameExpression;
463 
464   
465   /**
466    * JEXL expression language fragment that evaluates to the group display 
467    * extension, optional for LDAP_GROUP_LIST or LDAP_GROUPS_FROM_ATTRIBUTES
468    * @return the ldapGroupDisplayExtensionExpression
469    */
470   public String getLdapGroupDisplayNameExpression() {
471     return this.ldapGroupDisplayNameExpression;
472   }
473 
474   
475   /**
476    * JEXL expression language fragment that evaluates to the group display 
477    * extension, optional for LDAP_GROUP_LIST or LDAP_GROUPS_FROM_ATTRIBUTES
478    * @param ldapGroupDisplayExtensionExpression1 the ldapGroupDisplayExtensionExpression to set
479    */
480   public void setLdapGroupDisplayNameExpression(
481       String ldapGroupDisplayExtensionExpression1) {
482     this.ldapGroupDisplayNameExpression = ldapGroupDisplayExtensionExpression1;
483   }
484 
485   /**
486    * JEXL expression language fragment that evaluates to the group description, optional for LDAP_GROUP_LIST or LDAP_GROUPS_FROM_ATTRIBUTES
487    */
488   private String ldapGroupDescriptionExpression;
489   
490   /**
491    * JEXL expression language fragment that evaluates to the group description, optional 
492    * for LDAP_GROUP_LIST or LDAP_GROUPS_FROM_ATTRIBUTES
493    * @return the ldapGroupDescriptionExpression
494    */
495   public String getLdapGroupDescriptionExpression() {
496     return this.ldapGroupDescriptionExpression;
497   }
498   
499   /**
500    * JEXL expression language fragment that evaluates to the group description, optional 
501    * for LDAP_GROUP_LIST or LDAP_GROUPS_FROM_ATTRIBUTES
502    * @param ldapGroupDescriptionExpression1 the ldapGroupDescriptionExpression to set
503    */
504   public void setLdapGroupDescriptionExpression(String ldapGroupDescriptionExpression1) {
505     this.ldapGroupDescriptionExpression = ldapGroupDescriptionExpression1;
506   }
507 
508   /** if filtering which attributes, this is the jexl expression */
509   private String ldapAttributeFilterExpression;
510 
511   /**
512    * if filtering which attributes, this is the jexl expression
513    * @return ldap attribute filter expression
514    */
515   public String getLdapAttributeFilterExpression() {
516     return this.ldapAttributeFilterExpression;
517   }
518 
519   /**
520    * if filtering which attributes, this is the jexl expression
521    * @param ldapAttributeFilterExpression1
522    */
523   public void setLdapAttributeFilterExpression(String ldapAttributeFilterExpression1) {
524     this.ldapAttributeFilterExpression = ldapAttributeFilterExpression1;
525   }
526 
527   /**
528    * JEXL expression language fragment that processes the subject string before passing it to the subject API
529    */
530   private String ldapSubjectExpression;
531   
532   /**
533    * JEXL expression language fragment that processes the subject string before passing it to the subject API
534    * @return the ldapSubjectExpression
535    */
536   public String getLdapSubjectExpression() {
537     return this.ldapSubjectExpression;
538   }
539   
540   /**
541    * JEXL expression language fragment that processes the subject string before passing it to the subject API
542    * @param ldapSubjectExpression1 the ldapSubjectExpression to set
543    */
544   public void setLdapSubjectExpression(String ldapSubjectExpression1) {
545     this.ldapSubjectExpression = ldapSubjectExpression1;
546   }
547 
548   /**
549    * required for LDAP_GROUPS_FROM_ATTRIBUTES 
550    * Attribute name of the filter object result that holds the group name 
551    * @return the ldapGroupAttribute
552    */
553   public String getLdapGroupAttribute() {
554     return this.ldapGroupAttribute;
555   }
556 
557   
558   /**
559    * required for LDAP_GROUPS_FROM_ATTRIBUTES 
560    * Attribute name of the filter object result that holds the group name 
561    * @param ldapGroupAttribute1 the ldapGroupAttribute to set
562    */
563   public void setLdapGroupAttribute(String ldapGroupAttribute1) {
564     this.ldapGroupAttribute = ldapGroupAttribute1;
565   }
566 
567   /** Server ID that is configured in the grouper-loader.properties that identifies the connection information to the LDAP server */
568   private String ldapServerId;
569   
570   /**
571    * Server ID that is configured in the grouper-loader.properties that identifies the connection information to the LDAP server 
572    * @return server id
573    */
574   public String getLdapServerId() {
575     return this.ldapServerId;
576   }
577 
578   /**
579    * Server ID that is configured in the grouper-loader.properties that identifies the connection information to the LDAP server 
580    * @param ldapServerId1
581    */
582   public void setLdapServerId(String ldapServerId1) {
583     this.ldapServerId = ldapServerId1;
584   }
585 
586   /** LDAP filter returns objects that have subjectIds or subjectIdentifiers and group name (if LDAP_GROUP_LIST)  */
587   private String ldapFilter;
588   
589   /**
590    * LDAP filter returns objects that have subjectIds or subjectIdentifiers and group name (if LDAP_GROUP_LIST) 
591    * @return filter
592    */
593   public String getLdapFilter() {
594     return this.ldapFilter;
595   }
596 
597   /**
598    * LDAP filter returns objects that have subjectIds or subjectIdentifiers and group name (if LDAP_GROUP_LIST) 
599    * @param ldapFilter1
600    */
601   public void setLdapFilter(String ldapFilter1) {
602     this.ldapFilter = ldapFilter1;
603   }
604 
605   /** Attribute name of the filter object result that holds the subject id.  */
606   private String ldapSubjectAttribute;
607   
608   /**
609    * Attribute name of the filter object result that holds the subject id. 
610    * @return attribute name
611    */
612   public String getLdapSubjectAttribute() {
613     return this.ldapSubjectAttribute;
614   }
615 
616   /**
617    * Attribute name of the filter object result that holds the subject id. 
618    * @param ldapSubjectAttribute1
619    */
620   public void setLdapSubjectAttribute(String ldapSubjectAttribute1) {
621     this.ldapSubjectAttribute = ldapSubjectAttribute1;
622   }
623 
624   /** Location that constrains the subtree where the filter is applicable.  Note, this is relative 
625    * to the base DN in the ldap server config in the grouper-loader.properties for this server.  
626    * This makes the query more efficient  */
627   private String ldapSearchDn;
628   
629   /**
630    * Location that constrains the subtree where the filter is applicable.  
631    * Note, this is relative to the base DN in the ldap server config in the 
632    * grouper-loader.properties for this server.  This makes the query more efficient 
633    * @return search dn
634    */
635   public String getLdapSearchDn() {
636     return this.ldapSearchDn;
637   }
638 
639   /**
640    * Location that constrains the subtree where the filter is applicable.  
641    * Note, this is relative to the base DN in the ldap server config in the 
642    * grouper-loader.properties for this server.  This makes the query more efficient 
643    * @param ldapSearchDn1
644    */
645   public void setLdapSearchDn(String ldapSearchDn1) {
646     this.ldapSearchDn = ldapSearchDn1;
647   }
648 
649   /** Quartz cron config string, e.g. every day at 8am is: 0 0 8 * * ?  */
650   private String ldapQuartzCron;
651   
652   /**
653    * Quartz cron config string, e.g. every day at 8am is: 0 0 8 * * ? 
654    * @return quartz cron
655    */
656   public String getLdapQuartzCron() {
657     return this.ldapQuartzCron;
658   }
659 
660   /**
661    * Quartz cron config string, e.g. every day at 8am is: 0 0 8 * * ? 
662    * @param ldapQuartzCron1
663    */
664   public void setLdapQuartzCron(String ldapQuartzCron1) {
665     this.ldapQuartzCron = ldapQuartzCron1;
666   }
667 
668   /** Source ID from the subject.properties that narrows the search for subjects.  This is optional though makes the loader job more efficient */
669   private String ldapSourceId;
670   
671   /**
672    * Source ID from the subject.properties that narrows the search for subjects.  This is optional though makes the loader job more efficient
673    * @return source id
674    */
675   public String getLdapSourceId() {
676     return this.ldapSourceId;
677   }
678 
679   /**
680    * Source ID from the subject.properties that narrows the search for subjects.  This is optional though makes the loader job more efficient
681    * @param ldapSourceId1
682    */
683   public void setLdapSourceId(String ldapSourceId1) {
684     this.ldapSourceId = ldapSourceId1;
685   }
686 
687   /**The type of subject ID.  This can be either: subjectId (most efficient, default), subjectIdentifier (2nd most efficient), or subjectIdOrIdentifier   */
688   private String ldapSubjectIdType;
689   
690   /**
691    * The type of subject ID.  This can be either: subjectId (most efficient, default), subjectIdentifier (2nd most efficient), or subjectIdOrIdentifier 
692    * @return subject id type
693    */
694   public String getLdapSubjectIdType() {
695     return this.ldapSubjectIdType;
696   }
697 
698   /**
699    * The type of subject ID.  This can be either: subjectId (most efficient, default), subjectIdentifier (2nd most efficient), or subjectIdOrIdentifier 
700    * @param ldapSubjectIdType1
701    */
702   public void setLdapSubjectIdType(String ldapSubjectIdType1) {
703     this.ldapSubjectIdType = ldapSubjectIdType1;
704   }
705 
706   /** How the deep in the subtree the search will take place.  Can be OBJECT_SCOPE, ONELEVEL_SCOPE, or SUBTREE_SCOPE (default)  */
707   private String ldapSearchScope;
708 
709   
710   /**
711    * How the deep in the subtree the search will take place.  Can be OBJECT_SCOPE, ONELEVEL_SCOPE, or SUBTREE_SCOPE (default) 
712    * @return search scope
713    */
714   public String getLdapSearchScope() {
715     return this.ldapSearchScope;
716   }
717 
718   /**
719    * How the deep in the subtree the search will take place.  Can be OBJECT_SCOPE, ONELEVEL_SCOPE, or SUBTREE_SCOPE (default) 
720    * @param ldapSearchScope1
721    */
722   public void setLdapSearchScope(String ldapSearchScope1) {
723     this.ldapSearchScope = ldapSearchScope1;
724   }
725 
726   /**
727    * start time of job
728    */
729   private long startTime;
730   
731   /**
732    * type of loader
733    */
734   private GrouperLoaderType grouperLoaderType;
735 
736   /**
737    * group name for the job.  If this is a group list, then this is the overall group name
738    */
739   private String groupNameOverall;
740   
741   /**
742    * attributeDef name for the job
743    */
744   private String attributeDefName;
745   
746   /**
747    * attributeDef name for the job
748    * @return attributeDef name
749    */
750   public String getAttributeDefName() {
751     return attributeDefName;
752   }
753 
754   /**
755    * attributeDef name for the job
756    * @param attributeDefName1
757    */
758   public void setAttributeDefName(String attributeDefName1) {
759     this.attributeDefName = attributeDefName1;
760   }
761 
762   /**
763    * database this job runs against
764    */
765   private GrouperLoaderDb grouperLoaderDb;
766   
767   /**
768    * quert for the job
769    */
770   private String query;
771   
772   /**
773    * log
774    */
775   private Hib3GrouperLoaderLog hib3GrouploaderLogOverall;
776   
777   /**
778    * grouper session for the job, probably a root session
779    */
780   private GrouperSession grouperSession;
781   
782   /**
783    * members must be in these groups to be in the overall group
784    */
785   private List<Group> andGroups;
786   
787   /**
788    * group types to add to loader managed group
789    */
790   private List<GroupType> groupTypes;
791   
792   /**
793    * groups with this like DB sql string are managed by the loader.
794    * Any group in this list with no memberships and not in the group
795    * metadata query will be emptied and if configured deleted
796    */
797   private String groupLikeString; 
798   
799   /**
800    * query for the job
801    */
802   private String groupQuery;
803   
804   /**
805    * If empty, then orphans will be left alone (for attributeDefName and attributeDefNameSets).  If %, then all orphans deleted.  If a SQL like string, then only ones in that like string not in loader will be deleted
806    */
807   private String attributeLoaderAttrsLike;
808   
809   /**
810    * SQL query with at least some of the following columns: attr_name, attr_display_name, attr_description
811    */
812   private String attributeLoaderAttrQuery;
813   
814   /**
815    * SQL query with at least the following columns: if_has_attr_name, then_has_attr_name
816    */
817   private String attributeLoaderAttrSetQuery;
818   
819   /** SQL query with at least the following column: action_name */
820   private String attributeLoaderActionQuery;
821 
822   /** SQL query with at least the following columns: if_has_action_name, then_has_action_name */
823   private String attributeLoaderActionSetQuery;
824   
825   
826   /**
827    * SQL query with at least the following column: action_name
828    * @return query
829    */
830   public String getAttributeLoaderActionQuery() {
831     return attributeLoaderActionQuery;
832   }
833 
834   /**
835    * SQL query with at least the following column: action_name
836    * @param attributeLoaderActionQuery1
837    */
838   public void setAttributeLoaderActionQuery(String attributeLoaderActionQuery1) {
839     this.attributeLoaderActionQuery = attributeLoaderActionQuery1;
840   }
841 
842   /**
843    * SQL query with at least the following columns: if_has_action_name, then_has_action_name
844    * @return query
845    */
846   public String getAttributeLoaderActionSetQuery() {
847     return attributeLoaderActionSetQuery;
848   }
849 
850   /**
851    * SQL query with at least the following columns: if_has_action_name, then_has_action_name
852    * @param attributeLoaderActionSetQuery1
853    */
854   public void setAttributeLoaderActionSetQuery(String attributeLoaderActionSetQuery1) {
855     this.attributeLoaderActionSetQuery = attributeLoaderActionSetQuery1;
856   }
857 
858   /**
859    * If empty, then orphans will be left alone (for attributeDefName and attributeDefNameSets).  If %, then all orphans deleted.  If a SQL like string, then only ones in that like string not in loader will be deleted
860    * @return attrs like
861    */
862   public String getAttributeLoaderAttrsLike() {
863     return attributeLoaderAttrsLike;
864   }
865 
866   /**
867    * If empty, then orphans will be left alone (for attributeDefName and attributeDefNameSets).  If %, then all orphans deleted.  If a SQL like string, then only ones in that like string not in loader will be deleted
868    * @param attributeLoaderAttrsLike1
869    */
870   public void setAttributeLoaderAttrsLike(String attributeLoaderAttrsLike1) {
871     this.attributeLoaderAttrsLike = attributeLoaderAttrsLike1;
872   }
873 
874   /**
875    * SQL query with at least some of the following columns: attr_name, attr_display_name, attr_description
876    * @return query
877    */
878   public String getAttributeLoaderAttrQuery() {
879     return attributeLoaderAttrQuery;
880   }
881 
882   /**
883    * SQL query with at least some of the following columns: attr_name, attr_display_name, attr_description
884    * @param attributeLoaderAttrQuery1
885    */
886   public void setAttributeLoaderAttrQuery(String attributeLoaderAttrQuery1) {
887     this.attributeLoaderAttrQuery = attributeLoaderAttrQuery1;
888   }
889 
890   /**
891    * SQL query with at least the following columns: if_has_attr_name, then_has_attr_name
892    * @return sql query
893    */
894   public String getAttributeLoaderAttrSetQuery() {
895     return attributeLoaderAttrSetQuery;
896   }
897 
898   /**
899    * SQL query with at least the following columns: if_has_attr_name, then_has_attr_name
900    * @param attributeLoaderAttrSetQuery1
901    */
902   public void setAttributeLoaderAttrSetQuery(String attributeLoaderAttrSetQuery1) {
903     this.attributeLoaderAttrSetQuery = attributeLoaderAttrSetQuery1;
904   }
905 
906   /**
907    * 
908    */
909   public LoaderJobBean() {
910     super();
911   }
912 
913   /**
914    * deep clone the fields in this object
915    */
916   @Override
917   public LoaderJobBean clone() {
918     return GrouperUtil.clone(this, CLONE_FIELDS);
919   }
920 
921   /**
922    * type of job, e.g. group list, or sql simple
923    * @return type
924    */
925   public GrouperLoaderType getGrouperLoaderType() {
926     return this.grouperLoaderType;
927   }
928 
929   /**
930    * overall group name (if a group list job, then overall, if sql simple, then the group)
931    * @return group name overall
932    */
933   public String getGroupNameOverall() {
934     return this.groupNameOverall;
935   }
936 
937   /**
938    * database this runs against
939    * @return loader db
940    */
941   public GrouperLoaderDb getGrouperLoaderDb() {
942     return this.grouperLoaderDb;
943   }
944 
945   /**
946    * query for the job
947    * @return query
948    */
949   public String getQuery() {
950     return this.query;
951   }
952 
953   /**
954    * log entry for the job
955    * @return log
956    */
957   public Hib3GrouperLoaderLog getHib3GrouploaderLogOverall() {
958     return this.hib3GrouploaderLogOverall;
959   }
960 
961   /**
962    * grouper session (probably a root session)
963    * @return session
964    */
965   public GrouperSession getGrouperSession() {
966     return this.grouperSession;
967   }
968 
969   /**
970    * members must be in these groups also to be in the overall group
971    * @return and groups
972    */
973   public List<Group> getAndGroups() {
974     return this.andGroups;
975   }
976 
977   /**
978    * group types to add to loader managed group
979    * @return group types
980    */
981   public List<GroupType> getGroupTypes() {
982     return this.groupTypes;
983   }
984 
985   /**
986    * 
987    * @return group like string
988    */
989   public String getGroupLikeString() {
990     return this.groupLikeString;
991   }
992 
993   /**
994    * group query
995    * @return group query
996    */
997   public String getGroupQuery() {
998     return this.groupQuery;
999   }
1000 
1001   /**
1002    * display name sync type - It is used when syncing folders display names from source to grouper
1003    */
1004   GrouperLoaderDisplayNameSyncType grouperLoaderDisplayNameSyncType;
1005   
1006   /**
1007    * when sync type is BASE_FOLDER_NAME, this property contains the base folder name
1008    */
1009   String displayNameSyncBaseFolderName;
1010   
1011   /**
1012    * when sync type is LEVELS, this property contains the level number
1013    */
1014   Integer displayNameSyncLevels;
1015   
1016   
1017   public GrouperLoaderDisplayNameSyncType getGrouperLoaderDisplayNameSyncType() {
1018     return grouperLoaderDisplayNameSyncType;
1019   }
1020 
1021   
1022   public String getDisplayNameSyncBaseFolderName() {
1023     return displayNameSyncBaseFolderName;
1024   }
1025 
1026   
1027   public Integer getDisplayNameSyncLevels() {
1028     return displayNameSyncLevels;
1029   }
1030 
1031   /**
1032    * @param grouperLoaderType1
1033    * @param groupNameOverall1
1034    * @param grouperLoaderDb1
1035    * @param query1
1036    * @param hib3GrouploaderLogOverall1
1037    * @param grouperSession1
1038    * @param andGroups1
1039    * @param groupTypes1
1040    * @param groupLikeString1 groups with this like DB sql string are managed by the loader.
1041    * Any group in this list with no memberships and not in the group
1042    * metadata query will be emptied and if configured deleted
1043    * @param groupQuery1
1044    * @param startTime1
1045    * @param grouperLoaderDisplayNameSyncType
1046    * @param displayNameSyncBaseFolderName
1047    * @param displayNameSyncLevels
1048    */
1049   public LoaderJobBean(GrouperLoaderType grouperLoaderType1,
1050       String groupNameOverall1, GrouperLoaderDb grouperLoaderDb1, String query1,
1051       Hib3GrouperLoaderLog hib3GrouploaderLogOverall1,
1052       GrouperSession grouperSession1, List<Group> andGroups1,
1053       List<GroupType> groupTypes1, String groupLikeString1, String groupQuery1, long startTime1,
1054       GrouperLoaderDisplayNameSyncType grouperLoaderDisplayNameSyncType, String displayNameSyncBaseFolderName,
1055       Integer displayNameSyncLevels) {
1056     this.grouperLoaderType = grouperLoaderType1;
1057     this.groupNameOverall = groupNameOverall1;
1058     this.grouperLoaderDb = grouperLoaderDb1;
1059     this.query = query1;
1060     this.hib3GrouploaderLogOverall = hib3GrouploaderLogOverall1;
1061     this.grouperSession = grouperSession1;
1062     this.andGroups = andGroups1;
1063     this.groupTypes = groupTypes1;
1064     this.groupLikeString = groupLikeString1;
1065     this.groupQuery = groupQuery1;
1066     this.startTime = startTime1;
1067     this.grouperLoaderDisplayNameSyncType = grouperLoaderDisplayNameSyncType;
1068     this.displayNameSyncBaseFolderName = displayNameSyncBaseFolderName;
1069     this.displayNameSyncLevels = displayNameSyncLevels;
1070   }
1071 
1072   /**
1073    * constructor for ldap jobs
1074    * @param ldapType1
1075    * @param ldapServerId1
1076    * @param ldapFilter1
1077    * @param ldapSubjectAttribute1
1078    * @param ldapSearchDn1
1079    * @param ldapSourceId1
1080    * @param ldapSubjectIdType1
1081    * @param ldapSearchScope1
1082    * @param startTime1
1083    * @param grouperLoaderType1
1084    * @param groupNameOverall1
1085    * @param hib3GrouploaderLogOverall1
1086    * @param grouperSession1
1087    * @param andGroups1
1088    * @param ldapGroupAttribute1 
1089    * @param extraAttributes1 
1090    * @param ldapGroupNameExpression1 
1091    * @param ldapGroupDisplayExtensionExpression1 
1092    * @param ldapGroupDescriptionExpression1 
1093    * @param ldapSubjectExpression1
1094    * @param groupTypes1 
1095    * @param ldapGroupReaders1 
1096    * @param ldapGroupViewers1 
1097    * @param ldapGroupAdmins1 
1098    * @param ldapGroupUpdaters1 
1099    * @param ldapGroupOptins1 
1100    * @param ldapGroupOptouts1 
1101    * @param ldapAttributeFilterExpression1
1102    * @param ldapGroupAttrReaders1
1103    * @param ldapGroupAttrUpdaters1
1104    * @param groupsLike1 
1105    * @param ldapResultsTransformationClass1
1106    */
1107   public LoaderJobBean(String ldapType1, String ldapServerId1, String ldapFilter1,
1108       String ldapSubjectAttribute1, String ldapSearchDn1, String ldapSourceId1,
1109       String ldapSubjectIdType1, String ldapSearchScope1, long startTime1,
1110       GrouperLoaderType grouperLoaderType1, String groupNameOverall1,
1111       Hib3GrouperLoaderLog hib3GrouploaderLogOverall1, GrouperSession grouperSession1, List<Group> andGroups1,
1112       String ldapGroupAttribute1, String extraAttributes1, 
1113       String ldapGroupNameExpression1, 
1114       String ldapGroupDisplayExtensionExpression1, String ldapGroupDescriptionExpression1,
1115       String ldapSubjectExpression1, List<GroupType> groupTypes1, String ldapGroupReaders1,
1116       String ldapGroupViewers1, String ldapGroupAdmins1, String ldapGroupUpdaters1, String ldapGroupOptins1,
1117       String ldapGroupOptouts1, String groupsLike1, String ldapAttributeFilterExpression1, 
1118       String ldapGroupAttrReaders1, String ldapGroupAttrUpdaters1, String ldapResultsTransformationClass1
1119       ) {
1120     super();
1121     this.ldapType = ldapType1;
1122     this.ldapServerId = ldapServerId1;
1123     this.ldapFilter = ldapFilter1;
1124     this.ldapSubjectAttribute = ldapSubjectAttribute1;
1125     this.ldapSearchDn = ldapSearchDn1;
1126     this.ldapSourceId = ldapSourceId1;
1127     this.ldapSubjectIdType = ldapSubjectIdType1;
1128     this.ldapSearchScope = ldapSearchScope1;
1129     this.startTime = startTime1;
1130     this.grouperLoaderType = grouperLoaderType1;
1131     this.groupNameOverall = groupNameOverall1;
1132     this.hib3GrouploaderLogOverall = hib3GrouploaderLogOverall1;
1133     this.grouperSession = grouperSession1;
1134     this.andGroups = andGroups1;
1135     this.ldapAttributeFilterExpression = ldapAttributeFilterExpression1;
1136     this.ldapGroupAttribute = ldapGroupAttribute1;
1137     this.ldapExtraAttributes = extraAttributes1;
1138     this.ldapGroupNameExpression = ldapGroupNameExpression1;
1139     this.ldapGroupDisplayNameExpression = ldapGroupDisplayExtensionExpression1;
1140     this.ldapGroupDescriptionExpression = ldapGroupDescriptionExpression1;
1141     this.ldapSubjectExpression = ldapSubjectExpression1;
1142     this.groupTypes = groupTypes1;
1143     this.ldapGroupOptins = ldapGroupOptins1;
1144     this.ldapGroupOptouts = ldapGroupOptouts1;
1145     this.ldapGroupAttrReaders = ldapGroupAttrReaders1;
1146     this.ldapGroupAttrUpdaters = ldapGroupAttrUpdaters1;
1147     this.ldapGroupViewers = ldapGroupViewers1;
1148     this.ldapGroupReaders = ldapGroupReaders1;
1149     this.ldapGroupAdmins = ldapGroupAdmins1;
1150     this.ldapGroupUpdaters = ldapGroupUpdaters1;
1151     this.groupLikeString = groupsLike1;
1152     this.ldapResultsTransformationClass = ldapResultsTransformationClass1;
1153   }
1154 
1155   /**
1156    * @param grouperLoaderType1
1157    * @param attributeDefName 
1158    * @param grouperLoaderDb1
1159    * @param hib3GrouploaderLogOverall1
1160    * @param grouperSession1
1161    * @param startTime1 
1162    * @param attributeLoaderAttrQuery1
1163    * @param attributeLoaderAttrSetQuery1
1164    * @param attributeLoaderAttrsLike1
1165    * @param attributeLoaderActionQuery1 
1166    * @param attributeLoaderActionSetQuery1 
1167    */
1168   public LoaderJobBean(GrouperLoaderType grouperLoaderType1, String attributeDefName,
1169       GrouperLoaderDb grouperLoaderDb1, 
1170       Hib3GrouperLoaderLog hib3GrouploaderLogOverall1,
1171       GrouperSession grouperSession1, String attributeLoaderAttrQuery1, 
1172       String attributeLoaderAttrSetQuery1, String attributeLoaderAttrsLike1,
1173       String attributeLoaderActionQuery1, String attributeLoaderActionSetQuery1, long startTime1  ) {
1174     this.attributeDefName = attributeDefName;
1175     this.grouperLoaderType = grouperLoaderType1;
1176     this.grouperLoaderDb = grouperLoaderDb1;
1177     this.hib3GrouploaderLogOverall = hib3GrouploaderLogOverall1;
1178     this.grouperSession = grouperSession1;
1179     this.attributeLoaderAttrQuery = attributeLoaderAttrQuery1;
1180     this.attributeLoaderAttrSetQuery = attributeLoaderAttrSetQuery1;
1181     this.attributeLoaderAttrsLike = attributeLoaderAttrsLike1;
1182     this.attributeLoaderActionQuery = attributeLoaderActionQuery1;
1183     this.attributeLoaderActionSetQuery = attributeLoaderActionSetQuery1;
1184     this.startTime = startTime1;
1185   }
1186 
1187   /**
1188    * type of job, e.g. sql simple or group list
1189    * @param grouperLoaderType
1190    */
1191   public void setGrouperLoaderType(GrouperLoaderType grouperLoaderType) {
1192     this.grouperLoaderType = grouperLoaderType;
1193   }
1194 
1195   /**
1196    * group name for job (if group list, this is the overall name)
1197    * @param groupNameOverall
1198    */
1199   public void setGroupNameOverall(String groupNameOverall) {
1200     this.groupNameOverall = groupNameOverall;
1201   }
1202 
1203   /**
1204    * db this job runs against
1205    * @param grouperLoaderDb
1206    */
1207   public void setGrouperLoaderDb(GrouperLoaderDb grouperLoaderDb) {
1208     this.grouperLoaderDb = grouperLoaderDb;
1209   }
1210 
1211   /**
1212    * query for this job (if runs against query)
1213    * @param query1
1214    */
1215   public void setQuery(String query1) {
1216     this.query = query1;
1217   }
1218 
1219   /**
1220    * 
1221    * @param hib3GrouploaderLogOverall1
1222    */
1223   public void setHib3GrouploaderLogOverall(
1224       Hib3GrouperLoaderLog hib3GrouploaderLogOverall1) {
1225     this.hib3GrouploaderLogOverall = hib3GrouploaderLogOverall1;
1226   }
1227 
1228   /**
1229    * grouper session, probably a root session
1230    * @param grouperSession1
1231    */
1232   public void setGrouperSession(GrouperSession grouperSession1) {
1233     this.grouperSession = grouperSession1;
1234   }
1235 
1236   /**
1237    * members must be in these groups also to be in the overall group
1238    * @param andGroups1
1239    */
1240   public void setAndGroups(List<Group> andGroups1) {
1241     this.andGroups = andGroups1;
1242   }
1243 
1244   /**
1245    * group types to add to loader managed group
1246    * @param groupTypes
1247    */
1248   public void setGroupTypes(List<GroupType> groupTypes) {
1249     this.groupTypes = groupTypes;
1250   }
1251 
1252   /**
1253    * groups with this like DB sql string are managed by the loader.
1254    * Any group in this list with no memberships and not in the group
1255    * metadata query will be emptied and if configured deleted
1256    * @param groupLikeString
1257    */
1258   public void setGroupLikeString(String groupLikeString) {
1259     this.groupLikeString = groupLikeString;
1260   }
1261 
1262   /**
1263    * 
1264    * @param groupQuery1
1265    */
1266   public void setGroupQuery(String groupQuery1) {
1267     this.groupQuery = groupQuery1;
1268   }
1269 
1270   /**
1271    * start time of job
1272    * @return start time
1273    */
1274   public long getStartTime() {
1275     return this.startTime;
1276   }
1277 
1278   /**
1279    * start time of job
1280    * @param startTime1
1281    */
1282   public void setStartTime(long startTime1) {
1283     this.startTime = startTime1;
1284   }
1285 
1286   
1287   /**
1288    * optional for LDAP_GROUPS_FROM_ATTRIBUTES
1289    * Class to transform data from ldap for more advanced transformations (e.g. parsing ldap attribute values into multiple groups)
1290    * @return the ldapResultsTransformationClass
1291    */
1292   public String getLdapResultsTransformationClass() {
1293     return ldapResultsTransformationClass;
1294   }
1295 
1296   
1297   /**
1298    * optional for LDAP_GROUPS_FROM_ATTRIBUTES
1299    * Class to transform data from ldap for more advanced transformations (e.g. parsing ldap attribute values into multiple groups)
1300    * @param ldapResultsTransformationClass1 the ldapResultsTransformationClass1 to set
1301    */
1302   public void setLdapResultsTransformationClass(String ldapResultsTransformationClass1) {
1303     this.ldapResultsTransformationClass = ldapResultsTransformationClass1;
1304   }
1305 
1306   /**
1307    * failsafe settings, defaults, etc
1308    */
1309   private GrouperFailsafeBean grouperFailsafeBean;
1310   
1311   /**
1312    * failsafe settings, defaults, etc
1313    * @param grouperFailsafeBean1
1314    */
1315   public void setGrouperFailsafeBean(GrouperFailsafeBean grouperFailsafeBean1) {
1316     this.grouperFailsafeBean = grouperFailsafeBean1;
1317   }
1318 
1319   /**
1320    * failsafe settings, defaults, etc
1321    * @return
1322    */
1323   public GrouperFailsafeBean getGrouperFailsafeBean() {
1324     return grouperFailsafeBean;
1325   }
1326 
1327   
1328 }