PopulationRuleInfo

Name PopulationRuleInfo
Usage PopulationService
getPopulationRule getPopulationRulesByIds getPopulationRuleForPopulation searchForPopulationRules validatePopulationRule createPopulationRule updatePopulationRule
Type Complex

Description

Information about a Population Rule to set up a Population. Each
"rule" defined in this interface adds to the population.

The Population Rule Type determines the "operator" of how these
elements are combined.

Structure Definition

ShortName Name Type Description Required? Read only? Cardinality XML Attribute? Implementation Notes
id Unique Id String The system assigned unique id to identify this Object.
Could be implemented as as sequence number or as a UUID.

Attempts to set this value on creates should result in a ReadOnlyException being thrown

An Id:

  • An id is used when the actual value is unimportant and
    can therefore be a large hex value for example

  • An id value might be 23b9ca9bd203df902

  • An Id is never intended to be used directly by an end
    user.

  • Ids are assumed to be of different values in different
    KS implementations

  • Id values are generated by the service
    implementations

  • Id values are never expected to be used in
    Configuration or Application code

Required on updates Read only One Yes  
typeKey Type Key String A unique identifier for the type of this object. Required Read only One Yes  
stateKey State Key String A unique identifier for the state of this object. Required   One Yes  
name Name String A display name for this entity.     One No  
descr Description RichTextInfo A description of the entity.     One No  
searchCriteria Search Criteria QueryByCriteria The search criteria to be used in building this
population.

*** NOT IMPLEMENTED *****
TODO: Figure out how this can be persisted
Required when the rule type indicates the population is based on a search criteria   One No  
agendaIds Agenda Ids StringList Agenda Ids to be used in building this population. Required when the rule type indicates this is based on a KRMS rule   Many No  
groupIds Group Ids StringList A list of Group Ids to be used in building this population. Required when the rule type indicates this is based on a group   Many No  
personIds Person Ids StringList A list of Person Ids to be used in building this population.

Note: this does not hold the list of members unless people can be manually
added or removed from the population.
Required when rule type indicates students can be explicitly added/removed from the population.   Many No  
childPopulationIds Child Population Ids StringList A list of Population Ids to be used in building this
population.

The operation is determined by the PopuationRule
Type.
Required if the rule type indicates this population is created as a union or intersection or minus other existing populations.   Many No  
referencePopulationId Reference Population Id String The Population Id to be used as the reference population from which
the child populations are removed in the minus operation.

This is used only in the minus operation to help calculate "all others
not caught but the any of the above" use case.
Required if the rule type is a Minus type   One No  
sortOrderTypeKeys Sort Order Type Keys StringList Gets the valid sort order keys that can be used to sort the
members of the Population.

The valid sort order keys correspond
to the underlying rule sorting capabilities.

This may return an empty list indicating the population does not support
any particular ordering.
    Many No  
variesByTime Varies By Time Boolean Tests to see if the Population may vary by time.

If true then the response to isMemberAtXXXX getMembersAtXXXX methods should
be used to assess membership because it is highly likely the population
would return a different result depending on the time parameter that is supplied.

An example of populations that vary by time include freshman, sophomore,
junior, senior, etc... because the answer varies greatly depending on the
term in question.

Some examples of populations that are not expected to vary with time are
males or students with IDs ending in an odd number or US citizens.

Note: Saying that a population does not vary with time does not mean that
the population does not change over time. Rather it means that
calls isMember and isMemberAtXXX methods or getMembers and getMembersAtXXX
should normally return the same answer if invoked simultaneously.
Required   One No  
supportsGetMembers Supports Get Members Boolean Tests to see if this Population supports the getting of an explicit list
of the members in this population.

Not all populations need to support this method and only support
the isMember method which tests.

If false then calls to the getMembersXXX family for this population
should throw an OperationFailedException exception.
Required   One No  
meta Meta MetaInfo Create and last update info for the structure. This is optional
and treated as read only since the data is set by the internals
of the service during maintenance operations.

Contains audit trail information about the creation and last
update of this object Also contains the version ind used for
optimistic locking.

Attempts to set or update should result in a ReadOnlyException
being thrown.
Required on updates Read only One No  
attributes Dynamic Attributes AttributeInfoList List of dynamic attributes, each holding a key-value pair that
can be configured to hold additional information for an
implementing institution.

Note: the key may be repeated more than once to simulate a list
of values.
    Many No