**UNFINISHED**
Test.
The list is updated using addPublicMethod.
The 2-tuples are the name of the attribute and its type. Most type atoms are ignored, but some must be specially handled (i.e. object references, which must be mediated by the Storage object).
A minimal example:
exports: [
storageRef#objectRef
serverRef#objectRef
languageStringsObjectRef#objectRef hasProperName#bool
name#string
]
A more complicated example, with multiple inheritance:
exports: {Append
{Record.toListInd
{Adjoin
{List.toRecord exports Location.exports}
{List.toRecord exports Mobile.exports}
}
}
% Our local exports
[ language#atom outputPort#notPersistent ]
}
A minimal example:
featExports: [ ozName#name capabilityDict#dict ]
A minimal example:
methodList: [
init start stop ozName className toRecord fromRecord revoke
hasProperName getName setName deLocalize getVerbs addVerb
]
A more complicated example, with multiple inheritance:
methodList: {Append
{Merge
{Sort Location.methodList Value.'>'}
{Sort Mobile.methodList Value.'>'}
Value.'>'
}
% Our local methods.
[
tell setLanguage getLanguage sayVerb setStorage
reloadVerb languagesVerb languageVerb helpVerb
]
}
className: 'MozBase'