KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > java > ui > nodes > elements > AnnotationTypeChildren


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19 package org.netbeans.modules.java.ui.nodes.elements;
20
21 import org.netbeans.modules.java.ui.nodes.SourceNodeFactory;
22 import org.netbeans.jmi.javamodel.AnnotationType;
23 import org.netbeans.jmi.javamodel.Attribute;
24 import org.openide.nodes.Node;
25
26 import javax.jmi.reflect.JmiException;
27 import java.util.Collection JavaDoc;
28 import java.util.List JavaDoc;
29 import java.util.Iterator JavaDoc;
30 import java.util.LinkedList JavaDoc;
31
32 /**
33  * implementation of children list for a annotation type node
34  */

35 public final class AnnotationTypeChildren extends ClassChildren {
36
37     public AnnotationTypeChildren(SourceNodeFactory factory, AnnotationType element) {
38         super(factory, element);
39     }
40
41     protected Node[] createNodesImpl(Object JavaDoc key) throws JmiException {
42         if (key instanceof Attribute) {
43             Attribute a = (Attribute) key;
44             hookNodeName(a);
45             return new Node[] { getFactory().createAnnotationTypeMethodNode(a) };
46         }
47         return super.createNodesImpl(key);
48     }
49
50     protected List JavaDoc getKeysOfType(Collection JavaDoc/*<ClassMemeber>*/ elements, int elementType) {
51         List JavaDoc keys;
52         if ((elementType & AnnotationTypeFilter.MEMBER) != 0) {
53             keys = new LinkedList JavaDoc();
54             for (Iterator JavaDoc it = elements.iterator(); it.hasNext();) {
55                 Object JavaDoc member = it.next();
56                 if ((elementType & AnnotationTypeFilter.MEMBER) != 0 && member instanceof Attribute) {
57                     keys.add(member);
58                 }
59             }
60         } else {
61             keys = super.getKeysOfType(elements, elementType);
62         }
63         
64         return keys;
65     }
66
67     protected void refreshAllKeys() {
68         refreshKeys(AnnotationTypeFilter.ALL);
69     }
70
71     protected int[] getOrder() {
72         return (filter == null || (filter.getOrder() == null))
73                ? AnnotationTypeFilter.DEFAULT_ORDER : filter.getOrder();
74     }
75 }
76
Popular Tags