1 19 20 28 29 package org.netbeans.modules.xml.wsdl.ui.schema.visitor; 30 31 import java.util.ArrayList ; 32 import java.util.HashMap ; 33 import java.util.List ; 34 35 import org.netbeans.modules.xml.schema.model.All; 36 import org.netbeans.modules.xml.schema.model.Attribute; 37 import org.netbeans.modules.xml.schema.model.Choice; 38 import org.netbeans.modules.xml.schema.model.Element; 39 import org.netbeans.modules.xml.schema.model.GlobalAttribute; 40 import org.netbeans.modules.xml.schema.model.GlobalElement; 41 import org.netbeans.modules.xml.schema.model.GroupReference; 42 import org.netbeans.modules.xml.schema.model.LocalAttribute; 43 import org.netbeans.modules.xml.schema.model.LocalElement; 44 import org.netbeans.modules.xml.schema.model.Sequence; 45 import org.netbeans.modules.xml.schema.model.Attribute.Use; 46 47 51 public class SchemaElementAttributeFinderVisitor extends AbstractXSDVisitor { 52 53 private List <Attribute> mAttrList = new ArrayList <Attribute>(); 54 55 private HashMap <String , Attribute> mAttrMap = new HashMap <String , Attribute>(); 56 57 private boolean noProhibited = false; 58 59 60 private Element mElement = null; 61 62 public SchemaElementAttributeFinderVisitor(Element elem) { 63 mElement = elem; 64 } 65 66 public SchemaElementAttributeFinderVisitor(Element elem, boolean noProhibited) { 67 mElement = elem; 68 this.noProhibited = noProhibited; 69 } 70 71 public List <Attribute> getAttributes() { 72 return this.mAttrList; 73 } 74 75 76 77 @Override 78 public void visit(All all) { 79 } 82 83 @Override 84 public void visit(Choice choice) { 85 } 88 89 @Override 90 public void visit(GroupReference gr) { 91 } 94 95 @Override 96 public void visit(Sequence s) { 97 } 100 101 102 103 @Override 104 public void visit(GlobalElement ge) { 105 if (ge.equals(mElement)) { 106 super.visit(ge); 107 } 108 } 109 110 @Override 111 public void visit(LocalElement le) { 112 if (le.equals(mElement)) { 113 super.visit(le); 114 } 115 } 116 117 @Override 118 public void visit(LocalAttribute la) { 119 120 if (noProhibited && la.getUse() != null && la.getUse().equals(Use.PROHIBITED)) { 121 if (mAttrMap.containsKey(la.getName())) { 123 mAttrList.remove(mAttrMap.remove(la.getName())); 124 } 125 return; 126 } 127 if (!mAttrMap.containsKey(la.getName())) { 128 mAttrMap.put(la.getName(), la); 129 this.mAttrList.add(la); 130 } 131 } 132 133 @Override 134 public void visit(GlobalAttribute ga) { 135 if (!mAttrMap.containsKey(ga.getName())) { 136 mAttrMap.put(ga.getName(), ga); 137 this.mAttrList.add(ga); 138 } 139 } 140 141 142 } 143 | Popular Tags |