edu.isi.stella
Class Slot

java.lang.Object
  extended by edu.isi.stella.Stella_Object
      extended by edu.isi.stella.StandardObject
          extended by edu.isi.stella.MappableObject
              extended by edu.isi.stella.Relation
                  extended by edu.isi.stella.PolymorphicRelation
                      extended by edu.isi.stella.Slot
Direct Known Subclasses:
MethodSlot, StorageSlot, Table

public abstract class Slot
extends PolymorphicRelation


Field Summary
 Surrogate slotBaseType
           
 boolean slotExternalP
           
 boolean slotMarkedP
           
 Symbol slotName
           
 Surrogate slotOwner
           
 boolean slotPublicP
           
 boolean slotRenamedP
           
 Surrogate slotSlotref
           
 
Fields inherited from class edu.isi.stella.PolymorphicRelation
slotDirectEquivalent
 
Fields inherited from class edu.isi.stella.Relation
abstractP
 
Fields inherited from class edu.isi.stella.MappableObject
dynamicSlots
 
Constructor Summary
Slot()
           
 
Method Summary
static Stella_Object accessSlotSlotValue(Slot self, Symbol slotname, Stella_Object value, boolean setvalueP)
           
 boolean activeP()
          True if self or a superslot of self is marked active.
static void attachInverseSlotDemon(Slot slot)
           
static Slot attachSlotToOwner(Slot newslot)
           
static void checkConformanceOfSlotSignature(Slot self)
           
 Keyword closureAssumption()
           
 boolean collectionValuedP()
          True if slot values are collections.
 StandardObject computeReturnTypeSpec(StandardObject firstargtype)
           
static void computeSlotDirectEquivalent(Slot self)
           
static void computeSlotInverses(Slot self)
           
 boolean conformingSignaturesP(Slot superslot)
           
static void destroyExternalSlot(Slot self)
           
static boolean filterMethodSlotP(Slot self, AllPurposeIterator iterator)
           
static boolean filterNonAuxiliarySlotP(Slot self, AllPurposeIterator iterator)
           
static boolean filterNonExternalSlotP(Slot self, AllPurposeIterator iterator)
           
static boolean filterNonParameterSlotP(Slot self, AllPurposeIterator iterator)
           
static boolean filterPrivateSlotP(Slot self, AllPurposeIterator iterator)
           
static boolean filterPublicMethodSlotP(Slot self, AllPurposeIterator iterator)
           
static boolean filterPublicSlotP(Slot self, AllPurposeIterator iterator)
           
static boolean filterSlotP(Slot self, AllPurposeIterator iterator)
           
static void finalizeLocalSlot(Slot self)
           
 void finalizeSlotTypeComputations()
           
static Stella_Object finishWalkingArgumentListTree(Slot self, Cons tree, StandardObject firstargtype, java.lang.Object[] MV_returnarray)
           
 Stella_Object finishWalkingCallSlotTree(Cons tree, StandardObject firstargtype, java.lang.Object[] MV_returnarray)
           
 void helpFinalizeLocalSlot()
           
 void helpPrintOutline(OutputStream stream, int currentDepth, int depth, boolean namedP)
          Helper method for printOutline
 Module homeModule()
          Return the home module of self.
static boolean inlineMethodP(Slot slot)
           
static boolean localSlotP(Slot slot, Stella_Class renamed_Class)
           
static void markDirectEquivalentSlot(Slot slot)
           
 int methodArgumentCount()
           
static boolean mixinMethodP(Slot self)
           
static boolean mixinSlotP(Slot self)
           
static boolean multiValuedSlotWithDuplicatesP(Slot self)
           
 java.lang.String name()
           
static Stella_Class nativeSlotHome(Slot slot, Stella_Class renamed_Class)
           
 Surrogate owner()
           
 void prettyPrintObject(OutputStream stream)
           
 void printObject(java.io.PrintStream stream)
           
 boolean publicP()
          True if self or one it its ancestors is marked public.
static Module recordSlotHomeModule(Slot self)
           
