Interface OsidObject
- All Superinterfaces:
Browsable, Extensible, Identifiable
- All Known Subinterfaces:
Academy, Account, Action, ActionEnabler, ActionGroup, Activity, Activity, Activity, ActivityRegistration, ActivityUnit, Address, AddressBook, Agency, Agenda, Agent, Answer, Antimatroid, Appointment, Assessment, AssessmentEntry, AssessmentOffered, AssessmentPart, AssessmentRequirement, AssessmentSection, AssessmentTaken, Asset, AssetContent, Auction, AuctionConstrainer, AuctionConstrainerEnabler, AuctionHouse, AuctionProcessor, AuctionProcessorEnabler, Audit, AuditConstrainer, AuditConstrainerEnabler, AuditEnabler, AuditProcessor, AuditProcessorEnabler, Authentication, Authorization, AuthorizationEnabler, Availability, AvailabilityEnabler, Award, AwardEntry, AwardRequirement, Ballot, BallotConstrainer, BallotConstrainerEnabler, Bank, Bid, BidEnabler, Billing, Bin, Block, Blog, Book, Branch, Broker, BrokerConstrainer, BrokerConstrainerEnabler, BrokerEnabler, BrokerProcessor, BrokerProcessorEnabler, Budget, BudgetEntry, Building, Business, Business, Calendar, Campus, Candidate, CanonicalUnit, CanonicalUnitEnabler, CanonicalUnitProcessor, CanonicalUnitProcessorEnabler, Catalog, CatalogEnabler, Catalogue, Category, Chain, Challenge, Check, Checklist, Comment, Commission, CommissionEnabler, Commitment, CommitmentEnabler, Communique, Competency, Composition, CompositionEnabler, Conferral, Configuration, Contact, ContactEnabler, Controller, Convocation, Cookbook, Course, CourseCatalog, CourseEntry, CourseOffering, CourseRegistration, CourseRequirement, Credential, CredentialEntry, CredentialRequirement, Credit, Customer, CyclicEvent, CyclicTimePeriod, Deed, Demographic, DemographicEnabler, Depot, Device, DeviceEnabler, Dictionary, Direction, Directory, DirectoryEntry, Dispatch, DispatchConstrainer, DispatchConstrainerEnabler, DispatchEnabler, DispatchProcessor, DispatchProcessorEnabler, Distributor, Docet, Edge, EdgeEnabler, Effort, Endpoint, Engine, Engine, Enrollment, Entry, Entry, Entry, Entry, Event, Family, File, FiscalPeriod, Floor, Forum, Foundry, FrontOffice, Function, Grade, Gradebook, GradebookColumn, GradebookColumnCalculation, GradebookColumnSummary, GradeEntry, GradeSystem, GradeSystemTransform, Graph, Hierarchy, Hold, HoldEnabler, Idiom, Ingredient, Input, InputEnabler, Inquest, Inquiry, InquiryEnabler, Installation, InstallationContent, Instruction, Intersection, Inventory, Issue, Issue, IssueConstrainer, IssueConstrainerEnabler, IssueEnabler, IssueProcessor, IssueProcessorEnabler, Item, Item, Item, Item, Job, JobConstrainer, JobConstrainerEnabler, JobProcessor, JobProcessorEnabler, Journal, JournalEntry, Key, LearningObjectiveRequirement, Lease, Lesson, Location, Log, LogEntry, LogEntry, Mailbox, Map, Message, Meter, Model, Module, Node, Objective, ObjectiveBank, Obstacle, ObstacleEnabler, Offering, OfferingConstrainer, OfferingConstrainerEnabler, Office, OffsetEvent, OffsetEventEnabler, Ontology, Order, Organization, OsidCatalog, OsidCompendium, OsidConstrainer, OsidEffectuator, OsidEnabler, OsidGovernator, OsidOperator, OsidProcessor, OsidRelationship, OsidRequest, OsidRule, OsidRuleApplicator, Oubliette, Package, Parameter, Parameter, ParameterProcessor, ParameterProcessorEnabler, Participant, Path, Path, Payer, Payment, Period, Person, Plan, Polls, Pool, PoolConstrainer, PoolConstrainerEnabler, PoolEnabler, PoolProcessor, PoolProcessorEnabler, Position, Post, Post, PostEntry, Press, Price, PriceEnabler, PriceSchedule, Procedure, Process, Process, ProcessConstrainer, ProcessConstrainerEnabler, ProcessEnabler, ProcessProcessor, ProcessProcessorEnabler, Product, Proficiency, Profile, ProfileEntry, ProfileEntryEnabler, ProfileItem, Program, ProgramEntry, ProgramOffering, ProgramRequirement, Project, Provision, Provisionable, ProvisionableEnabler, ProvisionEnabler, ProvisionReturn, Publisher, Qualifier, Question, Queue, Queue, QueueConstrainer, QueueConstrainer, QueueConstrainerEnabler, QueueConstrainerEnabler, QueueEnabler, QueueEnabler, QueueProcessor, QueueProcessor, QueueProcessorEnabler, QueueProcessorEnabler, Race, RaceConstrainer, RaceConstrainerEnabler, RaceProcessor, RaceProcessorEnabler, RaceResult, Realm, Receipt, Recipe, RecurringEvent, RecurringEventEnabler, Registration, RegistrationRequest, RegistrationRequestItem, RegistrationTarget, Relationship, RelationshipEnabler, Relevancy, RelevancyEnabler, Renovation, Reply, Repository, Request, RequestTransaction, Requisite, Resource, ResourceLocation, ResourceRelationship, ResourceVelocity, Response, Response, ResponseOption, Result, Room, Route, RouteProgress, RouteSegment, Rule, Scene, Schedule, ScheduleSlot, SequenceRule, SequenceRuleEnabler, Setting, Shipment, Signal, SignalEnabler, Site, SpeedZone, SpeedZoneEnabler, State, Statistic, Step, StepConstrainer, StepConstrainerEnabler, StepEnabler, StepProcessor, StepProcessorEnabler, Stock, Store, Subject, Subscription, SubscriptionEnabler, Summary, Summary, SupersedingEvent, SupersedingEventEnabler, Syllabus, System, Term, Text, TimePeriod, Todo, TodoProducer, Trigger, TriggerEnabler, Trust, Utility, Value, ValueEnabler, Vault, Vote, VoteEnabler, VoterAllocation, Warehouse, Work, Work, WorkflowEvent
OsidObject is the top level interface for all OSID Objects. An
OsidObject is an object identified by an OSID Id and may
implement optional interfaces. OsidObjects also contain a display
name and a description. These fields are required but may be used for a
variety of purposes ranging from a primary name and description of the
OsidObject to a more user friendly display of various attributes.
Creation of OsidObjects and the modification of their data is
managed through the associated OsidSession . The
OsidManager is used to create the appropriate OsidSession for
OsidObject creation, updates and deletes.
All OsidObjects are identified by an immutable Id . An
Id is assigned to an object upon creation of the object and cannot
be changed once assigned.
An OsidObject may support one or more supplementary records
which are expressed in the form of interfaces. Each record interface is
identified by a Type. A record interface may extend another record
interface where support of the parent record interface is implied. In this
case of interface inheritance, support of the parent record type may be
implied through hasRecordType() and not explicit in
getRecordTypes() .
For example, if recordB extends recordA, typeB is a child of typeA. If a record implements typeB, than it also implements typeA. An application that only knows about typeA retrieves recordA. An application that knows about typeB, retrieves recordB which is the union of methods specified in typeA and typeB. If an application requests typeA, it may not attempt to access methods defined in typeB as they may not exist until explicitly requested. The mechanics of this polymorphism is defined by the language binder. One mechanism might be the use of casting.
In addition to the OsidRecord Types ,
OsidObjects also have a genus Type . A genus Type
indicates a classification or kind of the object where an "is a"
relationship exists. The purpose of of the genus Type is to avoid
the creation of unnecessary record types that may needlessly complicate an
interface hierarchy or introduce interoperability issues. For example, an
OsidObject may have a OsidRecord Type of
Publication that defines methods pertinent to publications, such as an
ISBN number. An OSID Provider may wish to distinguish between books and
journals without having the need of new record interfaces. In this case,
the genus Type may be one of Book or Journal
.While this distinction can aid a search, these genres should be treated
in such a way that do not introduce interoperability problems.
Like OsidRecord Types , the genus Types may
also exist in an implicit type hierarchy. An OsidObject always has
at least one genus Type . Genus types should not be confused with
subject tagging, which is managed in the Ontology OSID. Unlike
OsidRecord Types , an OsidObject genus Type may
be modified. However, once an OsidObject is created with a record
Type , it cannot be changed.
Methods that return values are not permitted to return null .
If a value is not set, it is indicated in the Metadata of the
update OsidObjectForm .
-
Method Summary
Modifier 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 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.
-
Method Details
-
getDisplayName
DisplayText getDisplayName()Gets the preferred display name associated with this instance of this OSID object appropriate for display to the user.- Returns:
- the display name
- Compliance:
mandatory- This method must be implemented.- Notes:
A- display name is a string used for identifying an object in human terms. A provider may wish to initialize the display name based on one or more object attributes. In some cases, the display name may not map to a specific or significant object attribute but simply be used as a preferred display name that can be modified. A provider may also wish to translate the display name into a specific locale using the Locale service. Some OSIDs define methods for more detailed naming.
-
getDescription
DisplayText getDescription()Gets the description associated with this instance of this OSID object.- Returns:
- the description
- Compliance:
mandatory- This method must be implemented.- Notes:
A- description is a string used for describing an object in human terms and may not have significance in the underlying system. A provider may wish to initialize the description based on one or more object attributes and/or treat it as an auxiliary piece of data that can be modified. A provider may also wish to translate the description into a specific locale using the Locale service.
-
getGenusType
Type getGenusType()Gets the genus type of this object.- Returns:
- the genus type of this object
- Compliance:
mandatory- This method must be implemented.
-
isOfGenusType
Tests if this object is of the given genusType. The given genus type may be supported by the object through the type hierarchy.- Parameters:
genusType- a genus type- Returns:
trueif this object is of the given genusType,falseotherwise- Throws:
NullArgumentException-genusTypeisnull- Compliance:
mandatory- This method must be implemented.
-