Jive reference manual
|
Provides a single superclass for many classes in jem. More...
#include <jem/base/Object.h>
Inherits jem::Collectable.
Inherited by jem::Boolean, jem::Character, jem::gl::Attributes, jem::gl::ColorMap, jem::gl::Controller, jem::gl::ErrorHandler, jem::gl::EventHandler, jem::gl::FrameGrabber, jem::gl::GfxError, jem::gl::GLSetup, jem::gl::GraphViewer, jem::gl::MarkerStyle, jem::gl::Menu, jem::gl::Orb, jem::gl::OSContext, jem::gl::Palette, jem::gl::Transformer, jem::gl::VertexSet, jem::gl::Viewer, jem::hdf5::H5File, jem::hdf5::H5Object, jem::io::DirListing, jem::io::FileStream, jem::io::InputStream, jem::io::Logger, jem::io::OutputStream, jem::io::Pipe, jem::io::Reader, jem::io::TermReader, jem::io::Writer, jem::mp::Context, jem::mp::Driver, jem::mp::DriverFactory, jem::mp::Request, jem::mp::RequestList, jem::mp::SyncTimer, jem::mp::Task, jem::mt::WorkPool, jem::mt::WorkPool::Job, jem::mt::WorkPool::Task, jem::NamedObject, jem::Number, jem::numeric::Function, jem::Process, jem::StringObject, jem::Thread, jem::util::Calendar, jem::util::Enumerator, jem::util::ObjectCollection, jem::util::ObjectConverter, jem::util::ObjectPair, jem::util::Tokenizer, jem::xml::DOMElement, jem::xml::ParseLog, jem::xml::Parser, jem::xml::Tokenizer, jive::algebra::AbstractMatrix, jive::algebra::ConDistiller, jive::algebra::VectorSpace, jive::app::CmdCompleter, jive::app::GroupConverter, jive::app::ProgramArgs, jive::fem::Boundary, jive::fem::BoundaryManager, jive::fem::Element, jive::fem::FEIterator, jive::fem::InternalBoundary, jive::fem::MeshBlock, jive::fem::MeshCutter, jive::geom::BoxManager, jive::geom::MaskMatrix, jive::geom::Shape, jive::gl::ColorField, jive::gl::GfxMesh, jive::gl::GfxMesher, jive::gl::GfxShape, jive::gl::MarkerStyleTable, jive::gl::PaletteTable, jive::gl::ShapeMapper, jive::gl::VectorField, jive::graph::Partition, jive::graph::PartitionControl, jive::mbody::SurfaceUpdater, jive::mesh::StripMesher, jive::mp::DataExchanger, jive::mp::ItemMask, jive::mp::TableExchanger, jive::mp::VectorExchanger, jive::solver::Solver, jive::util::Constraints, jive::util::DofSpace, jive::util::GroupConverter, jive::util::ItemGroup, jive::util::ItemMap, jive::util::ItemSet, jive::util::ParserScope, and jive::util::VectorManager.
Public Member Functions | |
virtual Class * | getClass () const |
Returns the Class instance representing the runtime class of this object. More... | |
virtual String | toString () const |
Returns a short textual description of this object. More... | |
virtual long | hashValue () const |
Returns a hash value for this object. More... | |
virtual bool | equals (const Ref< Object > &obj) const |
Tests whether two objects are equal. More... | |
Ref< Object > | clone () const |
Returns a copy of this object. More... | |
Static Public Member Functions | |
static Class * | getType () |
Returns the Class instance representing the Object class. More... | |
Additional Inherited Members | |
![]() | |
Collectable () | |
Creates an empty Collectable . More... | |
~Collectable () | |
Frees resources. More... | |
Many classes in jem are directly or indirectly derived from the class Object
. It can therefore be used to implement heterogeneous data structures and generic algorithms. For instance, a list containing Object
instances can be used to store instances of all classes derived from the Object
class.
Because the Object
class is not the superclass of all classes, Jem provides two non-member functions that can be used to convert non-Object
instances to Object
instances and the other way around. These two functions, named toObject()
and toValue()
, mimick the boxing/unboxing mechanism provided by the C# programming language.
The Object
class in jem is comparable with the Object
class in Java.
Object
is derived from Collectable
, all Object
instances are subjected to automatic garbage collection. This is also true for all classes derived from Object
.
|
static |
Returns a pointer to the Class
instance representing the Object
class. This pointer is valid during the entire lifetime of the program. The getType
method should be overloaded by all classes that are represented by a different Class
object.
Class
, ClassTemplate
.
|
virtual |
Returns a pointer to the Class
instance representing the runtime class of this object. If T
denotes the runtime class of this object, then this function is equivalent with T::getType()
. The pointer is valid during the entire lifetime of the program.
Class
instance representing the runtime class of this object. Reimplemented in jive::geom::Shape, jive::geom::InternalShape, jive::algebra::SparseMatrix, jive::geom::BoundaryShape, jive::algebra::AbstractMatrix, jive::solver::Solver, jem::util::HashDictionary, jem::util::Enumerator, jem::util::Dictionary, jem::util::ObjectCollection, and jem::util::DictionaryEnumerator.
|
virtual |
Returns a short textual description of this object. The toString
method of the class Object
returns:
getClass()->getName() + "@" + String( hashValue() )
String
representing this object. Reimplemented in jive::util::DofSpace, jive::util::ItemSet, jem::util::Calendar, jive::util::Constraints, jem::io::StringWriter, jive::mp::VectorExchanger, jem::numeric::UserFunc, jem::Float, jem::Integer, jive::mp::DataExchanger, jem::Character, jem::Boolean, jive::mp::TableExchanger, jem::StringObject, jem::numeric::ConstantFunc, jem::gl::OrbMarker, jem::gl::PointMarker, jem::gl::NumberMarker, jem::gl::SymbolMarker, jem::gl::TeeMarker, jive::util::Runtime, and jem::NamedObject.
|
virtual |
Returns a hash value for this object. This function should return the same hash value when it is invoked more than once on the same object, provided that the object is not modified. If two object are equal according to the equals
method, then those objects should return the same hash value. Note that two objects which are not equal may also return the same hash value.
The hashValue
implementation of the Object
class returns a hash value for the memory address of the object.
Reimplemented in jem::util::Calendar, jem::Float, jem::Integer, jem::Character, jem::Boolean, jem::StringObject, and jem::util::ObjectPair.
Tests whether this Object
is equal to the Object
obj. The equals
method should be:
x
, x->equals(x)
should return true
.x
and y
, x->equals(y)
should return the same value as y->equals(x)
.x
, y
, and z
, x->equals(y)
returns true
and y->equals(z)
returns true
, then x->equals(z)
should return true
.x
and y
, multiple invocations of x->equals(y)
should return the same value as long as the objects are not modified.In addition, x->equals(NIL)
should return false
for all objects x
.
The default implementation of equals
returns true
if and only if this object and the argument obj are located at the same memory address. That is, the default implementation returns (this == obj)
.
obj | - the object this object should be compared to, or NIL . |
true
is this object equals the object obj, and false
otherwise. Reimplemented in jem::util::Calendar, jem::Float, jem::Integer, jem::Character, jem::Boolean, jem::StringObject, and jem::util::ObjectPair.
If this object implements the Clonable
interface, this function calls the clone
method corresponding with the runtime class of this object. Otherwise, an exception is thrown.
IllegalOperationException | - if this object does not implement the Clonable interface. |