static void registerSlotName(Slot slot)
          Register the name symbol of slot as a slot name, and initialize its symbolSlotOffset so that it can be used by lookupSlot.
 Symbol renames()
           
 List slotDirectSubs()
           
 List slotDirectSupers()
           
static boolean slotNameConflictP(Slot slot, Stella_Class renamed_Class)
           
static boolean slotValueIsBareLiteralP(Slot slot)
           
 Stella_Object systemDefaultValue()
          Return a default value expression, or if self has dynamic storage, an initial value expression.
static Stella_Object sysTreeIfNeeded(Slot slot, Stella_Object tree, StandardObject firstargtype, StandardObject returntype, java.lang.Object[] MV_returnarray)
           
static void transferExternalSlotToNewClass(Slot externalslot, Stella_Class newclass)
           
 Surrogate type()
          The type of a storage slot is its base type.
 StandardObject typeSpecifier()
          If self has a complex type return its type specifier, otherwise, return type of self.
 void unfinalizeLocalSlot()
           
static void unregisterSlotName(Slot slot)
          Unregister the name symbol of slot as a slot name, so that it can no longer be used by lookupSlot.
static boolean warnAboutSlotShadowedByAFunctionP(Slot slot)
           
static Cons yieldFixedSlotValueSetterTree(Slot slot, Stella_Object objectref, Stella_Object valuetree)
           
 
Methods inherited from class edu.isi.stella.PolymorphicRelation
accessPolymorphicRelationSlotValue
 
Methods inherited from class edu.isi.stella.Relation
accessRelationSlotValue, allSupers, arity, directSupers, primitiveP, privateP, properties, slots
 
Methods inherited from class edu.isi.stella.MappableObject
accessMappableObjectSlotValue, badP, deletedP, deletedPSetter, projectedFrom, projectsOnto
 
Methods inherited from class edu.isi.stella.StandardObject
arrayTypeSpecifierP, baseTypeToTypeSpec, cantOverwriteActiveCollectionSlot, compatibleParameterTypesP, computeAnchoredTypeSpec, computeRelativeTypeSpec, conformingTypeSpecP, copyWrappedLiteral, cppReferenceTypeP, cppReferencizeType, cppTranslateAndPointerizeTypeSpec, cppTranslateAndReferencizeTypeSpec, cppTranslateTypeSpec, dropSlotValue, extractParameterType, extractRequiredArgumentValues, getSlot, hashCode_, idlTranslateTypeSpec, inverseSlotDemon, javaLiteralP, javaNativeLiteralWrapperNames, javaSpecialSetterName, javaTranslateArrayOfTypeSpec, javaTranslateTypeSpec, javaTranslateTypeSpecForFunction, javaTranslateTypeSpecHelper, javaYieldClassObjectArrayExpression, javaYieldClassObjectExpression, javaYieldFullyQualifiedTypeName, javaYieldTranslatedClassAndMethodNames, listifyTypeSpec, lookupClTypeFromStellaType, objectEqlP, putSlotValue, readSlotValue, runConstructorDemons, runDestructorDemons, runSlotDemons, runSlotGuardDemonsP, standardObjectP, subTypeSpecOfP, twoArgumentLeastCommonSupertype, typeSpecToBaseType, typeSpecToClass, typeToWalkedNullValueTree, validateTypeSpecifier, voidP, walkTypeSpecIsNativeTypeP, writeSlotValue, yieldTypeSpecTree
 
