edu.internet2.middleware.grouper.app.loader
Enum GrouperLoaderType

java.lang.Object
  extended by java.lang.Enum<GrouperLoaderType>
      extended by edu.internet2.middleware.grouper.app.loader.GrouperLoaderType
All Implemented Interfaces:
Serializable, Comparable<GrouperLoaderType>

public enum GrouperLoaderType
extends Enum<GrouperLoaderType>

type of loaders (e.g. sql simple)


Enum Constant Summary
ATTR_SQL_SIMPLE
          simple sql query where all results are all members of group.
CHANGE_LOG
          various change log jobs on the system
LDAP_GROUP_LIST
          ldap query where objects are group, and filter is for multi-valued object where all results are all members of group.
LDAP_GROUPS_FROM_ATTRIBUTES
          ldap query where objects are users, and filter is for multi-valued object where all results are affiliations or something that represents the groups of users.
LDAP_SIMPLE
          simple ldap query where all results are all members of group.
MAINTENANCE
          various maintenance jobs on the system
MESSAGE_LISTENER
          various messaging jobs on the system
OTHER_JOB
          other job
PSP_FULL_SYNC
          Run a psp full sync.
SQL_GROUP_LIST
          sql query where there is a column for group_name (which is the extension of each stem, and the extension of the group, separated by colons) must have a subject_id col, and optionally a subject_source_id col.
SQL_SIMPLE
          simple sql query where all results are all members of group.
 
Field Summary
static String GROUPER_BUILTIN_MESSAGING_DAEMON
          maintenance builtinMessagingDaemon name
static String GROUPER_CHANGE_LOG_CONSUMER_PREFIX
          change log consumer prefix
static String GROUPER_CHANGE_LOG_TEMP_TO_CHANGE_LOG
          change log temp to change log
static String GROUPER_ENABLED_DISABLED
          maintenance enabledDisabled name
static String GROUPER_ESB_HTTP_LISTENER
          esb http listener name
static String GROUPER_ESB_XMMP_LISTENER
          esb xmpp listener name
static String GROUPER_EXTERNAL_SUBJ_CALC_FIELDS
          maintenance, calculate enabled/disabled fields
static String GROUPER_GROUP_SYNC
          group sync job name
static String GROUPER_MESSAGING_LISTENER_PREFIX
          change log consumer prefix
static String GROUPER_OTHER_JOB_PREFIX
          other jobs prefix
static String GROUPER_REPORT
          maintenance grouper report name
static String GROUPER_RULES
          maintenance rules name
static String MAINTENANCE_CLEAN_LOGS
          maintenance clean logs name
 
Method Summary
abstract  boolean attributeOptional(String attributeName)
          see if an attribute if optional or not (if not, then it is either required or forbidden)
