1 19 20 package org.netbeans.modules.xml.wsdl.model.extensions.soap.impl; 21 22 import java.util.ArrayList ; 23 import java.util.Collection ; 24 import java.util.Collections ; 25 import java.util.List ; 26 import org.netbeans.modules.xml.wsdl.model.BindingInput; 27 import org.netbeans.modules.xml.wsdl.model.BindingOutput; 28 import org.netbeans.modules.xml.wsdl.model.Part; 29 import org.netbeans.modules.xml.wsdl.model.WSDLModel; 30 import org.netbeans.modules.xml.wsdl.model.extensions.soap.SOAPBody; 31 import org.netbeans.modules.xml.wsdl.model.extensions.soap.SOAPComponent; 32 import org.netbeans.modules.xml.wsdl.model.extensions.soap.SOAPQName; 33 import org.netbeans.modules.xml.wsdl.model.impl.Util; 34 import org.netbeans.modules.xml.xam.Component; 35 import org.netbeans.modules.xml.xam.Reference; 36 import org.w3c.dom.Element ; 37 38 42 public class SOAPBodyImpl extends SOAPMessageBaseImpl implements SOAPBody { 43 44 45 public SOAPBodyImpl(WSDLModel model, Element e) { 46 super(model, e); 47 } 48 49 public SOAPBodyImpl(WSDLModel model){ 50 this(model, createPrefixedElement(SOAPQName.BODY.getQName(), model)); 51 } 52 53 public void accept(SOAPComponent.Visitor visitor) { 54 visitor.visit(this); 55 } 56 57 public List <String > getParts() { 58 String s = getAttribute(SOAPAttribute.PARTS); 59 return s == null ? null : Util.parse(s); 60 } 61 62 public List <Reference<Part>> getPartRefs() { 63 String s = getAttribute(SOAPAttribute.PARTS); 64 return s == null ? null : parseParts(s); 65 } 66 67 public void addPart(String part) { 68 String parts = getAttribute(SOAPAttribute.PARTS); 69 parts = parts == null ? part : parts.trim() + " " + part; setAttribute(PARTS_PROPERTY, SOAPAttribute.PARTS, parts); 71 } 72 73 public void addPartRef(Reference<Part> partRef) { 74 addPart(partRef.getRefString()); 75 } 76 77 public void addPart(int index, String part) { 78 List <String > parts = getParts(); 79 if (parts != null) { 80 parts.add(index, part); 81 } else { 82 parts = Collections.singletonList(part); 83 } 84 setAttribute(PARTS_PROPERTY, SOAPAttribute.PARTS, Util.toString(parts));; 85 } 86 87 public void addPartRef(int index, Reference<Part> partRef) { 88 addPart(index, partRef.getRefString()); 89 } 90 91 public void removePart(String part) { 92 Collection <String > parts = getParts(); 93 if (parts != null && parts.remove(part)) { 94 setAttribute(PARTS_PROPERTY, SOAPAttribute.PARTS, Util.toString(parts)); 95 } 96 } 97 98 public void removePartRef(Reference<Part> partRef) { 99 removePart(partRef.getRefString()); 100 } 101 102 public void setParts(List <String > parts) { 103 setAttribute(PARTS_PROPERTY, SOAPAttribute.PARTS, Util.toString(parts)); 104 } 105 106 public void setPartRefs(List <Reference<Part>> parts) { 107 String value = null; 108 if (parts != null && ! parts.isEmpty()) { 109 StringBuilder sb = new StringBuilder (); 110 for (Reference<Part> ref : parts) { 111 sb.append(ref.getRefString()); 112 } 113 value = sb.toString(); 114 } 115 setAttribute(PARTS_PROPERTY, SOAPAttribute.PARTS, value); 116 } 117 118 private List <Reference<Part>> parseParts(String s) { 119 List <Reference<Part>> ret = new ArrayList <Reference<Part>>(); 120 for (String part : Util.parse(s)) { 121 ret.add(new PartReference(this, part)); 122 } 123 return ret; 124 } 125 126 127 @Override 128 public boolean canBeAddedTo(Component target) { 129 if (target instanceof BindingInput || target instanceof BindingOutput) { 130 return true; 131 } 132 return false; 133 } 134 } 135 | Popular Tags |