org.jetbrains.java.decompiler.struct.consts.PrimitiveConstant Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of vineflower Show documentation
Show all versions of vineflower Show documentation
Modern Java & JVM language decompiler aiming to be as accurate as possible, with an emphasis on output quality.
The newest version!
// Copyright 2000-2021 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package org.jetbrains.java.decompiler.struct.consts;
public class PrimitiveConstant extends PooledConstant {
public int index;
public Object value;
public boolean isArray;
public PrimitiveConstant(int type, Object value) {
super(type);
this.value = value;
initConstant();
}
public PrimitiveConstant(int type, int index) {
super(type);
this.index = index;
}
private void initConstant() {
if (type == CONSTANT_Class) {
String className = getString();
isArray = (className.length() > 0 && className.charAt(0) == '['); // empty string for a class name seems to be possible in some android files
}
}
public String getString() {
return (String)value;
}
@Override
public void resolveConstant(ConstantPool pool) {
if (type == CONSTANT_Class || type == CONSTANT_String || type == CONSTANT_MethodType || type == CONSTANT_Module || type == CONSTANT_Package) {
value = pool.getPrimitiveConstant(index).getString();
initConstant();
}
}
@Override
public boolean equals(Object o) {
if (o == this) return true;
if (!(o instanceof PrimitiveConstant)) return false;
PrimitiveConstant cn = (PrimitiveConstant)o;
return this.type == cn.type &&
this.isArray == cn.isArray &&
this.value.equals(cn.value);
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy