Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /* Soot - a J*va Optimization Framework
   * Copyright (C) 2005 Navindra Umanee <navindra@cs.mcgill.ca>
   *
   * 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.
  */
 
 package soot.toolkits.graph;
 
 import java.util.*;

A reversible version of HashMutableDirectedGraph

Author(s):
Navindra Umanee
 
     implements ReversibleGraph
 {
     protected boolean reversed;
 
     public HashReversibleGraph(DirectedGraph dg)
     {
         this();
 
         for(Iterator i = dg.iterator(); i.hasNext();){
             Object s = i.next();
             addNode(s);
         }
 
         for(Iterator i = dg.iterator(); i.hasNext();){
             Object s = i.next();
             List succs = dg.getSuccsOf(s);
             for(Iterator succsIt = succs.iterator(); succsIt.hasNext();){
                 Object t = succsIt.next();
                 addEdge(st);
             }
         }
 
         /* use the same heads and tails as the original graph */
         
         .clear();
         .addAll(dg.getHeads());
         .clear();
         .addAll(dg.getTails());
     }
             
     public HashReversibleGraph()
     {
         super();
          = false;
     }
     
     public boolean isReversed()
     {
         return ;
     }
 
     public ReversibleGraph reverse()
     {   
          = !;
         return this;
     }
 
     public void addEdge(Object fromObject to)
     {
         if()
             super.addEdge(tofrom);
         else
             super.addEdge(fromto);
     }
 
     public void removeEdge(Object fromObject to)
     {
         if()
             super.removeEdge(tofrom);
         else
             super.removeEdge(fromto);
     }
 
     public boolean containsEdge(Object fromObject to)
     {
         return  ? super.containsEdge(tofrom) : super.containsEdge(fromto);
     }
 
     public List getHeads()
     {
        return  ? super.getTails() : super.getHeads();
    }
    public List getTails()
    {
        return  ? super.getHeads() : super.getTails();
    }   
    public List getPredsOf(Object s)
    {
        return  ? super.getSuccsOf(s) : super.getPredsOf(s);
    }
    
    public List getSuccsOf(Object s)
    {
        return  ? super.getPredsOf(s) : super.getSuccsOf(s);
    }
New to GrepCode? Check out our FAQ X