12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- /* *******************************************************************
- * Copyright (c) 2004 IBM
- * All rights reserved.
- * This program and the accompanying materials are made available
- * under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Andy Clement - initial implementation {date}
- * ******************************************************************/
-
- package org.aspectj.apache.bcel.classfile.annotation;
-
- import java.io.DataOutputStream;
- import java.io.IOException;
- import java.util.List;
-
- import org.aspectj.apache.bcel.Constants;
- import org.aspectj.apache.bcel.classfile.ConstantPool;
- import org.aspectj.apache.bcel.classfile.ConstantUtf8;
-
- public class AnnotationElementValue extends ElementValue {
-
- private AnnotationGen a;
-
- public AnnotationElementValue(AnnotationGen a, ConstantPool cpool) {
- super(ANNOTATION, cpool);
- this.a = a;
- }
-
- public AnnotationElementValue(int type, AnnotationGen annotation, ConstantPool cpool) {
- super(type, cpool);
- assert type == ANNOTATION;
- this.a = annotation;
- }
-
- public AnnotationElementValue(AnnotationElementValue value, ConstantPool cpool, boolean copyPoolEntries) {
- super(ANNOTATION, cpool);
- a = new AnnotationGen(value.getAnnotation(), cpool, copyPoolEntries);
- }
-
- @Override
- public void dump(DataOutputStream dos) throws IOException {
- dos.writeByte(type); // u1 type of value (ANNOTATION == '@')
- a.dump(dos);
- }
-
- @Override
- public String stringifyValue() {
- StringBuffer sb = new StringBuffer();
- ConstantUtf8 cu8 = (ConstantUtf8) cpool.getConstant(a.getTypeIndex(), Constants.CONSTANT_Utf8);
- sb.append(cu8.getValue());
- // haven't really tested this values section:
- List<NameValuePair> pairs = a.getValues();
- if (pairs != null && pairs.size() > 0) {
- sb.append("(");
- for (int p = 0; p < pairs.size(); p++) {
- if (p > 0) {
- sb.append(",");
- }
- sb.append(pairs.get(p).getNameString()).append("=").append(pairs.get(p).getValue().stringifyValue());
- }
- sb.append(")");
- }
- return sb.toString();
- }
-
- public AnnotationGen getAnnotation() {
- return a;
- }
-
- }
|