30
31 import java.util.Collections;
32 import java.util.Iterator;
33 import java.util.LinkedHashSet;
34 import java.util.List;
35 import java.util.Set;
36 import javax.xml.crypto.NodeSetData;
37 import org.w3c.dom.Node;
38 import com.sun.org.apache.xml.internal.security.signature.NodeFilter;
39 import com.sun.org.apache.xml.internal.security.signature.XMLSignatureInput;
40 import com.sun.org.apache.xml.internal.security.utils.XMLUtils;
41
42 public class ApacheNodeSetData implements ApacheData, NodeSetData {
43
44 private XMLSignatureInput xi;
45
46 public ApacheNodeSetData(XMLSignatureInput xi) {
47 this.xi = xi;
48 }
49
50 public Iterator iterator() {
51 // If nodefilters are set, must execute them first to create node-set
52 if (xi.getNodeFilters() != null && !xi.getNodeFilters().isEmpty()) {
53 return Collections.unmodifiableSet
54 (getNodeSet(xi.getNodeFilters())).iterator();
55 }
56 try {
57 return Collections.unmodifiableSet(xi.getNodeSet()).iterator();
58 } catch (Exception e) {
59 // should not occur
60 throw new RuntimeException
61 ("unrecoverable error retrieving nodeset", e);
62 }
63 }
64
65 public XMLSignatureInput getXMLSignatureInput() {
66 return xi;
67 }
68
69 private Set<Node> getNodeSet(List<NodeFilter> nodeFilters) {
70 if (xi.isNeedsToBeExpanded()) {
|
30
31 import java.util.Collections;
32 import java.util.Iterator;
33 import java.util.LinkedHashSet;
34 import java.util.List;
35 import java.util.Set;
36 import javax.xml.crypto.NodeSetData;
37 import org.w3c.dom.Node;
38 import com.sun.org.apache.xml.internal.security.signature.NodeFilter;
39 import com.sun.org.apache.xml.internal.security.signature.XMLSignatureInput;
40 import com.sun.org.apache.xml.internal.security.utils.XMLUtils;
41
42 public class ApacheNodeSetData implements ApacheData, NodeSetData {
43
44 private XMLSignatureInput xi;
45
46 public ApacheNodeSetData(XMLSignatureInput xi) {
47 this.xi = xi;
48 }
49
50 public Iterator<Node> iterator() {
51 // If nodefilters are set, must execute them first to create node-set
52 if (xi.getNodeFilters() != null && !xi.getNodeFilters().isEmpty()) {
53 return Collections.unmodifiableSet
54 (getNodeSet(xi.getNodeFilters())).iterator();
55 }
56 try {
57 return Collections.unmodifiableSet(xi.getNodeSet()).iterator();
58 } catch (Exception e) {
59 // should not occur
60 throw new RuntimeException
61 ("unrecoverable error retrieving nodeset", e);
62 }
63 }
64
65 public XMLSignatureInput getXMLSignatureInput() {
66 return xi;
67 }
68
69 private Set<Node> getNodeSet(List<NodeFilter> nodeFilters) {
70 if (xi.isNeedsToBeExpanded()) {
|