Skip navigation links
OSU CSE Components
(v20181220)

OSU CSE Components – API Specification

This document is the API specification for the OSU CSE components.

See: Description

Packages 
Package Description
components.ampmclock
Provides the AMPMClock family interfaces and implementing classes.
components.array
Provides the Array family interfaces and implementing classes.
components.binarytree
Provides the BinaryTree family interfaces and implementing classes.
components.idnametable
Provides the IdNameTable family interfaces and implementing classes.
components.list
Provides the List family interfaces and implementing classes.
components.map
Provides the Map family interfaces and implementing classes.
components.naturalnumber
Provides the NaturalNumber family interfaces and implementing classes.
components.prioritizer
Provides the Prioritizer family interfaces and implementing classes.
components.program
Provides the Program family interfaces and implementing classes.
components.queue
Provides the Queue family interfaces and implementing classes.
components.random
Provides the Random family interfaces and implementing classes.
components.sequence
Provides the Sequence family interfaces and implementing classes.
components.set
Provides the Set family interfaces and implementing classes.
components.simplereader
Provides the SimpleReader family interfaces and implementing classes.
components.simplewriter
Provides the SimpleWriter family interfaces and implementing classes.
components.sortingmachine
Provides the SortingMachine family interfaces and implementing classes.
components.stack
Provides the Stack family interfaces and implementing classes.
components.standard
Provides the Standard interface.
components.statement
Provides the Statement family interfaces and implementing classes.
components.stopwatch
Provides the Stopwatch family interfaces and implementing classes.
components.text
Provides the Text family interfaces and implementing classes.
components.tree
Provides the Tree family interfaces and implementing classes.
components.utilities
Provides the FormatChecker, Reporter, and Tokenizer utility classes.
components.xmltree
Provides the XMLTree family interfaces and implementing classes.
This document is the API specification for the OSU CSE components. To the reader: four prerequisites for understanding the following technical rules are: knowing what null references are, knowing the distinction between mutable and immutable types, knowing what aliased variables are, and knowing what a distinguished argument (i.e., a receiver object) is; until you know, please ignore what follows. Some package-wide conventions stated here below establish some additional preconditions for all methods beyond those stated explicitly in the method contracts. First, no argument passed to a parameter shall have the value null. Second, no two mutable arguments shall be the same reference. That is to say, if a and b are any two mutable arguments to the same method, even if one of them is the distinguished argument (i.e., the receiver object), a != b. Additionally, unless stated otherwise for a particular component, there are requirements on client behavior with respect to aliases that are advertised in the contracts. In the foregoing, let rcv be a variable whose value is a reference to the receiver object upon which the method bar that advertises the alias has been called. Let ali be a variable now holding that advertised alias. The requirements stated below reflect the idea that the object referenced by rcv owns the object referenced by ali, which is, for a short time, borrowing that object. Consider the abstract value of the object referenced by ali immediately after calling method bar on rcv. This value is this object's restoration value. Immediately after calling bar on rcv, the client has the privilege of passing ali to methods as an argument (but only if the called method does not advertise aliasing of the argument and does not also have rcv as an argument) only until the next occurrence of rcv being passed as an argument to some method, at which time the object referred to by ali must have been restored to its restoration value. Furthermore, any subsequent use by any client code that would dereference or otherwise follow the alias is forbidden.
Skip navigation links
OSU CSE Components
(v20181220)