OSID Logo
OSID Specifications
osid package
Version 3.1.0
Interfaceosid.OsidEnabler
Implementsosid.OsidRule
osid.Temporal
Implemented Byosid.repository.rules.CompositionEnabler
osid.assessment.authoring.SequenceRuleEnabler
osid.configuration.rules.ValueEnabler
osid.configuration.rules.ParameterProcessorEnabler
osid.profile.rules.ProfileEntryEnabler
osid.bidding.rules.AuctionConstrainerEnabler
osid.bidding.rules.AuctionProcessorEnabler
osid.bidding.rules.BidEnabler
osid.cataloging.rules.CatalogEnabler
osid.contact.rules.ContactEnabler
osid.voting.rules.RaceConstrainerEnabler
osid.voting.rules.RaceProcessorEnabler
osid.voting.rules.BallotConstrainerEnabler
osid.voting.rules.VoteEnabler
osid.subscription.rules.DispatchEnabler
osid.subscription.rules.DispatchConstrainerEnabler
osid.subscription.rules.DispatchProcessorEnabler
osid.subscription.rules.SubscriptionEnabler
osid.hold.rules.IssueEnabler
osid.hold.rules.IssueConstrainerEnabler
osid.hold.rules.IssueProcessorEnabler
osid.hold.rules.HoldEnabler
osid.OsidOperator
osid.OsidEffectuator
osid.OsidRuleApplicator
osid.control.rules.DeviceEnabler
osid.control.rules.InputEnabler
osid.control.rules.TriggerEnabler
osid.control.rules.ActionEnabler
osid.resource.demographic.DemographicEnabler
osid.calendaring.rules.RecurringEventEnabler
osid.calendaring.rules.OffsetEventEnabler
osid.calendaring.rules.SupersedingEventEnabler
osid.calendaring.rules.CommitmentEnabler
osid.ontology.rules.RelevancyEnabler
osid.workflow.rules.ProcessEnabler
osid.workflow.rules.ProcessConstrainerEnabler
osid.workflow.rules.ProcessProcessorEnabler
osid.workflow.rules.StepEnabler
osid.workflow.rules.StepConstrainerEnabler
osid.workflow.rules.StepProcessorEnabler
osid.topology.rules.EdgeEnabler
osid.course.requisite.Requisite
osid.offering.rules.CanonicalUnitEnabler
osid.offering.rules.CanonicalUnitProcessorEnabler
osid.offering.rules.OfferingConstrainerEnabler
osid.ordering.rules.PriceEnabler
osid.inquiry.rules.AuditEnabler
osid.inquiry.rules.AuditConstrainerEnabler
osid.inquiry.rules.AuditProcessorEnabler
osid.inquiry.rules.InquiryEnabler
osid.relationship.rules.RelationshipEnabler
osid.provisioning.rules.BrokerEnabler
osid.provisioning.rules.BrokerConstrainerEnabler
osid.provisioning.rules.BrokerProcessorEnabler
osid.provisioning.rules.QueueEnabler
osid.provisioning.rules.QueueConstrainerEnabler
osid.provisioning.rules.QueueProcessorEnabler
osid.provisioning.rules.PoolEnabler
osid.provisioning.rules.PoolConstrainerEnabler
osid.provisioning.rules.PoolProcessorEnabler
osid.provisioning.rules.ProvisionableEnabler
osid.provisioning.rules.ProvisionEnabler
osid.tracking.rules.QueueEnabler
osid.tracking.rules.QueueConstrainerEnabler
osid.tracking.rules.QueueProcessorEnabler
osid.resourcing.rules.AvailabilityEnabler
osid.resourcing.rules.CommissionEnabler
osid.resourcing.rules.JobConstrainerEnabler
osid.resourcing.rules.JobProcessorEnabler
osid.mapping.path.rules.SpeedZoneEnabler
osid.mapping.path.rules.SignalEnabler
osid.mapping.path.rules.ObstacleEnabler
Description

An OsidEnabler is an OsidRule used to manage the effectiveness, enabledness, or operation of an OsidObject. The OsidEnabler itself may be active or inactive. When an OsidEnabler is active, any OsidObject to which it is applied is "on." When all OsidEnablers applied to an OsidObject are inactive, then the OsidObject is "off." If isRequirement() is true, then this OsidEnabler must be active regardless of the state of any other OsidEnablers mapped to the OsidObject.

The managed OsidObject may have varying semantics as to what its on/off status means and in particular, which methods are used to indicate the effect of an applied OsidEnabler. These semantics are defined in the types of OsidEnablers.

  • Operables: OsidOperators effect the operational status of the Operable .
  • Temporals: OsidEffectuators may be used to extend or shorten the effectiveness of a Temporal such as an OsidRelationship.
  • OsidRules: OsidRuleApplicators determine if the OsidRule is applicable in an evaluation.
