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, ISymbolNature, 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 IScope
IScope.ScopeType -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionClone the symbol and re-parent if this symbol like a method should have a parent.protected StreamCallSymbolbooleaninthashCode()booleanbooleanbooleanbooleanbooleanvoidsetCapableOfConsumingAnything(boolean capableOfConsumingAnything) voidsetConsumesSymbolPromotionRequired(boolean consumesSymbolPromotionRequired) voidsetConsumesSymbolType(ISymbol consumesSymbolType) This sets the type of symbol that stream can consume.voidsetDerivesProducesTypeFromConsumesType(boolean derivesProducesTypeFromConsumesType) voidsetProducerSymbolTypeSameAsConsumerSymbolType(boolean producerSymbolTypeSameAsConsumerSymbolType) voidsetProducesSymbolType(ISymbol producesSymbolType) This sets the type of symbol that stream can produce.voidsetProducesTypeMustBeAFunction(boolean producesTypeMustBeAFunction) voidsetSinkInNature(boolean sinkInNature) Methods inherited from class MethodSymbol
clone, cloneIntoMethodSymbol, copyMethodProperties, doGetFriendlyName, getAccessModifier, getCallParameters, getFriendlyName, getParentScope, getReturningSymbol, getUsedAsProxyForDelegate, isConstant, isConstructor, isEk9ReturnsThis, isExactSignatureMatchTo, isMarkedAbstract, isMarkedAsDispatcher, isMarkedNoClone, isNotConstructor, isNotMarkedAbstract, isNotOperator, 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, toStringMethods inherited from class 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, setScopeTypeMethods inherited from class Symbol
clearInitialisedBy, cloneIntoSymbol, copySymbolProperties, getAssignableCostTo, getAssignableCostTo, getCategory, getFullyQualifiedName, getGenus, getInitialisedBy, getName, getParsedModule, getProduceFullyQualifiedName, getSourceToken, getSquirrelledData, getSymbolTypeAsString, getType, getUnCoercedAssignableCostTo, isAssignableTo, isAssignableTo, isDevSource, isEk9Core, isExactSameType, isInjectionExpected, isLibSource, isNullAllowed, isPromotionSupported, isReferenced, putSquirrelledData, setCategory, setEk9Core, setGenus, setInitialisedBy, setInjectionExpected, setName, setNotMutable, setNullAllowed, setParsedModule, setProduceFullyQualifiedName, setReferenced, setSourceToken, setTypeMethods inherited from interface ISymbol
clearInitialisedBy, getAssignableCostTo, getAssignableCostTo, getFullyQualifiedName, getInitialisedBy, getName, getParsedModule, getSourceToken, getSquirrelledData, getType, getUnCoercedAssignableCostTo, isAssignableTo, isAssignableTo, isDeclaredAsConstant, isDevSource, isExactSameType, isExtensionOfInjectable, isFromLiteral, isIncomingParameter, isInitialised, isInjectable, isInjectionExpected, isLibSource, isLoopVariable, isNullAllowed, isPromotionSupported, isPropertyField, isReferenced, isReturningParameter, putSquirrelledData, setInitialisedBy, setInjectionExpected, setName, setNotMutable, setNullAllowed, setParsedModule, setReferenced, setType, setTypeMethods inherited from interface ISymbolNature
getCategory, getGenus, isApplication, isConceptualTypeParameter, isControl, isEk9Core, isFunction, isGenericInNature, isMethod, isParameterisedType, isPrimitiveType, isTemplateFunction, isTemplateType, isType, isVariable, setGenusMethods inherited from interface ITokenReference
setSourceToken
-
Constructor Details
-
StreamCallSymbol
-
-
Method Details
-
clone
Description copied from interface:ISymbolClone the symbol and re-parent if this symbol like a method should have a parent. Other symbols like VariableSymbols are un-parented- Specified by:
clonein interfaceIScope- Specified by:
clonein interfaceIScopedSymbol- Specified by:
clonein interfaceISymbol- Overrides:
clonein 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:
equalsin classMethodSymbol
-
hashCode
public int hashCode()- Overrides:
hashCodein classMethodSymbol
-