abstract  boolean attributeRequired(String attributeName)
          /** see if an attribute if required or not
static String attributeValueOrDefaultOrNull(AttributeAssign attributeAssign, String attributeDefName)
          get an attribute value, or null, or a default if exists
static String attributeValueOrDefaultOrNull(Group group, String attributeName)
          get an attribute value, or null, or a default if exists
static String attributeValueOrDefaultOrNullAttrDef(AttributeDef attributeDef, String attributeName)
          get an attribute value, or null, or a default if exists
 boolean dayListContainsToday(String dayList)
           
static void initPrivilegesForGroup(GrouperLoaderResultset grouperLoaderResultsetOverall, Map<String,Map<Privilege,List<edu.internet2.middleware.subject.Subject>>> privsToAddForGroup, Map<String,edu.internet2.middleware.subject.Subject> subjectCache, Privilege privilege, String subjectsWithPrivilege)
          init the privilege for a group, add entries to the privsToAdd method
static List<edu.internet2.middleware.subject.Subject> lookupSubject(Map<String,edu.internet2.middleware.subject.Subject> subjectCache, String subjectIdOrIdentifierList)
          take in a subject list, comma separated
 boolean nameForThisType(String jobName)
          if this job name is for this type
static Set<Group> retrieveGroups(GrouperSession grouperSession)
          retrieve all loader groups from the db
static Set<AttributeAssign> retrieveLdapAttributeAssigns()
           
abstract  void runJob(LoaderJobBean loaderJobBean)
           sync up a group membership based on query and db.
static void scheduleAttributeLoads()
          for all attribute jobs in this loader type, schedule them with quartz
static void scheduleLdapLoads()
          for all ldap jobs in this loader type, schedule them with quartz
static void scheduleLoads()
          for all jobs in this loader type, schedule them with quartz
static void syncGroupList(GrouperLoaderResultset grouperLoaderResultsetOverall, long startTime, GrouperSession grouperSession, List<Group> andGroups, List<GroupType> groupTypes, String groupLikeString, String groupNameOverall, Hib3GrouperLoaderLog hib3GrouploaderLogOverall, GrouperLoaderStatus[] statusOverall, GrouperLoaderDb grouperLoaderDb, Map<String,String> groupNameToDisplayName, Map<String,String> groupNameToDescription, Map<String,Map<Privilege,List<edu.internet2.middleware.subject.Subject>>> privsToAdd, Set<String> groupNamesFromGroupQuery)
          sync a group list
static GrouperLoaderType typeForThisName(String jobName)
          return the type for this job name
static void validateAndScheduleLdapLoad(AttributeAssign attributeAssign, Set<String> jobNames, boolean logErrorsToDb)
           
static void validateAndScheduleSqlLoad(Group group, Set<String> jobNames, boolean logErrorsToDb)
           
static GrouperLoaderType valueOf(String name)
          Returns the enum constant of this type with the specified name.
static GrouperLoaderType valueOfIgnoreCase(String string, boolean exceptionOnNull)
          do a case-insensitive matching
static GrouperLoaderType[] values()
          Returns an array containing the constants of this enum type, in the order they are declared.
 
Methods inherited from class java.lang.Enum
compareTo, equals, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

Enum Constant Detail

SQL_SIMPLE

public static final GrouperLoaderType SQL_SIMPLE
simple sql query where all results are all members of group. must have a subject_id col, and optionally a subject_source_id col


OTHER_JOB

public static final GrouperLoaderType OTHER_JOB
other job


MAINTENANCE

public static final GrouperLoaderType MAINTENANCE
various maintenance jobs on the system


SQL_GROUP_LIST

public static final GrouperLoaderType SQL_GROUP_LIST
sql query where there is a column for group_name (which is the extension of each stem, and the extension of the group, separated by colons) must have a subject_id col, and optionally a subject_source_id col. note the query should have no order by, and if there is a where clause, it should have "where" separated by whitespace on both side so it can be detected


CHANGE_LOG

public static final GrouperLoaderType CHANGE_LOG
various change log jobs on the system


MESSAGE_LISTENER

public static final GrouperLoaderType MESSAGE_LISTENER
various messaging jobs on the system


ATTR_SQL_SIMPLE

public static final GrouperLoaderType ATTR_SQL_SIMPLE
simple sql query where all results are all members of group. must have a subject_id col, and optionally a subject_source_id col


LDAP_SIMPLE

public static final GrouperLoaderType LDAP_SIMPLE
simple ldap query where all results are all members of group. must have a subject id attribute


LDAP_GROUP_LIST

public static final GrouperLoaderType LDAP_GROUP_LIST
ldap query where objects are group, and filter is for multi-valued object where all results are all members of group. must have a subject id attribute


LDAP_GROUPS_FROM_ATTRIBUTES

public static final GrouperLoaderType LDAP_GROUPS_FROM_ATTRIBUTES
ldap query where objects are users, and filter is for multi-valued object where all results are affiliations or something that represents the groups of users.


PSP_FULL_SYNC

public static final GrouperLoaderType PSP_FULL_SYNC
Run a psp full sync.

Field Detail

MAINTENANCE_CLEAN_LOGS

public static final String MAINTENANCE_CLEAN_LOGS
maintenance clean logs name

See Also:
Constant Field Values

GROUPER_REPORT

public static final String GROUPER_REPORT
maintenance grouper report name

See Also:
Constant Field Values

GROUPER_ENABLED_DISABLED

public static final String GROUPER_ENABLED_DISABLED
maintenance enabledDisabled name

See Also:
Constant Field Values

GROUPER_BUILTIN_MESSAGING_DAEMON

public static final String GROUPER_BUILTIN_MESSAGING_DAEMON
maintenance builtinMessagingDaemon name

See Also:
Constant Field Values

GROUPER_EXTERNAL_SUBJ_CALC_FIELDS

public static final String GROUPER_EXTERNAL_SUBJ_CALC_FIELDS
maintenance, calculate enabled/disabled fields

See Also:
Constant Field Values

GROUPER_RULES

public static final String GROUPER_RULES
maintenance rules name

See Also:
Constant Field Values

GROUPER_GROUP_SYNC

public static final String GROUPER_GROUP_SYNC
group sync job name

See Also:
Constant Field Values

GROUPER_CHANGE_LOG_TEMP_TO_CHANGE_LOG

public static final String GROUPER_CHANGE_LOG_TEMP_TO_CHANGE_LOG
change log temp to change log

See Also:
Constant Field Values

GROUPER_CHANGE_LOG_CONSUMER_PREFIX

public static final String GROUPER_CHANGE_LOG_CONSUMER_PREFIX
change log consumer prefix

See Also:
Constant Field Values

GROUPER_MESSAGING_LISTENER_PREFIX

public static final String GROUPER_MESSAGING_LISTENER_PREFIX
change log consumer prefix


GROUPER_OTHER_JOB_PREFIX

public static final String GROUPER_OTHER_JOB_PREFIX
other jobs prefix

See Also:
Constant Field Values

GROUPER_ESB_HTTP_LISTENER

public static final String GROUPER_ESB_HTTP_LISTENER
esb http listener name

See Also:
Constant Field Values

GROUPER_ESB_XMMP_LISTENER

public static final String GROUPER_ESB_XMMP_LISTENER
esb xmpp listener name

See Also:
Constant Field Values
Method Detail

values

public static GrouperLoaderType[] values()
Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:
for (GrouperLoaderType c : GrouperLoaderType.values())
    System.out.println(c);

Returns:
an array containing the constants of this enum type, in the order they are declared

valueOf

public static GrouperLoaderType valueOf(String name)
Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

Parameters:
name - the name of the enum constant to be returned.
Returns:
the enum constant with the specified name
Throws:
IllegalArgumentException - if this enum type has no constant with the specified name
NullPointerException - if the argument is null

initPrivilegesForGroup

public static void initPrivilegesForGroup(GrouperLoaderResultset grouperLoaderResultsetOverall,
                                          Map<String,Map<Privilege,List<edu.internet2.middleware.subject.Subject>>> privsToAddForGroup,
                                          Map<String,edu.internet2.middleware.subject.Subject> subjectCache,
                                          Privilege privilege,
                                          String subjectsWithPrivilege)
init the privilege for a group, add entries to the privsToAdd method

Parameters:
grouperLoaderResultsetOverall - result set with groups
privsToAddForGroup - map to add results to
subjectCache - to help with resolving
privilege - to add
subjectsWithPrivilege - the subjects who have the privilege

syncGroupList

public static void syncGroupList(GrouperLoaderResultset grouperLoaderResultsetOverall,
                                 long startTime,
                                 GrouperSession grouperSession,
                                 List<Group> andGroups,
                                 List<GroupType> groupTypes,
                                 String groupLikeString,
                                 String groupNameOverall,
                                 Hib3GrouperLoaderLog hib3GrouploaderLogOverall,
                                 GrouperLoaderStatus[] statusOverall,
                                 GrouperLoaderDb grouperLoaderDb,
                                 Map<String,String> groupNameToDisplayName,
                                 Map<String,String> groupNameToDescription,
                                 Map<String,Map<Privilege,List<edu.internet2.middleware.subject.Subject>>> privsToAdd,
                                 Set<String> groupNamesFromGroupQuery)
sync a group list

Parameters:
grouperLoaderResultsetOverall -
startTime -
grouperSession -
andGroups -
groupTypes -
groupLikeString -
groupNameOverall -
hib3GrouploaderLogOverall -
statusOverall -
grouperLoaderDb -
groupNameToDisplayName -
groupNameToDescription -
privsToAdd -
groupNamesFromGroupQuery - if not null, this is the list of groups to sync

nameForThisType

public boolean nameForThisType(String jobName)
if this job name is for this type

Parameters:
jobName -
Returns:
true if this name is for this type

typeForThisName

public static GrouperLoaderType typeForThisName(String jobName)
return the type for this job name

Parameters:
jobName -
Returns:
the type

attributeRequired

public abstract boolean attributeRequired(String attributeName)
/** see if an attribute if required or not

Parameters:
attributeName -
Returns:
true if required, false if not

runJob

public abstract void runJob(LoaderJobBean loaderJobBean)
 sync up a group membership based on query and db.  Note, the first thing you should
 do is set the context type:
 
             GrouperContext.createNewDefaultContext(GrouperEngineBuiltin.LOADER, false, true);
 

Parameters:
loaderJobBean - is the bean data

attributeOptional

public abstract boolean attributeOptional(String attributeName)
see if an attribute if optional or not (if not, then it is either required or forbidden)

Parameters:
attributeName -
Returns:
true if optional, false if not

lookupSubject

public static List<edu.internet2.middleware.subject.Subject> lookupSubject(Map<String,edu.internet2.middleware.subject.Subject> subjectCache,
                                                                           String subjectIdOrIdentifierList)
take in a subject list, comma separated

Parameters:
subjectCache -
subjectIdOrIdentifierList -
Returns:
the list of subjects (never null)

attributeValueOrDefaultOrNull

public static String attributeValueOrDefaultOrNull(Group group,
                                                   String attributeName)
get an attribute value, or null, or a default if exists

Parameters:
group -
attributeName -
Returns:
the attribute value

dayListContainsToday

public boolean dayListContainsToday(String dayList)
Parameters:
dayList -
Returns:
true if today is in day list, false if not

validateAndScheduleSqlLoad

public static void validateAndScheduleSqlLoad(Group group,
                                              Set<String> jobNames,
                                              boolean logErrorsToDb)
Parameters:
group -
jobNames -
logErrorsToDb -

scheduleLoads

public static void scheduleLoads()
for all jobs in this loader type, schedule them with quartz


attributeValueOrDefaultOrNull

public static String attributeValueOrDefaultOrNull(AttributeAssign attributeAssign,
                                                   String attributeDefName)
get an attribute value, or null, or a default if exists

Parameters:
attributeAssign -
attributeDefName -
Returns:
the attribute value

attributeValueOrDefaultOrNullAttrDef

public static String attributeValueOrDefaultOrNullAttrDef(AttributeDef attributeDef,
                                                          String attributeName)
get an attribute value, or null, or a default if exists

Parameters:
attributeDef -
attributeName -
Returns:
the attribute value

scheduleAttributeLoads

public static void scheduleAttributeLoads()
for all attribute jobs in this loader type, schedule them with quartz


validateAndScheduleLdapLoad

public static void validateAndScheduleLdapLoad(AttributeAssign attributeAssign,
                                               Set<String> jobNames,
                                               boolean logErrorsToDb)
Parameters:
attributeAssign -
jobNames -
logErrorsToDb -

scheduleLdapLoads

public static void scheduleLdapLoads()
for all ldap jobs in this loader type, schedule them with quartz


retrieveLdapAttributeAssigns

public static Set<AttributeAssign> retrieveLdapAttributeAssigns()

retrieveGroups

public static Set<Group> retrieveGroups(GrouperSession grouperSession)
retrieve all loader groups from the db

Parameters:
grouperSession -
Returns:
the groups (will not return null, only the empty set if none)

valueOfIgnoreCase

public static GrouperLoaderType valueOfIgnoreCase(String string,
                                                  boolean exceptionOnNull)
do a case-insensitive matching

Parameters:
string -
exceptionOnNull - will not allow null or blank entries
Returns:
the enum or null or exception if not found