OsidEnablers are both Operables and Temporals. Ineffective OsidEnablers are not operational therefore not active. In other words, isOperational() also depends on isEffective(). OsidEnablers define several built-in dimensions to govern its operational status.
  • effective dates: The OsidEnabler is operational during these dates and evaluated using a date.
  • schedule: The OsidEnabler is operational when the date is occurs on the Schedule and the date is within the effective dates.
  • event: The OsidEnabler is operational when the date occurs within the Event and the date is within the effective dates. Events may be comprised of Schedules and other rules making them discontinuous.
  • cyclic event: The OsidEnabler is operational when the date cccurs within the CyclicEvent and the date is within the effective dates. CyclicEvents may be complex recurring events but also recur from one time period to the next, such as annually.
  • time period: The OsidEnabler is operational during a TimePeriod.
  • cyclic time period: The OsidEnabler is operational during a recurring TimePeriod. For example, any Spring term.
MethodisRequirement
Description

Tests if this OsidEnabler is a requirement. Requirements are special-case OsidEnablers.

If true, the OsidObjects to which this OsidEnabler is applied become inactive when this OsidEnabler is inactive, regardless of the state of any other OsidEnabler. When this OsidEnabler is active, the state of the OsidObject is driven off of the state of the other applied OsidEnablers.

If false, the OsidObject is active when any applied OsidEnabler is active including this one.

Returnboolean true if this enabler is a requirement, false otherwise
Compliancemandatory This method must be implemented.
MethodisOperationalOnSchedule
Description

Tests if the operational status of the enabler is governed by a Schedule. If a schedule exists, it is bounded by the effective dates of this enabler.

Returnboolean true if the enabler is operational on a schedule, false otherwise
Compliancemandatory This method must be implemented.
MethodgetScheduleId
Description

Gets the schedule Id.

Returnosid.id.Id the schedule Id
ErrorsILLEGAL_STATE isOperationalOnSchedule() is false
Compliancemandatory This method must be implemented.
MethodgetSchedule
Description

Gets the schedule.

Returnosid.calendaring.Schedule the schedule
ErrorsILLEGAL_STATE isOperationalOnSchedule() is false
OPERATION_FAILED unable to complete request
Compliancemandatory This method must be implemented.
MethodisOperationalDuringEvent
Description

Tests if the operational status of the enabler is governed by an Event. The event may also be a RecurringEvent in which case the enabler is effective for start and end dates of each event in the series If an event exists, it is bounded by the effective dates of this enabler.

Returnboolean true if the enabler is operational for an event, false otherwise
Compliancemandatory This method must be implemented.
MethodgetEventId
Description

Gets the event Id.

Returnosid.id.Id the event Id
ErrorsILLEGAL_STATE isOperationalDuringEvent() is false
Compliancemandatory This method must be implemented.
MethodgetEvent
Description

Gets the event.

Returnosid.calendaring.Event the event
ErrorsILLEGAL_STATE isOperationalDuringEvent() is false
OPERATION_FAILED unable to complete request
Compliancemandatory This method must be implemented.
MethodisOperationalDuringCyclicEvent
Description

Tests if the operational status of the enabler is governed by a CyclicEvent.

Returnboolean true if the enabler is governed by a cyclic event, false otherwise
Compliancemandatory This method must be implemented.
MethodgetCyclicEventId
Description

Gets the cyclic event Id.

Returnosid.id.Id the cyclic event Id
ErrorsILLEGAL_STATE isOperationalDuringCyclicEvent() is false
Compliancemandatory This method must be implemented.
MethodgetCyclicEvent
Description

Gets the cyclic event.

Returnosid.calendaring.cycle.CyclicEvent the cyclic event
ErrorsILLEGAL_STATE isOperationalDuringCyclicEvent() is false
OPERATION_FAILED unable to complete request
Compliancemandatory This method must be implemented.
MethodisOperationalDuringTimePeriod
Description

Tests if this enabler is applied to a TimePeriod. A TimePeriod is effectively bounded by its effective dates which determine whether or not this enabler is active. For example, a rule may be active between June 1 and June 30 but applied to financial transactions pertaining to 2015Q4.

Returnboolean true if the enabler applied to a time period, false otherwise
Compliancemandatory This method must be implemented.
MethodgetTimePeriodId
Description

Gets the time period Id.

Returnosid.id.Id the time period Id
ErrorsILLEGAL_STATE isOperationalDuringTimePeriod() is false
Compliancemandatory This method must be implemented.
MethodgetTimePeriod
Description

Gets the time period.

Returnosid.calendaring.TimePeriod the time period
ErrorsILLEGAL_STATE isOperationalDuringTimePeriod() is false
OPERATION_FAILED unable to complete request
Compliancemandatory This method must be implemented.
MethodisOperationalDuringCyclicTimePeriod
Description

Tests if this enabler is applied to a recurring CyclicTimePeriod. If a cyclic time period exists, it is effectively bounded by the effective dates of this enabler that determine whether or not this enabler is active.

Returnboolean true if the enabler is appleid to a cycic time period, false otherwise
Compliancemandatory This method must be implemented.
MethodgetCyclicTimePeriodId
Description

Gets the cyclic time period Id.

Returnosid.id.Id the cyclic time period Id
ErrorsILLEGAL_STATE isOperationalDuringCyclicTimePeriod() is false
Compliancemandatory This method must be implemented.
MethodgetCyclicTimePeriod
Description

Gets the cyclic time period.

Returnosid.calendaring.cycle.CyclicTimePeriod the cyclic time period
ErrorsILLEGAL_STATE isOperationalDuringCyclicTimePeriod() is false
OPERATION_FAILED unable to complete request
Compliancemandatory This method must be implemented.