API Overview API Index Package Overview Direct link to this page
JDK 1.6
  org.jcp.xml.dsig.internal.dom. Utils View Javadoc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87

/*
 * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
 */
/*
 * $Id: Utils.java,v 1.14 2005/09/23 19:49:20 mullan Exp $
 */
package org.jcp.xml.dsig.internal.dom;

import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.IOException;
import java.util.*;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;

/**
 * Miscellaneous static utility methods for use in JSR 105 RI.
 *
 * @author Sean Mullan
 */
public final class Utils {

    private Utils() {}

    public static byte[] readBytesFromStream(InputStream is) 
	throws IOException {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        byte[] buf = new byte[1024];
        while (true) {
            int read = is.read(buf);
	    if (read == -1) { // EOF
		break;
	    }
            baos.write(buf, 0, read);
            if (read < 1024) {
                break;
            }
        }
        return baos.toByteArray();
    }

    /**
     * Converts an Iterator to a Set of Nodes, according to the XPath
     * Data Model.
     *
     * @param i the Iterator
     * @return the Set of Nodes
     */
    static Set toNodeSet(Iterator i) {
	Set nodeSet = new HashSet();
	while (i.hasNext()) {
	    Node n = (Node) i.next();
	    nodeSet.add(n);
	    // insert attributes nodes to comply with XPath
	    if (n.getNodeType() == Node.ELEMENT_NODE) {
	        NamedNodeMap nnm = n.getAttributes();
		for (int j = 0, length = nnm.getLength(); j < length; j++) {
		    nodeSet.add(nnm.item(j));
		}
	    }
	}
	return nodeSet;
    }

    /**
     * Returns the ID from a same-document URI (ex: "#id")
     */
    public static String parseIdFromSameDocumentURI(String uri) {
	if (uri.length() == 0) {
	    return null;
	}
	String id = uri.substring(1);
	if (id != null && id.startsWith("xpointer(id(")) {
            int i1 = id.indexOf('\'');
            int i2 = id.indexOf('\'', i1+1);
            id = id.substring(i1+1, i2);
	}
	return id;
    }

    /**
     * Returns true if uri is a same-document URI, false otherwise.
     */
    public static boolean sameDocumentURI(String uri) {
	return (uri != null && (uri.length() == 0 || uri.charAt(0) == '#'));
    }
}

Generated By: JavaOnTracks Doclet 0.1.4     ©Thibaut Colar