Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /* Soot - a J*va Optimization Framework
   * Copyright (C) 2002 Sable Research Group
   *
   * This library 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 library 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 library; if not, write to the
  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 02111-1307, USA.
  */
 
 /*
  * Modified by the Sable Research Group and others 1997-1999.  
  * See the 'credits' file distributed with Soot for the complete list of
  * contributors.  (Soot is distributed at http://www.sable.mcgill.ca/soot)
  */
 
 
 package soot.util;
 
 import java.util.*;
 
 import soot.SootClass;
 
 public class IterableSet extends HashChain implements Set
 {
     public IterableSetCollection<SootClassc)
     {
 	super();
 	addAllc);
     }
 
     public IterableSet()
     {
 	super();
     }
 
     public boolean addObject o)
     {
 	if (o == null)
 	    throw new IllegalArgumentException"Cannot add \"null\" to an IterableSet.");
 
 	if (containso))
 	    return false;
 
 	return super.addo);
     }
 
     public boolean removeObject o)
     {
 	if ((o == null) || (containso) == false))
 	    return false;
 
 	return super.removeo);
     }
     
     public boolean equalsObject o)
     {
 	if (o == null)
 	    return false;
 
 	if (this == o)
 	    return true;
 
 	if ((o instanceof IterableSet) == false)
 	    return false;
 
 	IterableSet other = (IterableSeto;
 
 	if (size() != other.size())
 	    return false;
 	
 	Iterator it = iterator();
 	while (it.hasNext()) 
 	    if (other.containsit.next()) == false)
 		return false;
 	
 	return true;
     }
     
     @Override
     public int hashCode() {
     	int code = 23;
     	Iterator it = iterator();
     	while (it.hasNext()) {
     		//use addition here to have hash code independent of order
     		code += it.next().hashCode();
     	}
     	return code;
     }
     
    public Object clone()
    {
	IterableSet s = new IterableSet();
	s.addAllthis);
	return s;
    }    
    public boolean isSubsetOfIterableSet other)
    {
	if (other == null)
	    throw new IllegalArgumentException"Cannot set compare an IterableSet with \"null\".");
	if (size() > other.size())
	    return false;
	Iterator it = iterator();
	while (it.hasNext())
	    if (other.containsit.next()) == false)
		return false;
	return true;
    }
    
    public boolean isSupersetOfIterableSet other)
    {
	if (other == null)
	    throw new IllegalArgumentException"Cannot set compare an IterableSet with \"null\".");
	if (size() < other.size())
	    return false;
	Iterator it = other.iterator();
	while (it.hasNext())
	    if (containsit.next()) == false)
		return false;
	return true;
    }
    public boolean isStrictSubsetOfIterableSet other)
    {
	if (other == null)
	    throw new IllegalArgumentException"Cannot set compare an IterableSet with \"null\".");
	if (size() >= other.size())
	    return false;
	return isSubsetOfother);
    }
    
    public boolean isStrictSupersetOfIterableSet other)
    {
	if (other == null)
	    throw new IllegalArgumentException"Cannot set compare an IterableSet with \"null\".");
	if (size() <= other.size())
	    return false;
	return isSupersetOfother);
    }
    public boolean intersectsIterableSet other)
    {
	if (other == null)
	    throw new IllegalArgumentException"Cannot set intersect an IterableSet with \"null\".");
	if (other.size() < size()) {
	    Iterator it = other.iterator();
	    while (it.hasNext())
		if (containsit.next()))
		    return true;
	}
	else {
	    Iterator it = iterator();
	    while (it.hasNext())
		if (other.containsit.next()))
		    return true;
	}
	return false;
    }
    public IterableSet intersectionIterableSet other)
    {
	if (other == null)
	    throw new IllegalArgumentException"Cannot set intersect an IterableSet with \"null\".");
	IterableSet c = new IterableSet();
	if (other.size() < size()) {
	    Iterator it = other.iterator();
	    while (it.hasNext()) {
		Object o = it.next();
		if (containso))
		    c.addo);
	    }
	}
	else {
	    Iterator it = iterator();
	    while (it.hasNext()) {
		Object o = it.next();
		if (other.containso))
		    c.addo);
	    }
	}
	return c;
    }
    public IterableSet unionIterableSet other)
    {
	if (other == null)
	    throw new IllegalArgumentException"Cannot set union an IterableSet with \"null\".");
	IterableSet c = new IterableSet();
	c.addAllthis);
	c.addAllother);
	return c;
    }
    public String toString()
    {
	Iterator it = iterator();
	while (it.hasNext()) {
	    b.appendit.next().toString());
	    b.append"\n");
	}
	return b.toString();
    }
New to GrepCode? Check out our FAQ X