Interface OsidEnabler

All Superinterfaces:
Browsable, Extensible, Identifiable, Operable, OsidObject, OsidRule, Temporal
All Known Subinterfaces:
ActionEnabler, AuctionConstrainerEnabler, AuctionProcessorEnabler, AuditConstrainerEnabler, AuditEnabler, AuditProcessorEnabler, AuthorizationEnabler, AvailabilityEnabler, BallotConstrainerEnabler, BidEnabler, BrokerConstrainerEnabler, BrokerEnabler, BrokerProcessorEnabler, CanonicalUnitEnabler, CanonicalUnitProcessorEnabler, CatalogEnabler, CommissionEnabler, CommitmentEnabler, CompositionEnabler, ContactEnabler, DemographicEnabler, DeviceEnabler, DispatchConstrainerEnabler, DispatchEnabler, DispatchProcessorEnabler, EdgeEnabler, HoldEnabler, InputEnabler, InquiryEnabler, Instruction, IssueConstrainerEnabler, IssueEnabler, IssueProcessorEnabler, JobConstrainerEnabler, JobProcessorEnabler, ObstacleEnabler, OfferingConstrainerEnabler, OffsetEventEnabler, OsidEffectuator, OsidOperator, OsidRuleApplicator, ParameterProcessorEnabler, PoolConstrainerEnabler, PoolEnabler, PoolProcessorEnabler, PriceEnabler, ProcessConstrainerEnabler, ProcessEnabler, ProcessProcessorEnabler, ProfileEntryEnabler, ProvisionableEnabler, ProvisionEnabler, QueueConstrainerEnabler, QueueConstrainerEnabler, QueueEnabler, QueueEnabler, QueueProcessorEnabler, QueueProcessorEnabler, RaceConstrainerEnabler, RaceProcessorEnabler, RecurringEventEnabler, RelationshipEnabler, RelevancyEnabler, Requisite, SequenceRuleEnabler, SignalEnabler, SpeedZoneEnabler, StepConstrainerEnabler, StepEnabler, StepProcessorEnabler, SubscriptionEnabler, SupersedingEventEnabler, TriggerEnabler, ValueEnabler, VoteEnabler

public interface OsidEnabler extends OsidRule, Temporal

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.
  • Method Details

    • isRequirement

      boolean isRequirement()
      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.
      Returns:
      true if this enabler is a requirement, false otherwise
      Compliance:
      mandatory - This method must be implemented.
    • isOperationalOnSchedule

      boolean isOperationalOnSchedule()
      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.
      Returns:
      true if the enabler is operational on a schedule, false otherwise
      Compliance:
      mandatory - This method must be implemented.
    • getScheduleId

      Id getScheduleId()
      Gets the schedule Id .
      Returns:
      the schedule Id
      Throws:
      IllegalStateException - isOperationalOnSchedule() is false
      Compliance:
      mandatory - This method must be implemented.
    • getSchedule

      Schedule getSchedule() throws OperationFailedException
      Gets the schedule.
      Returns:
      the schedule
      Throws:
      IllegalStateException - isOperationalOnSchedule() is false
      OperationFailedException - unable to complete request
      Compliance:
      mandatory - This method must be implemented.
    • isOperationalDuringEvent

      boolean isOperationalDuringEvent()
      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.
      Returns:
      true if the enabler is operational for an event, false otherwise
      Compliance:
      mandatory - This method must be implemented.
    • getEventId

      Id getEventId()
      Gets the event Id .
      Returns:
      the event Id
      Throws:
      IllegalStateException - isOperationalDuringEvent() is false
      Compliance:
      mandatory - This method must be implemented.
    • getEvent

      Event getEvent() throws OperationFailedException
      Gets the event.
      Returns:
      the event
      Throws:
      IllegalStateException - isOperationalDuringEvent() is false
      OperationFailedException - unable to complete request
      Compliance:
      mandatory - This method must be implemented.
    • isOperationalDuringCyclicEvent

      boolean isOperationalDuringCyclicEvent()
      Tests if the operational status of the enabler is governed by a CyclicEvent .
      Returns:
      true if the enabler is governed by a cyclic event, false otherwise
      Compliance:
      mandatory - This method must be implemented.
    • getCyclicEventId

      Id getCyclicEventId()
      Gets the cyclic event Id .
      Returns:
      the cyclic event Id
      Throws:
      IllegalStateException - isOperationalDuringCyclicEvent() is false
      Compliance:
      mandatory - This method must be implemented.
    • getCyclicEvent

      CyclicEvent getCyclicEvent() throws OperationFailedException
      Gets the cyclic event.
      Returns:
      the cyclic event
      Throws:
      IllegalStateException - isOperationalDuringCyclicEvent() is false
      OperationFailedException - unable to complete request
      Compliance:
      mandatory - This method must be implemented.
    • isOperationalDuringTimePeriod

      boolean isOperationalDuringTimePeriod()
      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.
      Returns:
      true if the enabler applied to a time period, false otherwise
      Compliance:
      mandatory - This method must be implemented.
    • getTimePeriodId

      Id getTimePeriodId()
      Gets the time period Id .
      Returns:
      the time period Id
      Throws:
      IllegalStateException - isOperationalDuringTimePeriod() is false
      Compliance:
      mandatory - This method must be implemented.
    • getTimePeriod

      TimePeriod getTimePeriod() throws OperationFailedException
      Gets the time period.
      Returns:
      the time period
      Throws:
      IllegalStateException - isOperationalDuringTimePeriod() is false
      OperationFailedException - unable to complete request
      Compliance:
      mandatory - This method must be implemented.
    • isOperationalDuringCyclicTimePeriod

      boolean isOperationalDuringCyclicTimePeriod()
      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.
      Returns:
      true if the enabler is appleid to a cycic time period, false otherwise
      Compliance:
      mandatory - This method must be implemented.
    • getCyclicTimePeriodId

      Id getCyclicTimePeriodId()
      Gets the cyclic time period Id .
      Returns:
      the cyclic time period Id
      Throws:
      IllegalStateException - isOperationalDuringCyclicTimePeriod() is false
      Compliance:
      mandatory - This method must be implemented.
    • getCyclicTimePeriod

      CyclicTimePeriod getCyclicTimePeriod() throws OperationFailedException
      Gets the cyclic time period.
      Returns:
      the cyclic time period
      Throws:
      IllegalStateException - isOperationalDuringCyclicTimePeriod() is false
      OperationFailedException - unable to complete request
      Compliance:
      mandatory - This method must be implemented.