Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * 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: ActivityHierarchyImple.java,v 1.1 2002/11/25 10:51:45 nmcl Exp $
  */
 
 package com.arjuna.mwlabs.wsas.activity;
 
 
 
This class represents a handle on a stack of activities. It should only be used for suspending and resuming the thread-to-activity association. The activity at the top of the stack is the current activity.
 
 
 public class ActivityHierarchyImple implements ActivityHierarchy
 {
 
     public ActivityHierarchyImple (ActivityImple current)
     {
 	 = new Stack();
 	
 	if (current != null)
 	{
 	    ActivityImple[] hierarchy = current.hierarchy();
 
 	    for (int i = 0; i < hierarchy.lengthi++)
 		.push(new ActivityHandleImple(hierarchy[i]));
 
 	     = true;
 	}
 	else
 	     = false;
     }
    
    

Returns:
the number of activities associated with this stack.
 
 
     public int size ()
     {
 	return .size();
     }
    
    

Returns:
whether or not this is a valid context. If a single entry in the context is invalid then we assume the entire context is.
 
 
     public boolean valid ()
     {
 	return ;
     }

    

Parameters:
the specific activity in the stack.
Returns:
the activity handle.
Throws:
java.lang.IndexOutOfBoundsException Thrown if the activity number is too large or small.
 
 
     public ActivityHandle activity (int indexthrows IndexOutOfBoundsException
     {
 	try
 	{
 	    return (ActivityHandle.elementAt(index);
	}
	{
	    throw new IndexOutOfBoundsException();
	}
    }

    

Returns:
the current activity in the context.
    public ActivityHandle current ()
    {
	try
	{
	    return (ActivityHandle.peek();
	}
	catch (Exception ex)
	{
	    return null;
	}
    }

    
Obtain a copy of this context. Although the context may be shared between different threads, the same instance of the context should not be.

Returns:
the context copy.
    public ActivityHierarchy copy ()
    {
	return new ActivityHierarchyImple(this);
    }

    
Overrides Object.equals Two contexts are equal if both hierarchies are identical.
    public boolean equals (Object obj)
    {
	if (obj != null)
	{
	    if (obj == this)
		return true;
	    else
	    {
		if (obj instanceof ActivityHierarchyImple)
		{
		    
		    if (.size() == compare._hierarchy.size())
		    {
			for (int i = 0; i < .size(); i++)
			{
			    if (!.elementAt(i).equals(compare._hierarchy.elementAt(i)))
			    {
				return false;
			    }
			}
			return true;
		    }
		}
		else
		    return true;
	    }
	}
	return false;
    }

    
Although users won't typically care what the underlying implementation of a context is, they will need to do comparisons. So, although this method is provided by Java.Object we have it here to ensure that we don't forget to implement it!
    public int hashCode ()
    {
    }
    public String toString ()
    {
	String toReturn = "Activity context:";
	if (( == null) || (.size() == 0))
	    toReturn += " null";
	else
	{
	    for (int i = 0; i < .size(); i++)
		toReturn += " "+.elementAt(i);
	}
	return toReturn;
    }
    {
	 = null;
	 = false;
	if (toCopy != null)
	{
	    int copySize = toCopy._hierarchy.size();
	    
	    if (copySize > 0)
	    {
		 = new Stack();
	    
		for (int i = 0; i < copySizei++)
		{
		    /*
		     * Do we want to create copies of the elements?
		     */
		    .push(toCopy._hierarchy.elementAt(i));
		}
		 = true;
	    }
	}
    }
    
    private Stack   _hierarchy;
    private boolean _valid;
    
New to GrepCode? Check out our FAQ X