1 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 ; 28 import java.util.List ; 29 import java.util.Iterator ; 30 import java.util.LinkedList ; 31 32 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 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 getKeysOfType(Collection elements, int elementType) { 51 List keys; 52 if ((elementType & AnnotationTypeFilter.MEMBER) != 0) { 53 keys = new LinkedList (); 54 for (Iterator it = elements.iterator(); it.hasNext();) { 55 Object 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 |