package de.take_weiland.mods.commons.asm.info; import com.google.common.collect.ImmutableList; import java.util.List; import static org.objectweb.asm.Opcodes.*; /** * @author diesieben07 */ final class ClassInfoArray extends ClassInfo { private final int dimensions; private final String internalName; private final int modifiers; ClassInfoArray(int dimensions, ClassInfo rootType) { this.dimensions = dimensions; StringBuilder sb = new StringBuilder(); for (int i = 0; i < dimensions; i++) { sb.append('['); } sb.append('L'); sb.append(rootType.internalName()); internalName = sb.toString(); // see Class.getModifiers this.modifiers = rootType.modifiers() & (ACC_PUBLIC | ACC_PROTECTED | ACC_PRIVATE) | ACC_FINAL; } @Override public List<String> interfaces() { return ImmutableList.of(); } @Override public String superName() { return "java/lang/Object"; } @Override public String internalName() { return internalName; } @Override public int getDimensions() { return dimensions; } @Override public String getSourceFile() { return null; } @Override public int modifiers() { return modifiers; } }