static class SignalSourceChooser.OfEnum<E extends Enum<E>,A> extends SignalSourceChooser<A>
SignalSourceChooser.OfEnum<E extends Enum<E>,A>, SignalSourceChooser.OfEnumInt<E extends Enum<E>,A>, SignalSourceChooser.OfInt<A>
Constructor and Description |
---|
OfEnum(SignalSource<E> selector,
EnumMap<E,? extends SignalSource<A>> cases) |
Modifier and Type | Method and Description |
---|---|
protected SignalSource<A> |
choose()
Returns the chosen the input signal source for the current
value.
|
protected Consumer<CompilationContext> |
compileConvertToInt()
Returns a code generator for converting a value that represents the current
selection to an index of type
int . |
protected Map<Integer,Consumer<CompilationContext>> |
getCases(VariableContext.Variable result)
Returns a map with
int -indexed code generators for branches to
choose from. |
protected SignalSource<E> |
getSelector()
Returns an entity that can be compiled to code that outputs a
value that represents the current selection.
|
Class<? super A> |
getValueClass()
Returns the type of values produced by this entity.
|
compileDefaultValue, get
alwaysThrow, compileDataFlow, compileOrDefault
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
choose, choose, choose, choose, clock, compileDataFlow, compileMainSignalSource, constant, constant, delayed, delayed, delayedFeedback, delayedFeedback, eq, getConstant, guard, hasConstant, invariant, map, map, neq, power, probe, publishStoredValueVariable, relateWith, sampleAndHold, stored, zipWith
compileDataFlowTo, hasDataFlowIO
OfEnum(SignalSource<E> selector, EnumMap<E,? extends SignalSource<A>> cases)
protected SignalSource<A> choose()
SignalSourceChooser
choose
in class SignalSourceChooser<A>
protected SignalSource<E> getSelector()
AbstractSignalSourceChooser
getSelector
in class AbstractSignalSourceChooser
CompilableDataFlow.getValueClass()
public Class<? super A> getValueClass()
SignalSource
For signals of primitive value type, the result will be the corresponding pseudoclass.
This implementation returns Object.class
. Subclasses
may override this method to provide more specific type
information.
Class.isPrimitive()
protected Map<Integer,Consumer<CompilationContext>> getCases(VariableContext.Variable result)
AbstractSignalSourceChooser
int
-indexed code generators for branches to
choose from. The returned map should contain an entry for every valid
index. The method AbstractSignalSourceChooser.compileOrDefault(eu.bandm.tools.lljava.live.VariableContext.Variable, eu.bandm.sig.adlib2.compile.CompilableDataFlow)
may be used to populate the map.getCases
in class AbstractSignalSourceChooser
result
- the variable that all branches should output toAbstractSignalSourceChooser.compileConvertToInt()
protected Consumer<CompilationContext> compileConvertToInt()
AbstractSignalSourceChooser
int
.compileConvertToInt
in class AbstractSignalSourceChooser