KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > metadata > spi > retrieval > basic > BasicAnnotationsItem


1 /*
2 * JBoss, Home of Professional Open Source
3 * Copyright 2006, JBoss Inc., and individual contributors as indicated
4 * by the @authors tag. See the copyright.txt in the distribution for a
5 * full listing of individual contributors.
6 *
7 * This is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU Lesser General Public License as
9 * published by the Free Software Foundation; either version 2.1 of
10 * the License, or (at your option) any later version.
11 *
12 * This software is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this software; if not, write to the Free
19 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20 * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
21 */

22 package org.jboss.metadata.spi.retrieval.basic;
23
24 import java.lang.annotation.Annotation JavaDoc;
25
26 import org.jboss.metadata.spi.MetaData;
27 import org.jboss.metadata.spi.loader.MetaDataLoader;
28 import org.jboss.metadata.spi.retrieval.AnnotationItem;
29 import org.jboss.metadata.spi.retrieval.AnnotationsItem;
30
31 /**
32  * BasicAnnotationsItem.
33  *
34  * @author <a HREF="adrian@jboss.com">Adrian Brock</a>
35  * @version $Revision: 45742 $
36  */

37 public class BasicAnnotationsItem extends BasicItem<Annotation JavaDoc[]> implements AnnotationsItem
38 {
39    /** The annotation items */
40    private AnnotationItem[] annotationItems;
41    
42    /** The annotations */
43    private Annotation JavaDoc[] annotations;
44    
45    /**
46     * Create a new BasicAnnotationsItem.
47     *
48     * @param loader the loader
49     * @param annotationItems the annotation items
50     */

51    public BasicAnnotationsItem(MetaDataLoader loader, AnnotationItem[] annotationItems)
52    {
53       super(loader);
54
55       if (annotationItems == null)
56          throw new IllegalArgumentException JavaDoc("Null annotation items");
57
58       this.annotationItems = annotationItems;
59       
60       if (annotationItems.length == 0)
61          annotations = MetaData.NO_ANNOTATIONS;
62    }
63
64    public Annotation JavaDoc[] getValue()
65    {
66       if (annotations == null)
67       {
68          Annotation JavaDoc[] temp = new Annotation JavaDoc[annotationItems.length];
69          for (int i = 0; i < temp.length; ++i)
70             temp[i] = annotationItems[i].getAnnotation();
71          annotations = temp;
72       }
73       return annotations;
74    }
75
76    public AnnotationItem[] getAnnotations()
77    {
78       return annotationItems;
79    }
80
81    public boolean isCachable()
82    {
83       if (super.isCachable() == false)
84          return false;
85       
86       for (AnnotationItem item : annotationItems)
87       {
88          if (item.isCachable() == false)
89             return false;
90       }
91       
92       return true;
93    }
94
95    public boolean isValid()
96    {
97       if (super.isValid() == false)
98          return false;
99       
100       for (AnnotationItem item : annotationItems)
101       {
102          if (item.isValid() == false)
103             return false;
104       }
105       
106       return true;
107    }
108 }
109
Popular Tags