Methods inherited from class edu.isi.stella.Stella_Object
_, accessInContext, amPm, anchoredTypeSpecifierP, andOrNotTreeP, applyCoercionMethod, atomicExpressionP, bindToSurrogateP, booleanP, bootstrapIsaP, bquotify, cast, characterP, clTranslateAtomicTree, clTranslateATree, clTranslateBooleanTest, clTranslatePlainBooleanTest, clTranslateVerbatimBodySymbols, clYieldTypedExpressionTree, coerceATree, coerceEvaluatedTree, coerceMvTree, coerceToBoolean, coerceToModule, coerceToModuleName, coerceToSymbol, coerceToXmlElement, coercibleP, collectFeatureList, collectKeyValueList, commonLispSymbolP, computeExpressionType, cons, consify, consifyListsAndIterators, consP, consTreeMatchP, convertToLiteral, copyConsTree, cppArgumentIsStreamP, cppBinaryOperatorP, cppBlockP, cppMaybeOutputStatementWithParentheses, cppOperatorP, cppOutputAtomicExpression, cppOutputLiteral, cppOutputOneActualParameter, cppOutputStatement, cppOutputTypedEntity, cppPrognifyStatement, cppPrognP, cppStatementToList, cppStreamIsStandardOutputP, cpptrans, cppTranslateAtomicTree, cppTranslateATree, cppTranslatedArrayTypeP, csValueP, dateDivider, dateTimeDivider, day, dealWithAmPm, dealWithEra, dealWithNoonMidn, decrementReferenceCount, defaultOptionHandler, defineSystem, defmodule, describe, describeObject, describeTersely, destructureMethodNameTree, deUglifyParseTree, either, eqlP, eqlToBooleanP, eqlToCharacterP, eqlToFloatP, eqlToIntegerP, eqlToStringP, equalConsTreesP, equalHashCode, equalP, era, estimatedEvaluationCost, evaluate, evaluateArgumentTree, evaluateAtomicTree, evaluateCommand, expandBquoteTree, filterModuleP, floatP, free, get, getObject, hashlist, hashMemoizedArguments, helpBquotify, helpClTranslateATree, helpCoerceATree, helpLptrans, helpTransformBooleanProceduralExpression, helpWalkATree, hour, idlOutputAtomicExpression, idlOutputLiteral, idlOutputStatement, idlTranslateAtomicTree, idlTranslateATree, illegalTreeP, implodePathname, incrementallyTranslate, incrementReferenceCount, inlineUnwrapBoolean, inlineWrapBoolean, inModule, integerP, isaP, javaBinaryOperatorP, javaBlockP, javaEndOfLineTokenP, javaHelpOutputPrintStream, javaMaybeOutputStatementWithParentheses, javaOperatorP, javaOutputLiteral, javaOutputStatement, javaPrognP, javaStreamIsStandardOutputP, javaSymbolCaseP, javaTranslateAtomicTree, javaTranslateATree, javaTranslateWithNativeWrapper, jptrans, keywordP, kvCons, legalTokenizerFromStateP, legalTokenizerStateP, legalTokenizerToStateP, literalEqlP, logLevelLE, lptrans, makeFileNameFromRelativePath, makeMemoizedValueEntry, makeMemoizedValueEntryn, matchConsTree, methodSlotP, minute, month, nameToString, nilP, noonMidn, numberWrapperToFloat, objectEqualP, objectHashCode, one, oneI, onlyIf, parametricTypeSpecifierP, parseArrayDimensionsSpec, parseTokenizerCharacterSpec, parseTokenizerStateModifiers, permanentCopy, permanentify, permanentifyForm, po, prettyPrintLiteral, primaryClass, primaryType, printOutline, printStellaCode, printStellaDefinition, printUndefinedSuperClasses, proceduralExpressionP, ptrans, publicSlots, registerRecycledItem, runOptionHandlerP, safeEqualHashCode, safeHashCode, safePrimaryType, safeYieldTypeSpecifier, searchConsTreeP, searchConsTreeWithFilterP, searchForObject, secondp, sideEffectFreeExpressionP, simplifyBquoteTree, specialp, stella_Increment, stellaClassP, stellaCollectionP, stellaNeedToCompileP, stellaNeedToTranslateP, stellaObjectP, stellify, storageSlotP, stringifyInModule, stringP, substituteConsTree, substituteOnce, surrogateP, surrogatify, sweep, symbolCaseP, symbolP, sysTree, targetLanguageType, taxonomyIsaP, timeDivider, timeMultiply, tokenizerIncludeSpecP, tokenizerToStateAlias, tokenizerToStateName, toString, traceIf, traceKeywordP, transientifyForm, transientObjectP, transientSymbolP, translateWalkedTree, treeSize, treeToTrees, trueOptionP, tryToEvaluate, typeP, typify, unmake, unregisterRecycledItem, updateInContext, valuesTreeP, variableExpressionP, verbatimStringP, verbatimTreeP, vetOptions, vrletExpressionP, walkAtomicTree, walkATree, walkCollectionTree, walkDontCallMeTree, walkedExpressionType, walkExpressionTree, walkMvExpressionTree, walkMvTree, walkStatement, walkTopLevelExpression, walkWithoutTypeTree, warnAboutUnknownSourceType, weekday, withinContext, withinModule, withinWorld, withStellaTokenizer, withSystemDefinition, withTokenizer, wrapperP, wrapWhereTest, xmlAttributeP, xmlCdataFormP, xmlCdataP, xmlDeclarationFormP, xmlDeclarationP, xmlDoctypeFormP, xmlElementFormP, xmlElementP, xmlnsAttributeP, xmlProcessingInstructionFormP, xmlProcessingInstructionP, xmlTagCase, year, yieldCondTest, yieldCondTestOrTests, yieldHardcodedCaseSymbolIdOrIds, yieldInCursorClausesForArgumentList, yieldInCursorClausesForGeneralCollection, yieldInCursorClausesForVector, yieldTypeSpecifier, zone, zoneMinute
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

