Package org.ek9lang.compiler.symbols
Class StreamCallSymbol
java.lang.Object
org.ek9lang.compiler.symbols.Symbol
org.ek9lang.compiler.symbols.ScopedSymbol
org.ek9lang.compiler.symbols.MethodSymbol
org.ek9lang.compiler.symbols.StreamCallSymbol
- All Implemented Interfaces:
Serializable
,IMayReturnSymbol
,IScope
,IScopedSymbol
,ISymbol
,ITokenReference
Just re-uses the bulk of method symbol. This is only used in part of the stream pipeline.
We need additional information surrounding the type that can be accepted and the type that
is produced (chained).
In some cases (like a call to head) we can accept anything in and will produce the same back out.
But a filter can only accept a certain type in - but will then also product that same type out.
A map on the other hand will only accept a certain type and will product another type
(maybe - depending on the map).
Flatten can only accept something is can iterate over and will then product whatever that type
is that is provided by the iterator.
This is the 'glue' between streaming commands and functions.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.ek9lang.compiler.symbols.IScope
IScope.ScopeType
Nested classes/interfaces inherited from interface org.ek9lang.compiler.symbols.ISymbol
ISymbol.SymbolCategory, ISymbol.SymbolGenus
-
Field Summary
Fields inherited from interface org.ek9lang.compiler.symbols.ISymbol
NOT_ASSIGNABLE
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionClone the symbol and re-parent if this symbol like a method should have a parent.protected StreamCallSymbol
boolean
int
hashCode()
boolean
boolean
boolean
boolean
boolean
void
setCapableOfConsumingAnything
(boolean capableOfConsumingAnything) void
setConsumesSymbolPromotionRequired
(boolean consumesSymbolPromotionRequired) void
setConsumesSymbolType
(ISymbol consumesSymbolType) This sets the type of symbol that stream can consume.void
setDerivesProducesTypeFromConsumesType
(boolean derivesProducesTypeFromConsumesType) void
setProducerSymbolTypeSameAsConsumerSymbolType
(boolean producerSymbolTypeSameAsConsumerSymbolType) void
setProducesSymbolType
(ISymbol producesSymbolType) This sets the type of symbol that stream can produce.void
setProducesTypeMustBeAFunction
(boolean producesTypeMustBeAFunction) void
setSinkInNature
(boolean sinkInNature) Methods inherited from class org.ek9lang.compiler.symbols.MethodSymbol
clone, cloneIntoMethodSymbol, copyMethodProperties, doGetFriendlyName, getAccessModifier, getCallParameters, getFriendlyName, getParentScope, getReturningSymbol, getUsedAsProxyForDelegate, isConstant, isConstructor, isEk9ReturnsThis, isExactSignatureMatchTo, isMarkedAbstract, isMarkedAsDispatcher, isMarkedNoClone, isNotConstructor, isNotMarkedAbstract, isOperator, isOverride, isParameterSignatureMatchTo, isPrivate, isProtected, isPublic, isReturningSymbolPresent, isSignatureMatchTo, isSynthetic, isUsedAsProxyForDelegate, justSetReturningSymbol, resolve, resolveInThisScopeOnly, setAccessModifier, setCallParameters, setConstructor, setEk9ReturnsThis, setMarkedAbstract, setMarkedAsDispatcher, setMarkedNoClone, setOperator, setOverride, setReturningSymbol, setSynthetic, setUsedAsProxyForDelegate, toString
Methods inherited from class org.ek9lang.compiler.symbols.ScopedSymbol
cloneIntoScopeSymbol, copyScopedSymbolProperties, define, findNearestDynamicBlockScopeInEnclosingScopes, findNearestNonBlockScopeInEnclosingScopes, getActualScope, getAllSymbolsMatchingName, getAnySuperTypeOrFunction, getEnclosingScope, getEncounteredExceptionToken, getFriendlyScopeName, getOuterMostTypeOrFunction, getScopeName, getScopeType, getSymbolsForThisScope, isMarkedPure, isMutable, isNotMarkedPure, isScopeAMatchForEnclosingScope, isTerminatedNormally, resolveMatchingMethods, resolveMatchingMethodsInThisScopeOnly, resolveMember, resolveWithParentScope, setEncounteredExceptionToken, setMarkedPure, setOuterMostTypeOrFunction, setScopeType
Methods inherited from class org.ek9lang.compiler.symbols.Symbol
clearInitialisedBy, cloneIntoSymbol, copySymbolProperties, getAssignableWeightTo, getAssignableWeightTo, getCategory, getFullyQualifiedName, getGenus, getInitialisedBy, getName, getParsedModule, getProduceFullyQualifiedName, getSourceToken, getSquirrelledData, getSymbolTypeAsString, getType, getUnCoercedAssignableWeightTo, isAssignableTo, isAssignableTo, isDevSource, isEk9Core, isExactSameType, isInjectionExpected, isLibSource, isNullAllowed, isPromotionSupported, isReferenced, putSquirrelledData, setCategory, setEk9Core, setGenus, setInitialisedBy, setInjectionExpected, setName, setNotMutable, setNullAllowed, setParsedModule, setProduceFullyQualifiedName, setReferenced, setSourceToken, setType
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.ek9lang.compiler.symbols.ISymbol
clearInitialisedBy, getAssignableWeightTo, getAssignableWeightTo, getCategory, getFullyQualifiedName, getGenus, getInitialisedBy, getName, getParsedModule, getSourceToken, getSquirrelledData, getType, getUnCoercedAssignableWeightTo, isApplication, isAssignableTo, isAssignableTo, isConceptualTypeParameter, isControl, isDeclaredAsConstant, isDevSource, isEk9Core, isExactSameType, isExtensionOfInjectable, isFromLiteral, isFunction, isGenericInNature, isIncomingParameter, isInitialised, isInjectable, isInjectionExpected, isLibSource, isLoopVariable, isMethod, isNullAllowed, isParameterisedType, isPrimitiveType, isPromotionSupported, isPropertyField, isReferenced, isReturningParameter, isTemplateFunction, isTemplateType, isType, isVariable, putSquirrelledData, setGenus, setInitialisedBy, setInjectionExpected, setName, setNotMutable, setNullAllowed, setParsedModule, setReferenced, setType, setType
Methods inherited from interface org.ek9lang.compiler.symbols.ITokenReference
setSourceToken
-
Constructor Details
-
StreamCallSymbol
-
-
Method Details
-
clone
Description copied from interface:ISymbol
Clone the symbol and re-parent if this symbol like a method should have a parent. Other symbols like VariableSymbols are un-parented- Specified by:
clone
in interfaceIScope
- Specified by:
clone
in interfaceIScopedSymbol
- Specified by:
clone
in interfaceISymbol
- Overrides:
clone
in classMethodSymbol
-
cloneIntoStreamCallSymbol
-
isConsumesSymbolPromotionRequired
public boolean isConsumesSymbolPromotionRequired() -
setConsumesSymbolPromotionRequired
public void setConsumesSymbolPromotionRequired(boolean consumesSymbolPromotionRequired) -
isSinkInNature
public boolean isSinkInNature() -
setSinkInNature
public void setSinkInNature(boolean sinkInNature) -
isCapableOfConsumingAnything
public boolean isCapableOfConsumingAnything() -
setCapableOfConsumingAnything
public void setCapableOfConsumingAnything(boolean capableOfConsumingAnything) -
setProducerSymbolTypeSameAsConsumerSymbolType
public void setProducerSymbolTypeSameAsConsumerSymbolType(boolean producerSymbolTypeSameAsConsumerSymbolType) -
isDerivesProducesTypeFromConsumesType
public boolean isDerivesProducesTypeFromConsumesType() -
setDerivesProducesTypeFromConsumesType
public void setDerivesProducesTypeFromConsumesType(boolean derivesProducesTypeFromConsumesType) -
isProducesTypeMustBeAFunction
public boolean isProducesTypeMustBeAFunction() -
setProducesTypeMustBeAFunction
public void setProducesTypeMustBeAFunction(boolean producesTypeMustBeAFunction) -
getConsumesSymbolType
-
setConsumesSymbolType
This sets the type of symbol that stream can consume. -
getProducesSymbolType
-
setProducesSymbolType
This sets the type of symbol that stream can produce. -
equals
- Overrides:
equals
in classMethodSymbol
-
hashCode
public int hashCode()- Overrides:
hashCode
in classMethodSymbol
-