123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- /* *******************************************************************
- * Copyright (c) 2004 IBM
- * All rights reserved.
- * This program and the accompanying materials are made available
- * under the terms of the Eclipse Public License v 2.0
- * which accompanies this distribution and is available at
- * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt
- *
- * Contributors:
- * Andy Clement - initial implementation
- * ******************************************************************/
-
- package org.aspectj.apache.bcel.classfile.annotation;
-
- import java.io.DataOutputStream;
- import java.io.IOException;
-
- import org.aspectj.apache.bcel.classfile.ConstantPool;
-
- public class NameValuePair {
- private int nameIdx;
- private ElementValue value;
- private ConstantPool cpool;
-
- public NameValuePair(NameValuePair pair, ConstantPool cpool, boolean copyPoolEntries) {
- this.cpool = cpool;
- // J5ASSERT:
- // Could assert nvp.getNameString() points to the same thing as cpool.getConstant(nvp.getNameIndex())
- // if (!nvp.getNameString().equals(((ConstantUtf8)cpool.getConstant(nvp.getNameIndex())).getBytes())) {
- // throw new RuntimeException("envp buggered");
- // }
- if (copyPoolEntries) {
- nameIdx = cpool.addUtf8(pair.getNameString());
- } else {
- nameIdx = pair.getNameIndex();
- }
- value = ElementValue.copy(pair.getValue(), cpool, copyPoolEntries);
- }
-
- protected NameValuePair(int idx, ElementValue value, ConstantPool cpool) {
- this.nameIdx = idx;
- this.value = value;
- this.cpool = cpool;
- }
-
- public NameValuePair(String name, ElementValue value, ConstantPool cpool) {
- this.nameIdx = cpool.addUtf8(name);
- this.value = value;
- this.cpool = cpool;
- }
-
- protected void dump(DataOutputStream dos) throws IOException {
- dos.writeShort(nameIdx); // u2 name of the element
- value.dump(dos);
- }
-
- public int getNameIndex() {
- return nameIdx;
- }
-
- public final String getNameString() {
- return cpool.getConstantUtf8(nameIdx).getValue();
- }
-
- public final ElementValue getValue() {
- return value;
- }
-
- @Override
- public String toString() {
- StringBuilder sb = new StringBuilder();
- sb.append(getNameString()).append("=").append(value.stringifyValue());
- return sb.toString();
- }
- }
|