Class


Overview

A class is a classifier with structural features (i.e. attributes). Instances of classes are always objects with slots for the attributes of the class. A class is instantiated using the 'new/0' and 'new/1' operations (inherited from Classifier). The former takes no initialization arguments whereas the latter takes a sequence of initialization arguments. The preferred way of instantiating a class is by applying it as an operator to the initialization arguments, as in C() or C(1,2,3). This instantiates the class and calls 'init/1' on the resulting instance. Typically classes will redefine 'init/1' to initialize new instances on a class-by-class basis. Typically you will create a class using the @Class ... en-d notation.



Parents Classifier ,NameSpace ,IndexedContainer ,NamedElement ,DocumentedElement ,Container ,Contained ,Object ,Element


Constructors



Attributes
attributesSet(Attribute)No Documentation Specified
constructorsSeq(Constructor)No Documentation Specified
isAbstractBooleanNo Documentation Specified
From Classifier: grammar, parents, operations, constraints, default, isFinal. From NameSpace: bindings, imports. From IndexedContainer: contents. From NamedElement: name. From DocumentedElement: documentation. From Contained: owner.



Operations
VMNew():ElementNo Documentation Specified
add(n:Element):Classifier Exte-nd the behaviour for 'add' inherited from Classifier by taking attributes and constructors into account.
addAttribute(a:Attribute):Classifier Adds an attribute to a class and sets the owner of the attribute to be the class. Use Class::add in preference to this since that will also add the attribute to the contents table of the class.
addConstructor(c:Constructor):Element Add a constructor to a class. Use Class::add in preference to this.
addOperation(o:Element):Classifier Obsolete.
allAttributes():Set(Attribute) Get all the attributes that are defined and inherited by the class. Refer to the 'attributes' attribute of a class to get the locally defined attributes of a class.
allConstructors():Seq(Constructor) Calculate a sequence of constructors in most specific to least specific order.
defaultParents():Set(Classifier) When a class is created its parents may not be specified as part of the definition. The meta-class that is instantiated can specify the default super-classes of the new class using this operation. It is automatically called when the new class is initialised. It is a useful way of stating that all classes of a given type must inherit from a collection of super-classes. The default is Object.
deleteRecursive():ElementNo Documentation Specified
dependencies():Set(Element)No Documentation Specified
deployEcore(out:Element,package:Package,path:String):ElementNo Documentation Specified
deployJava(deployDir:String,package:Package,pname:String):ElementNo Documentation Specified
deployJavaHook(out:OutputChannel,package:Package,pname:String):ElementNo Documentation Specified
deployJavaImplementsHook(out:OutputChannel,package:Package,pname:String):ElementNo Documentation Specified
deployJavaSerializer(out:OutputChannel,package:Package):ElementNo Documentation Specified
deployXOCL(dir:String):ElementNo Documentation Specified
eCoreParents(path:String):StringNo Documentation Specified
eCoreRef(path:String):StringNo Documentation Specified
getAttribute(name:String):Attribute Get an attribute using its name. Be aware that atttibutes, like all instances of NamedElement use symbols for names. The name argument supplied to 'getAttribute' can be a string or a symbol.
getConstructor(arity:Integer):Constructor Return the most specific constructor with the given arity or null if no constructor exists.
getInstanceSlot(object:Element,name:Element):Element Part of the MOP. Redefine in sub-classes to implement a specific slot access protocol.
hasAttribute(name:String):BooleanNo Documentation Specified
hasInstanceSlot(object:Element,name:Element):Element Part of the MOP. Redefine in sub-classes to implement a specific slot existence protocol.
init():Element Initialise a class by initialising the attributes and then initialising as a classifier.
javaAttributes(package:Package):ElementNo Documentation Specified
lift():PerformableNo Documentation Specified
matchXMLComplexAttributes(attributes:Seq(Attribute)):ElementNo Documentation Specified
new():Object Create a new instance of a class. Each attribute becomes a slot in the new instance and the values of the slots are the default values of the corresponding attributes. Once the new object has been created, it is sent an 'init/0' message. Therefore, objects are initialised on a type-by-type basis. Note that there are two versions of 'new': this one 'new/0' that takes no arguments and uses 'init/0' to initialise the object; 'new/1' that takes initialisation arguments. In general, avoid using 'new' to instantiate classes and apply the class to initialisation arguments instead.
populate(sig:Signature):ElementNo Documentation Specified
remove(n:NamedElement):Classifier Exte-nd the behaviour inherited from Classifier by taking attributes into account. The argument is a named element to be removed from the receiver.
removeAttribute(a:Attribute):Classifier Remove an attribute supplied as an argument. Use 'remove/1' in preference to this operation.
removeConstructor(c:Constructor):ClassifierNo Documentation Specified
repopulate(namedElement:NamedElement):BooleanNo Documentation Specified
setInstanceSlot(object:Element,name:Element,value:Element):Element Part of the MOP. Redefine in sub-classes to implement a specific slot update protocol.
toHTMLDoc(fout:OutputChannel):ElementNo Documentation Specified
toHTMLDoc(fout:OutputChannel,showOpBody:Boolean):ElementNo Documentation Specified
toXMLClause():ElementNo Documentation Specified
writeXMLFactoryMethod(out:OutputChannel):ElementNo Documentation Specified
writeXMLFactoryMethodArgs(out:OutputChannel):ElementNo Documentation Specified
writeXMLFactoryMethodBody(out:OutputChannel):ElementNo Documentation Specified
writeXMLFactoryMethodBodyUpdateCollection(out:OutputChannel,attribute:Attribute):ElementNo Documentation Specified
writeXMLFactoryMethodBodyUpdateDataTypeSlot(out:OutputChannel,attribute:Attribute):ElementNo Documentation Specified
writeXMLFactoryMethodBodyUpdatePossibleRef(out:OutputChannel,attribute:Attribute):ElementNo Documentation Specified
writeXMLFactoryMethodBodyUpdates(out:OutputChannel):ElementNo Documentation Specified
From Classifier: javaTypeName, grammar, addGrammar, add, target, shadowOperation, sendInstance, repopulate, removeParent, removeOperation, getOperation, classify, checkParents, availableParents, allParents, allOperations, allConstraints, addParent, addOperation, hasOperation, add, addConstraint, default, defaultParents, dependencies, getConstraint, getOperation, inheritsFrom, initialized, init, initConstraints, initOperations, initParents, invoke, mapType, new, new, remove, removeConstraint. From NameSpace: writeEcore, lift, allHTMLEntries, allHTMLPackages, toHTML, toHTMLDoc, resolveNameClash, remove, putElement, newName, names, nameChanged, initBindings, init, init, getInstantiableClasses, getContents, define, getElement, hasElement, add, addBinding, hasBinding, removeBinding, redefine. From IndexedContainer: removeContentDaemon, indices, initContents, index, init, contents, contentDaemons, addContentDaemon, add, add, remove. From NamedElement: href, toString, setName, repopulate, pathSeq, path, name, getNamedElement. From DocumentedElement: setDoc, doc, ensureDoc. From Container: untraceAll, traceAll, removeContentDaemon, remove, initContents, init, includes, deleteRecursive, contentsThat, contentsOf, contents, contentDaemons, checkConstraints, checkConstraints, allContentsThat, allContentsOf, allContents, addContentDaemon, add. From Contained: owner, deleteRecursive, allOwners, addTo, setOwner, removeFromOwner. From Object: slotMissing, slotMissing, setProperty, setHotLoad, setDaemonsActive, setDaemons, set, renameSlot, removeStructuralFeature, removeDaemonsWithTarget, removeDaemonsWithId, removeDaemonNamed, removeDaemon, machineInit, initSlots, init, hotLoaded, hotLoad, hasSlot, hasProperty, getProperty, get, hasStructuralFeature, getStructuralFeatureNames, hasDaemonWithTarget, hasDaemonWithIdAndTarget, hasDaemonWithId, hasDaemonNamed, fire, destroyDaemon, daemonWithIdAndTarget, daemonWithId, daemonNamed, daemonsActive, daemons, allDaemonsWithTarget, allDaemonsWithId, compositeValues, allCompositeValuesAndSelf, allCompositeValues, addStructuralFeature, addPersistentDaemon, addMultiDaemon, addDaemon. From Element: pprint, pprint, pprint, writeXMLFile, writeXMLFile, writeXML, lift, toSnapshot, toSnapshot, allHTMLEntries, allHTMLPackages, toHTML, writeHTML, writeHTML, writeHTMLAllEntries, writeHTMLAllPackages, writeHTMLIndex, writeHTMLOverview, yield, toString, systemId, setOf, send, save2, save, removeDaemon, removeDaemon, println, print, oclIsKindOf, oclIsTypeOf, noOperationFound, isTypeOf, isReallyKindOf, init, init, of, isKindOf, addTo, checkConstraints, copy, deleteRecursive, die, edit, equals, error, ferror, hashCode.