Package com.arjuna.mwlabs.wsas.context.soap

Source Code of com.arjuna.mwlabs.wsas.context.soap.SOAPContextImple

/*
* JBoss, Home of Professional Open Source
* Copyright 2006, Red Hat Middleware LLC, and individual contributors
* as indicated by the @author tags.
* See the copyright.txt in the distribution for a full listing
* of individual contributors.
* This copyrighted material is made available to anyone wishing to use,
* modify, copy, or redistribute it subject to the terms and conditions
* of the GNU Lesser General Public License, v. 2.1.
* This program is distributed in the hope that it will be useful, but WITHOUT A
* 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,
* v.2.1 along with this distribution; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA  02110-1301, USA.
*
* (C) 2005-2006,
* @author JBoss Inc.
*/
/*
* Copyright (C) 2002,
*
* Arjuna Technologies Limited,
* Newcastle upon Tyne,
* Tyne and Wear,
* UK.
*
* $Id: SOAPContextImple.java,v 1.8.4.1 2005/11/22 10:31:41 kconner Exp $
*/

package com.arjuna.mwlabs.wsas.context.soap;

import com.arjuna.mw.wsas.logging.wsasLogger;

import com.arjuna.mw.wsas.UserActivityFactory;

import com.arjuna.mw.wsas.activity.ActivityHierarchy;

import com.arjuna.mw.wsas.context.Context;
import com.arjuna.mw.wsas.context.ContextManager;
import com.arjuna.mw.wsas.context.soap.SOAPContext;

import org.w3c.dom.Element;

import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;

import com.arjuna.mw.wsas.exceptions.SystemException;
import com.arjuna.mwlabs.wsas.util.XMLUtils;

/**
* A default SOAPContext implementation.
*/

public class SOAPContextImple implements SOAPContext
{
   
    public SOAPContextImple ()
    {
  this("");
    }

    /**
     * @message com.arjuna.mwlabs.wsas.context.soap.SOAPContextImple_1 [com.arjuna.mwlabs.wsas.context.soap.SOAPContextImple_1] - SOAPContextImple ignoring:
     */

    public SOAPContextImple (String id)
    {
      try
      {
          DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
          DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
     
          _doc = docBuilder.newDocument();
         
          _context = _doc.createElement(_contextName);
   
          if (addBasicContext(_context))
          {
            ContextManager cxman = new ContextManager();
            Context[] contexts = cxman.contexts();
       
            org.w3c.dom.Element root = _doc.createElement(_hlsContext);
         
            if (contexts != null)
            {
                for (int i = 0; i < contexts.length; i++)
                {
                  if (contexts[i] instanceof SOAPContext)
                  {
                            ((SOAPContext)contexts[i]).serialiseToElement(root) ;
                  }
                  else
                  {
                      wsasLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wsas.context.soap.SOAPContextImple_1",
                            new Object[]{contexts[i]});
                  }
                }
            }
       
            _context.appendChild(root);
          }
      }
      catch (Exception ex)
      {
          ex.printStackTrace();
         
          _context = null;
          _doc = null;
      }
    }
   
    public void initialiseContext(Object param)
    {
    }
   
    /**
     * Serialise the SOAP context into a DOM node.
     * @param element The element to contain the serialisation.
     * @return the element added.
     */
    public Element serialiseToElement(final Element element)
    {
        element.appendChild(_context) ;
        return _context ;
    }

    public String identifier ()
    {
        return "SOAPContextImple";
    }

    public String toString ()
    {
      return XMLUtils.writeToString(_context);
    }

    /**
     * @return <code>true</code> if a context was added, <code>false</code>
     * otherwise.
     */

    private final boolean addBasicContext (org.w3c.dom.Element root)
    {
      ActivityHierarchy hier = null;
      boolean added = false;
     
      try
      {
          hier = UserActivityFactory.userActivity().currentActivity();
      }
      catch (SystemException ex)
      {
          ex.printStackTrace();
      }

      if (hier != null)
      {
          added = true;
         
          for (int i = 0; i < hier.size(); i++)
          {
            org.w3c.dom.Element element = _doc.createElement(_contextElement);
            org.w3c.dom.Element timeout = _doc.createElement("timeout");
       
            timeout.appendChild(_doc.createTextNode(""+hier.activity(i).getTimeout()));
            element.appendChild(timeout);
       
            org.w3c.dom.Element type = _doc.createElement("type");
            type.appendChild(_doc.createTextNode(_typeName));
            element.appendChild(type);
       
            org.w3c.dom.Element ctxId = _doc.createElement("ctxId");
            ctxId.appendChild(_doc.createTextNode("urn:"+hier.activity(i).toString()));
            element.appendChild(ctxId);
       
            root.appendChild(element);
          }
      }
     
      return added;
    }
   
    private org.w3c.dom.Element  _context;
    private org.w3c.dom.Document _doc;
   
    private static final String _typeName = "ArjunaTechnologies";
    private static final String _contextName = "context";
    private static final String _contextElement = "context-entry";
    private static final String _hlsContext = "extended-context-entry";

}
TOP

Related Classes of com.arjuna.mwlabs.wsas.context.soap.SOAPContextImple

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.