slotName

public Symbol slotName

slotOwner

public Surrogate slotOwner

slotBaseType

public Surrogate slotBaseType

slotSlotref

public Surrogate slotSlotref

slotPublicP

public boolean slotPublicP

slotRenamedP

public boolean slotRenamedP

slotExternalP

public boolean slotExternalP

slotMarkedP

public boolean slotMarkedP
Constructor Detail

Slot

public Slot()
Method Detail

helpPrintOutline

public void helpPrintOutline(OutputStream stream,
                             int currentDepth,
                             int depth,
                             boolean namedP)
Helper method for printOutline

Overrides:
helpPrintOutline in class Stella_Object
Parameters:
stream -
currentDepth -
depth -
namedP -

prettyPrintObject

public void prettyPrintObject(OutputStream stream)

attachInverseSlotDemon

public static void attachInverseSlotDemon(Slot slot)

finishWalkingArgumentListTree

public static Stella_Object finishWalkingArgumentListTree(Slot self,
                                                          Cons tree,
                                                          StandardObject firstargtype,
                                                          java.lang.Object[] MV_returnarray)

finishWalkingCallSlotTree

public Stella_Object finishWalkingCallSlotTree(Cons tree,
                                               StandardObject firstargtype,
                                               java.lang.Object[] MV_returnarray)

yieldFixedSlotValueSetterTree

public static Cons yieldFixedSlotValueSetterTree(Slot slot,
                                                 Stella_Object objectref,
                                                 Stella_Object valuetree)

sysTreeIfNeeded

public static Stella_Object sysTreeIfNeeded(Slot slot,
                                            Stella_Object tree,
                                            StandardObject firstargtype,
                                            StandardObject returntype,
                                            java.lang.Object[] MV_returnarray)

recordSlotHomeModule

public static Module recordSlotHomeModule(Slot self)

slotValueIsBareLiteralP

public static boolean slotValueIsBareLiteralP(Slot slot)

markDirectEquivalentSlot

public static void markDirectEquivalentSlot(Slot slot)

slotNameConflictP

public static boolean slotNameConflictP(Slot slot,
                                        Stella_Class renamed_Class)

nativeSlotHome

public static Stella_Class nativeSlotHome(Slot slot,
                                          Stella_Class renamed_Class)

mixinMethodP

public static boolean mixinMethodP(Slot self)

mixinSlotP

public static boolean mixinSlotP(Slot self)

computeReturnTypeSpec

public StandardObject computeReturnTypeSpec(StandardObject firstargtype)

methodArgumentCount

public int methodArgumentCount()

destroyExternalSlot

public static void destroyExternalSlot(Slot self)

systemDefaultValue

public Stella_Object systemDefaultValue()
Return a default value expression, or if self has dynamic storage, an initial value expression.

Returns:
Stella_Object

activeP

public boolean activeP()
Description copied from class: PolymorphicRelation
True if self or a superslot of self is marked active.

