Coverage Report - org.codehaus.plexus.metadata.ann.AnnClass
 
Classes in this File Line Coverage Branch Coverage Complexity
AnnClass
72 %
26/36
16 %
1/6
1,143
 
 1  
 /*
 2  
  * Copyright (C) 2008 the original author or authors.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *     http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package org.codehaus.plexus.metadata.ann;
 18  
 
 19  
 import java.util.LinkedHashMap;
 20  
 import java.util.Map;
 21  
 import java.util.Set;
 22  
 
 23  
 import org.objectweb.asm.Type;
 24  
 
 25  
 /**
 26  
  * @author Eugene Kuleshov
 27  
  */
 28  
 public class AnnClass {
 29  
   
 30  
   private int access;
 31  
   private String name;
 32  
   private String superName;
 33  
   private String[] interfaces;
 34  
   
 35  1
   private Map<String, Ann> anns = new LinkedHashMap<String, Ann>();
 36  1
   private Map<String, AnnField> fields = new LinkedHashMap<String, AnnField>();
 37  1
   private Map<String, AnnMethod> methods = new LinkedHashMap<String, AnnMethod>();
 38  
   private ClassLoader cl;
 39  
 
 40  
   // setters
 41  
   
 42  1
   public AnnClass(ClassLoader cl) {
 43  1
     this.cl = cl;
 44  1
   }
 45  
 
 46  
   public void setName(String name) {
 47  1
     this.name = name;
 48  1
   }
 49  
 
 50  
   public void setAccess(int access) {
 51  1
     this.access = access;
 52  1
   }
 53  
 
 54  
   public void setSuperName(String superName) {
 55  1
     this.superName = superName;
 56  1
   }
 57  
 
 58  
   public void setInterfaces(String[] interfaces) {
 59  1
     this.interfaces = interfaces;
 60  1
   }
 61  
   
 62  
   public void addAnn(Ann ann) {
 63  1
     anns.put(ann.getDesc(), ann);
 64  1
   }
 65  
   
 66  
   public void addField(AnnField field) {
 67  2
     fields.put(field.getName(), field);
 68  2
   }
 69  
   
 70  
   public void addMethod(AnnMethod method) {
 71  1
     methods.put(method.getName() + method.getDesc(), method);
 72  1
   }
 73  
   
 74  
   // getters
 75  
   
 76  
   public ClassLoader getClassLoader() {
 77  3
     return cl;
 78  
   }
 79  
   
 80  
   public int getAccess() {
 81  1
     return access;
 82  
   }
 83  
 
 84  
   public String getName() {
 85  0
     return name;
 86  
   }
 87  
   
 88  
   public String getSuperName() {
 89  1
     return superName;
 90  
   }
 91  
 
 92  
   public String[] getInterfaces() {
 93  0
     return interfaces;
 94  
   }
 95  
 
 96  
   public Map<String, Ann> getAnns() {
 97  0
     return anns;
 98  
   }
 99  
 
 100  
   public Map<String, AnnField> getFields() {
 101  1
     return fields;
 102  
   }
 103  
 
 104  
   public Map<String, AnnMethod> getMethods() {
 105  0
     return methods;
 106  
   }
 107  
 
 108  
   public Set<String> getFieldNames() {
 109  0
     return fields.keySet();
 110  
   }
 111  
   
 112  
   public Set<String> getMethodKeys() {
 113  0
     return methods.keySet();
 114  
   }
 115  
   
 116  
   // conversion to java.lang.Annotation
 117  
   
 118  
   public <T> T getAnnotation(Class<T> c) {
 119  1
     Ann ann = anns.get(Type.getDescriptor(c));
 120  1
     return ann == null ? null : ann.getAnnotation(c, cl);
 121  
   }
 122  
 
 123  
   public <T> T getFieldAnnotation(String fieldName, Class<T> c) {
 124  0
     AnnField field = fields.get(fieldName);
 125  0
     return field==null ? null : field.getAnnotation(c);
 126  
   }
 127  
   
 128  
   public <T> T getMethodAnnotation(String methodKey, Class<T> c) {
 129  0
     AnnMethod method = methods.get(methodKey);
 130  0
     return method==null ? null : method.getAnnotation(c);
 131  
   }
 132  
 
 133  
 }
 134