com.fitbur.mockito.bytebuddy.implementation.bytecode.constant.JavaConstantValue Maven / Gradle / Ivy
package com.fitbur.mockito.bytebuddy.implementation.bytecode.constant;
import com.fitbur.mockito.bytebuddy.implementation.Implementation;
import com.fitbur.mockito.bytebuddy.implementation.bytecode.StackManipulation;
import com.fitbur.mockito.bytebuddy.implementation.bytecode.StackSize;
import com.fitbur.mockito.bytebuddy.utility.JavaConstant;
import com.fitbur.mockito.bytebuddy.jar.asm.MethodVisitor;
/**
* A constant representing a {@link JavaConstant}.
*/
public class JavaConstantValue implements StackManipulation {
/**
* The instance to load onto the operand stack.
*/
private final JavaConstant javaConstant;
/**
* Creates a constant pool value representing a {@link JavaConstant}.
*
* @param javaConstant The instance to load onto the operand stack.
*/
public JavaConstantValue(JavaConstant javaConstant) {
this.javaConstant = javaConstant;
}
@Override
public boolean isValid() {
return true;
}
@Override
public Size apply(MethodVisitor methodVisitor, Implementation.Context implementationContext) {
methodVisitor.visitLdcInsn(javaConstant.asConstantPoolValue());
return StackSize.SINGLE.toIncreasingSize();
}
@Override
public boolean equals(Object other) {
return this == other || !(other == null || getClass() != other.getClass())
&& javaConstant.equals(((JavaConstantValue) other).javaConstant);
}
@Override
public int hashCode() {
return javaConstant.hashCode();
}
@Override
public String toString() {
return "JavaConstantValue{javaConstant=" + javaConstant + '}';
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy