KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > easybeans > deployment > annotations > analyzer > ObjectAnnotationVisitor


1 /**
2  * EasyBeans
3  * Copyright (C) 2006 Bull S.A.S.
4  * Contact: easybeans@objectweb.org
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
19  * USA
20  *
21  * --------------------------------------------------------------------------
22  * $Id: ObjectAnnotationVisitor.java 9 2006-02-19 18:53:32Z benoitf $
23  * --------------------------------------------------------------------------
24  */

25
26 package org.objectweb.easybeans.deployment.annotations.analyzer;
27
28 import org.objectweb.asm.AnnotationVisitor;
29
30 /**
31  * This class manages the handling of single type like String name().
32  * @param <T> the type of annotation metadata.
33  * @param <V> the type of class / erasure (for values).
34  * @author Florent Benoit
35  */

36 public abstract class ObjectAnnotationVisitor<T, V> extends AbsAnnotationVisitor<T> implements AnnotationVisitor, AnnotationType {
37
38     /**
39      * Internal value in the given type.
40      */

41     private V value = null;
42
43
44     /**
45      * Constructor.
46      * @param annotationMetadata linked to a metadata.
47      */

48     public ObjectAnnotationVisitor(final T annotationMetadata) {
49         super(annotationMetadata);
50     }
51
52
53     /**
54      * Visits a primitive value of the annotation.
55      * @param name the value name.
56      * @param value the actual value, whose type must be {@link Byte},
57      * {@link Boolean}, {@link Character}, {@link Short},
58      * {@link Integer}, {@link Long}, {@link Float}, {@link Double},
59      * {@link String} or {@link org.objectweb.asm.Type}.
60      */

61     @Override JavaDoc
62     @SuppressWarnings JavaDoc("unchecked")
63     public void visit(final String JavaDoc name, final Object JavaDoc value) {
64         this.value = (V) value;
65     }
66
67     /**
68      * @return value of the object
69      */

70     public V getValue() {
71         return this.value;
72     }
73
74
75 }
76
Popular Tags