001 /*
002 * Licensed under the Apache License, Version 2.0 (the "License");
003 * you may not use this file except in compliance with the License.
004 * You may obtain a copy of the License at
005 *
006 * http://www.apache.org/licenses/LICENSE-2.0
007 *
008 * Unless required by applicable law or agreed to in writing, software
009 * distributed under the License is distributed on an "AS IS" BASIS,
010 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
011 * See the License for the specific language governing permissions and
012 * limitations under the License.
013 */
014 package org.apache.commons.classscan.bcel;
015
016 import org.apache.bcel.classfile.AnnotationEntry;
017 import org.apache.commons.classscan.util.NameSet;
018
019 public class AnnotationMap extends NameSet<BcelAnnotation> {
020
021 private static AnnotationMap EMPTY_ANNOTATIONS= new AnnotationMap(new AnnotationEntry[0]);
022
023 public static AnnotationMap createAnnotations(AnnotationEntry[] annotationEntries) {
024 if(annotationEntries==null || annotationEntries.length==0) {
025 return EMPTY_ANNOTATIONS;
026 }
027 return new AnnotationMap(annotationEntries);
028 }
029
030 private AnnotationMap(AnnotationEntry[] entries) {
031 super(transformEntries(entries));
032 }
033
034 static private BcelAnnotation[] transformEntries(AnnotationEntry[] entries) {
035
036 BcelAnnotation[] annotations = new BcelAnnotation[entries.length];
037 for(int i = 0; i<entries.length; ++i) {
038 annotations[i]= new BcelAnnotation(entries[i]);
039 }
040 return annotations;
041 }
042 }