Interface Operable

All Known Subinterfaces:
Action, ActionEnabler, ActivityUnit, Agenda, AssessmentPart, AssessmentRequirement, Auction, AuctionConstrainer, AuctionConstrainerEnabler, AuctionProcessor, AuctionProcessorEnabler, Audit, AuditConstrainer, AuditConstrainerEnabler, AuditEnabler, AuditProcessor, AuditProcessorEnabler, AuthorizationEnabler, AvailabilityEnabler, AwardRequirement, Ballot, BallotConstrainer, BallotConstrainerEnabler, BidEnabler, Branch, Broker, BrokerConstrainer, BrokerConstrainerEnabler, BrokerEnabler, BrokerProcessor, BrokerProcessorEnabler, CanonicalUnit, CanonicalUnitEnabler, CanonicalUnitProcessor, CanonicalUnitProcessorEnabler, CatalogEnabler, Check, CommissionEnabler, CommitmentEnabler, Composition, CompositionEnabler, ContactEnabler, Controller, Convocation, Course, CourseRequirement, CredentialRequirement, Demographic, DemographicEnabler, DeviceEnabler, Dispatch, DispatchConstrainer, DispatchConstrainerEnabler, DispatchEnabler, DispatchProcessor, DispatchProcessorEnabler, EdgeEnabler, Function, GradebookColumnCalculation, GradeSystemTransform, HoldEnabler, InputEnabler, Inquiry, InquiryEnabler, Instruction, Issue, IssueConstrainer, IssueConstrainerEnabler, IssueEnabler, IssueProcessor, IssueProcessorEnabler, Job, JobConstrainer, JobConstrainerEnabler, JobProcessor, JobProcessorEnabler, LearningObjectiveRequirement, Obstacle, ObstacleEnabler, OfferingConstrainer, OfferingConstrainerEnabler, OffsetEvent, OffsetEventEnabler, OsidConstrainer, OsidEffectuator, OsidEnabler, OsidGovernator, OsidOperator, OsidProcessor, OsidRule, OsidRuleApplicator, Parameter, ParameterProcessor, ParameterProcessorEnabler, Pool, PoolConstrainer, PoolConstrainerEnabler, PoolEnabler, PoolProcessor, PoolProcessorEnabler, Price, PriceEnabler, Process, ProcessConstrainer, ProcessConstrainerEnabler, ProcessEnabler, ProcessProcessor, ProcessProcessorEnabler, ProfileEntryEnabler, Program, ProgramRequirement, ProvisionableEnabler, ProvisionEnabler, Queue, Queue, QueueConstrainer, QueueConstrainer, QueueConstrainerEnabler, QueueConstrainerEnabler, QueueEnabler, QueueEnabler, QueueProcessor, QueueProcessor, QueueProcessorEnabler, QueueProcessorEnabler, Race, RaceConstrainer, RaceConstrainerEnabler, RaceProcessor, RaceProcessorEnabler, RecurringEvent, RecurringEventEnabler, RelationshipEnabler, RelevancyEnabler, Requisite, Rule, SequenceRule, SequenceRuleEnabler, Signal, SignalEnabler, SpeedZone, SpeedZoneEnabler, Step, StepConstrainer, StepConstrainerEnabler, StepEnabler, StepProcessor, StepProcessorEnabler, SubscriptionEnabler, SupersedingEvent, SupersedingEventEnabler, TodoProducer, Trigger, TriggerEnabler, Value, ValueEnabler, VoteEnabler

public interface Operable

Operable is used to indicate an OsidObject performs operations. The active status indicates if the Operable is on or off. The active status is determined from the operational status and the enabling rules.

The operational status indicates the Operable is functioning. This status is not set administratively but instead refelects suitable conditions for operation.

Operables may be administratively turned on of off through the enabled and disabled administrative overrides. If there are no related OsidOperator rules, then isEnabled() should be set to true and isDisabled() set to false for the Operable to be on and isEnabled() set to false and isDisabled() set to true for the Operable to be off . isEnabled() and isDisabled() cannot both be true .

If there are related OsidOperator rules, the active status of at least one OsidOperator results in a true value for isOperational() . This active status can be overridden by setting isDisabled() to true . If there are no active OsidOperator rules, isOperational() is false resulting in an off Operable unless isEnabled() is true .

For the active status to be completely determined by the OsidOperators , both isEnabled() and isDisabled() should be false where the isActive() status is completely driven from isOperational() .

  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    Tests if this operable is active.
    boolean
    Tests if this operable is administravely disabled.
    boolean
    Tests if this operable is administravely enabled.
    boolean
    Tests if this Operable is operational.
  • Method Details

    • isActive

      boolean isActive()
      Tests if this operable is active. isActive() is true if isOperational() is true and isDisabled() is false , or isEnabled() is true . If an Operable is also a Temporal , isEffective() must also be true .
      Returns:
      true if this operable is active, false if it is inactive
      Compliance:
      mandatory - This method must be implemented.
    • isEnabled

      boolean isEnabled()
      Tests if this operable is administravely enabled. Administratively enabling overrides any applied OsidOperator . If this method returns true then isDisabled() must return false . Applied OsidEnablers effect isOperational() . This method is an administrative override.
      Returns:
      true if this operable is enabled, false if the active status is determined by other rules
      Compliance:
      mandatory - This method must be implemented.
    • isDisabled

      boolean isDisabled()
      Tests if this operable is administravely disabled. Administratively disabling overrides any OsidOperator . If this method returns true then isEnabled() must return false .
      Returns:
      true if this operable is disabled, false if the active status is determined by other rules
      Compliance:
      mandatory - This method must be implemented.
    • isOperational

      boolean isOperational()
      Tests if this Operable is operational. This Operable is operational if any of the applied OsidOperators are true .
      Returns:
      true if this operable is operational, false otherwise
      Compliance:
      mandatory - This method must be implemented.