Overrides:
activeP in class PolymorphicRelation
Returns:
boolean

publicP

public boolean publicP()
True if self or one it its ancestors is marked public.

Overrides:
publicP in class Relation
Returns:
boolean

conformingSignaturesP

public boolean conformingSignaturesP(Slot superslot)

warnAboutSlotShadowedByAFunctionP

public static boolean warnAboutSlotShadowedByAFunctionP(Slot slot)

unregisterSlotName

public static void unregisterSlotName(Slot slot)
Unregister the name symbol of slot as a slot name, so that it can no longer be used by lookupSlot.

Parameters:
slot -

registerSlotName

public static void registerSlotName(Slot slot)
Register the name symbol of slot as a slot name, and initialize its symbolSlotOffset so that it can be used by lookupSlot.

Parameters:
slot -

localSlotP

public static boolean localSlotP(Slot slot,
                                 Stella_Class renamed_Class)

unfinalizeLocalSlot

public void unfinalizeLocalSlot()

finalizeLocalSlot

public static void finalizeLocalSlot(Slot self)

helpFinalizeLocalSlot

public void helpFinalizeLocalSlot()

computeSlotInverses

public static void computeSlotInverses(Slot self)

multiValuedSlotWithDuplicatesP

public static boolean multiValuedSlotWithDuplicatesP(Slot self)

finalizeSlotTypeComputations

public void finalizeSlotTypeComputations()

checkConformanceOfSlotSignature

public static void checkConformanceOfSlotSignature(Slot self)

computeSlotDirectEquivalent

public static void computeSlotDirectEquivalent(Slot self)

attachSlotToOwner

public static Slot attachSlotToOwner(Slot newslot)

transferExternalSlotToNewClass

public static void transferExternalSlotToNewClass(Slot externalslot,
                                                  Stella_Class newclass)

inlineMethodP

public static boolean inlineMethodP(Slot slot)

filterSlotP

public static boolean filterSlotP(Slot self,
                                  AllPurposeIterator iterator)

filterNonAuxiliarySlotP

public static boolean filterNonAuxiliarySlotP(Slot self,
                                              AllPurposeIterator iterator)

filterNonParameterSlotP

public static boolean filterNonParameterSlotP(Slot self,
                                              AllPurposeIterator iterator)

filterNonExternalSlotP

public static boolean filterNonExternalSlotP(Slot self,
                                             AllPurposeIterator iterator)

filterPublicMethodSlotP

public static boolean filterPublicMethodSlotP(Slot self,
                                              AllPurposeIterator iterator)

filterMethodSlotP

public static boolean filterMethodSlotP(Slot self,
                                        AllPurposeIterator iterator)

filterPrivateSlotP

public static boolean filterPrivateSlotP(Slot self,
                                         AllPurposeIterator iterator)

filterPublicSlotP

public static boolean filterPublicSlotP(Slot self,
                                        AllPurposeIterator iterator)

printObject

public void printObject(java.io.PrintStream stream)
Overrides:
printObject in class Stella_Object

accessSlotSlotValue

public static Stella_Object accessSlotSlotValue(Slot self,
                                                Symbol slotname,
                                                Stella_Object value,
                                                boolean setvalueP)

slotDirectSubs

public List slotDirectSubs()

slotDirectSupers

public List slotDirectSupers()

closureAssumption

public Keyword closureAssumption()

collectionValuedP

public boolean collectionValuedP()
True if slot values are collections.

Returns:
boolean

renames

public Symbol renames()
Overrides:
renames in class PolymorphicRelation

homeModule

public Module homeModule()
Description copied from class: Stella_Object
Return the home module of self.

Overrides:
homeModule in class Relation
Returns:
Module

owner

public Surrogate owner()
Overrides:
owner in class PolymorphicRelation

typeSpecifier

public StandardObject typeSpecifier()
If self has a complex type return its type specifier, otherwise, return type of self.

Returns:
StandardObject

type

public Surrogate type()
The type of a storage slot is its base type.

Returns:
Surrogate

name

public java.lang.String name()
Overrides:
name in class Relation