Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * JBoss, Home of Professional Open Source.
   * Copyright 2010, Red Hat Middleware LLC, and individual contributors
   * as indicated by the @author tags. See the copyright.txt file in the
   * distribution for a full listing of individual contributors.
   *
   * This is free software; you can redistribute it and/or modify it
   * under the terms of the GNU Lesser General Public License as
   * published by the Free Software Foundation; either version 2.1 of
  * the License, or (at your option) any later version.
  *
  * This software is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with this software; if not, write to the Free
  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  */
 package org.picketlink.trust.jbossws;
 
 import java.util.List;
 
 

Author(s):
Jason T. Greene
 
 public class Util {
     public static int count = 0;
 
     public static String assignWsuId(Element element) {
         String id = element.getAttributeNS(..);
 
         if (id == null || id.length() < 1) {
             id = generateId();
             element.setAttributeNS(..id);
             addNamespace(element..);
         }
 
         return id;
     }
 
     public static Element getFirstChildElement(Node node) {
         Node child = node.getFirstChild();
         while (child != null && child.getNodeType() != .)
             child = child.getNextSibling();
 
         return (Elementchild;
     }
 
     public static Element getNextSiblingElement(Element element) {
         Node sibling = element.getNextSibling();
         while (sibling != null && sibling.getNodeType() != .)
             sibling = sibling.getNextSibling();
 
         return (Elementsibling;
     }
 
     public static Element getPreviousSiblingElement(Element element) {
         Node sibling = element.getPreviousSibling();
         while (sibling != null && sibling.getNodeType() != .)
             sibling = sibling.getPreviousSibling();
 
         return (Elementsibling;
     }
 
     public static Element findElement(Element rootString localNameString namespace) {
         return findElement(rootnew QName(namespacelocalName));
     }
 
     public static Element findElement(Element rootQName name) {
         // Here lies your standard recusive DFS.....
         if (matchNode(rootname))
             return root;
 
         // Search children
         for (Node child = root.getFirstChild(); child != nullchild = child.getNextSibling()) {
             if (child.getNodeType() != .)
                 continue;
 
             Node possibleMatch = findElement((Elementchildname);
             if (possibleMatch != null)
                 return (ElementpossibleMatch;
         }
 
         return null;
     }
 
     public static List<NodefindAllElements(Element rootQName nameboolean local) {
         List<Nodelist = new ArrayList<Node>();
         if (matchNode(rootnamelocal))
             list.add(root);
        for (Node child = root.getFirstChild(); child != nullchild = child.getNextSibling()) {
            if (child.getNodeType() != .)
                continue;
            list.addAll(findAllElements((Elementchildnamelocal));
        }
        return list;
    }
    public static Element findElementByWsuId(Element rootString id) {
        // Here lies another standard recusive DFS.....
        if (id.equals(getWsuId(root)))
            return root;
        // Search children
        for (Node child = root.getFirstChild(); child != nullchild = child.getNextSibling()) {
            if (child.getNodeType() != .)
                continue;
            Node possibleMatch = findElementByWsuId((Elementchildid);
            if (possibleMatch != null)
                return (ElementpossibleMatch;
        }
        return null;
    }
    public static Element findOrCreateSoapHeader(Element envelope) {
        String prefix = envelope.getPrefix();
        String uri = envelope.getNamespaceURI();
        QName name = new QName(uri"Header");
        Element header = findElement(envelopename);
        if (header == null) {
            header = envelope.getOwnerDocument().createElementNS(uriprefix + ":Header");
            envelope.insertBefore(headerenvelope.getFirstChild());
        }
        return header;
    }
    public static String getWsuId(Element element) {
        if (element.hasAttributeNS(..))
            return element.getAttributeNS(..);
        if (element.hasAttribute(.)) {
            String ns = element.getNamespaceURI();
            if (..equals(ns) || ..equals(ns))
                return element.getAttribute(.);
        }
        return null;
    }
    public static boolean equalStrings(String string1String string2) {
        if (string1 == null && string2 == null)
            return true;
        return string1 != null && string1.equals(string2);
    }
    public static boolean matchNode(Node nodeQName name) {
        return matchNode(nodenamefalse);
    }
    public static boolean matchNode(Node nodeQName nameboolean local) {
        return equalStrings(node.getLocalName(), name.getLocalPart())
                && (local || equalStrings(node.getNamespaceURI(), name.getNamespaceURI()));
    }
    public static String generateId() {
        return generateId("element");
    }
    public static void addNamespace(Element elementString prefixString uri) {
        element.setAttributeNS(."xmlns:" + prefixuri);
    }
    public static String generateId(String prefix) {
        StringBuilder id = new StringBuilder();
        long time = System.currentTimeMillis();
        // reasonably gaurantee uniqueness
        synchronized (Util.class) {
            ++;
        }
        id.append(prefix).append("-").append().append("-").append(time).append("-").append(id.hashCode());
        return id.toString();
    }
New to GrepCode? Check out our FAQ X