Interface OsidEffectuator
- All Superinterfaces:
Browsable, Extensible, Identifiable, Operable, OsidEnabler, OsidObject, OsidRule, Temporal
- All Known Subinterfaces:
AuthorizationEnabler
An OsidEffectuator is an OsidEnabler used to manage the
effectiveness of a Temporal . The OsidEffectuator itself
may be active or inactive. When an OsidEffecuator is active, any
mapped effective Temporal remains effective. When all
OsidEffectuators mapped to an effective Temporal are inactive,
then the Temporal becomes ineffective. When an
OsidEffecuator is active, any mapped ineffective Temporal either
creates a new mapped Temporal or extends the effectiveness of the
existing Temporal.
If isRequirement() is true , then this
OsidEffectuator must be active regardless of the state of any other
OsidEffectuators mapped to the Temporal .
In the case where an OsidEffectuator may cause a discontinuity
in a Temporal , the OsidEffectuator may cause the creation
of new Temporals to capture the gap in effectiveness. In the case
of a new Temporal , the existing OsidEffectuators are
applied to it.
For example, An OsidRelationship that began in 2007 may be
brought to an end in 2008 due to the absence of any active
OsidEffectuators . When an active OsidEffectuator appears in
2009, a new OsidRelationship is created with a starting effective
date of 2009. There are now two OsidRelationships , one effective
and one ineffective, with the same peers and applied
OsidEffectuators .
Temporals are auditable records of changing data and are constant
with respect to the context or perspective of an evaluation. For example,
if a building has been demolished for one person, another person cannot be
a tenant at the same time. OsidEffectuators are rules which govern
the closing and creation of Temporals over time, but do not
incorporate context that varies from one perspective to the next.
It is up to the consuming process of these OsidEffectuators to
manage the Temporals to which they apply. For instance, if
multiple OsidEffectuators are in effect with overlapping date
ranges, the process should result in a single Temporal that covers
the entire period. The process is also responsible for determining the
appropriate time resolutions (seconds, hours, days, etc.) for the
Temporals as well as maintaining the new OsidEffectuator mappings
for new Temporals created. The process may periodically resync
with OsidEffectuators to manage Temporals in batch but may
also listen for notifications as to any changes to
OsidEffectuators .
For auditing uses, resulting new or expired Temporals may not
be permitted in the past but might only take place in future time windows.
While not necessary for operation, there may be additional auditing
concerns that include the retention of OsidEffectuator copies on
expired Temporals and journaling the OsidEffectuators for
tracking changes to the rules.
-
Method Summary
Modifier and TypeMethodDescriptionbooleanTests if thisOsidEffectuatorbecomes inactive following the creation of a singleTemporal.Gets the duration at which a newTemporalis created when theOsidEffectuatorrules result in a positive evaluation.Methods inherited from interface Browsable
getProperties, getPropertiesByRecordTypeModifier and TypeMethodDescriptionGets a list of properties.getPropertiesByRecordType(Type recordType) Gets a list of properties corresponding to the specified record type.Methods inherited from interface Extensible
getRecordTypes, hasRecordTypeModifier and TypeMethodDescriptionGets the record types available in this object.booleanhasRecordType(Type recordType) Tests if this object supports the given recordType.Methods inherited from interface Identifiable
getId, isCurrentMethods inherited from interface Operable
isActive, isDisabled, isEnabled, isOperationalModifier and TypeMethodDescriptionbooleanisActive()Tests if this operable is active.booleanTests if this operable is administravely disabled.booleanTests if this operable is administravely enabled.booleanTests if thisOperableis operational.Methods inherited from interface OsidEnabler
getCyclicEvent, getCyclicEventId, getCyclicTimePeriod, getCyclicTimePeriodId, getEvent, getEventId, getSchedule, getScheduleId, getTimePeriod, getTimePeriodId, isOperationalDuringCyclicEvent, isOperationalDuringCyclicTimePeriod, isOperationalDuringEvent, isOperationalDuringTimePeriod, isOperationalOnSchedule, isRequirementModifier and TypeMethodDescriptionGets the cyclic event.Gets the cyclic eventId.Gets the cyclic time period.Gets the cyclic time periodId.getEvent()Gets the event.Gets the eventId.Gets the schedule.Gets the scheduleId.Gets the time period.Gets the time periodId.booleanTests if the operational status of the enabler is governed by aCyclicEvent.booleanTests if this enabler is applied to a recurringCyclicTimePeriod.booleanTests if the operational status of the enabler is governed by anEvent.booleanTests if this enabler is applied to aTimePeriod.booleanTests if the operational status of the enabler is governed by aSchedule.booleanTests if thisOsidEnableris a requirement.Methods inherited from interface OsidObject
getDescription, getDisplayName, getGenusType, isOfGenusTypeModifier and TypeMethodDescriptionGets the description associated with this instance of this OSID object.Gets the preferred display name associated with this instance of this OSID object appropriate for display to the user.Gets the genus type of this object.booleanisOfGenusType(Type genusType) Tests if this object is of the given genusType.Methods inherited from interface OsidRule
getConditionRecordTypes, getRule, getRuleId, hasRuleMethods inherited from interface Temporal
getEndDate, getStartDate, isEffectiveModifier and TypeMethodDescriptionGets the end date.Gets the start date.booleanTests if the current date is within the start end end dates inclusive.
-
Method Details
-
createOnce
boolean createOnce()Tests if thisOsidEffectuatorbecomes inactive following the creation of a singleTemporal. Note that a singleOsidEffectuatorwith this flag set results in up to twoTemporals. The first one was created to hold thisOsidEffectuatorand the second created by thisOsidEffectuatorafter the first one expired.- Returns:
trueif this is a create once rule,falseif it continues- Compliance:
mandatory- This method must be implemented.
-
getMinimumContinuityGap
Duration getMinimumContinuityGap()Gets the duration at which a newTemporalis created when theOsidEffectuatorrules result in a positive evaluation. At smaller durations, theTemporalmay simply be extended. If the minimum gap is exceeded a newTemporalwill be created to capture the period in time when theTemporalwas ineffective. A value of 0 will always result in newTemporalsand a value of infinity will never create a newTemporal.- Returns:
- the minimum continuity gap duration
- Compliance:
mandatory- This method must be implemented.
-