I1
- type of first inputI2
- type of second inputO
- type of outputpublic interface BinaryInplace1Op<I1,I2,O extends I1> extends BinaryOp<I1,I2,O>, UnaryInplaceOp<I1,O>
It is a less powerful version of BinaryInplaceOp
, which can mutate
either of its inputs.
Note that the <I1>
and <O>
type parameters are kept distinct
for special hybrid ops, which may allow inplace mutation without
requiring it; see e.g. BinaryHybridCFI1
.
BinaryComputerOp
,
BinaryFunctionOp
SpecialOp.Flavor
Modifier and Type | Method and Description |
---|---|
default BinaryInplace1Op<I1,I2,O> |
getIndependentInstance()
Gets a reference to an instance of this object which can be used
simultaneously from a second thread while this instance is being used from
"its" thread.
|
default I1 |
in() |
default I1 |
in1() |
default void |
mutate(O arg)
Mutates the given input argument in-place.
|
void |
mutate1(O arg,
I2 in)
Mutates the first argument in-place.
|
default void |
run() |
default O |
run(I1 input1,
I2 input2,
O output)
Executes the operation in a type-safe but flexible way.
|
in2, setInput, setInput1, setInput2
run, run
candidates, filterArity, op
ops, setEnvironment
initialize
void mutate1(O arg, I2 in)
arg
- First argument of the BinaryInplace1Op
, which
will be mutated.in
- Second argument of the BinaryInplace1Op
, which will
not be mutated.default O run(I1 input1, I2 input2, O output)
BinaryOp
The exact behavior depends on the type of special op.
run
in interface BinaryOp<I1,I2,O extends I1>
input1
- first argument to the operationinput2
- second argument to the operationoutput
- reference where the operation's result will be storedBinaryComputerOp.run(Object, Object, Object)
,
BinaryFunctionOp.run(Object, Object, Object)
,
BinaryInplaceOp.run(Object, Object, Object)
,
BinaryHybridCF.run(Object, Object, Object)
default I1 in1()
in1
in interface BinaryInput<I1,I2>
default void mutate(O arg)
UnaryInplaceOp
mutate
in interface UnaryInplaceOp<I1,O extends I1>
arg
- of the UnaryInplaceOp
default I1 in()
in
in interface BinaryInput<I1,I2>
in
in interface UnaryInplaceOp<I1,O extends I1>
in
in interface UnaryInput<I1>
default void run()
default BinaryInplace1Op<I1,I2,O> getIndependentInstance()
Threadable
It is expected that subclasses which override this method will narrow the return type appropriately. We do not enforce this at compile time via recursive generics due to their complexity: they introduce a host of typing difficulties.
getIndependentInstance
in interface BinaryOp<I1,I2,O extends I1>
getIndependentInstance
in interface NullaryOp<O extends I1>
getIndependentInstance
in interface SpecialOp
getIndependentInstance
in interface Threadable
getIndependentInstance
in interface UnaryInplaceOp<I1,O extends I1>
getIndependentInstance
in interface UnaryOp<I1,O extends I1>
Copyright © 2014–2022 ImageJ. All rights reserved.