public enum Duplication extends Enum<Duplication> implements StackManipulation
Modifier and Type | Class and Description |
---|---|
protected static class |
Duplication.WithFlip
A duplication that flips a value over the second value on the operand stack.
|
StackManipulation.AbstractBase, StackManipulation.Compound, StackManipulation.Illegal, StackManipulation.Simple, StackManipulation.Size, StackManipulation.Trivial
Enum Constant and Description |
---|
DOUBLE
A duplication of a double-sized stack value.
|
SINGLE
A duplication of a single-sized stack values.
|
ZERO
A duplication of no values.
|
Modifier and Type | Field and Description |
---|---|
protected StackManipulation.Size |
size
The size representing the impact of applying the duplication onto the operand stack.
|
Modifier and Type | Method and Description |
---|---|
StackManipulation.Size |
apply(MethodVisitor methodVisitor,
Implementation.Context implementationContext)
Applies the stack manipulation that is described by this instance.
|
abstract StackManipulation |
flipOver(TypeDefinition typeDefinition)
Creates a duplication that flips the stack's top value over the second stack element.
|
boolean |
isValid()
Determines if this stack manipulation is valid.
|
static Duplication |
of(TypeDefinition typeDefinition)
Duplicates a value given its type.
|
static Duplication |
valueOf(String name)
Returns the enum constant of this type with the specified name.
|
static Duplication[] |
values()
Returns an array containing the constants of this enum type, in
the order they are declared.
|
public static final Duplication ZERO
public static final Duplication SINGLE
public static final Duplication DOUBLE
protected final StackManipulation.Size size
public static Duplication[] values()
for (Duplication c : Duplication.values()) System.out.println(c);
public static Duplication valueOf(String name)
name
- the name of the enum constant to be returned.IllegalArgumentException
- if this enum type has no constant with the specified nameNullPointerException
- if the argument is nullpublic static Duplication of(TypeDefinition typeDefinition)
typeDefinition
- The type to be duplicated.public abstract StackManipulation flipOver(TypeDefinition typeDefinition)
typeDefinition
- The type of the second element on the operand stack.public boolean isValid()
isValid
in interface StackManipulation
false
, this manipulation cannot be applied and should throw an exception.public StackManipulation.Size apply(MethodVisitor methodVisitor, Implementation.Context implementationContext)
apply
in interface StackManipulation
methodVisitor
- The method visitor used to write the method implementation to.implementationContext
- The context of the current implementation.Copyright © 2014–2025. All rights reserved.