Main Page   Packages   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members  

LogicalAndExpr.java

00001 package edu.ksu.cis.bandera.jext;
00002 
00003 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
00004  * Bandera, a Java(TM) analysis and transformation toolkit           *
00005  * Copyright (C) 2000   Robby (robby@cis.ksu.edu)                    *
00006  * All rights reserved.                                              *
00007  *                                                                   *
00008  * This work was done as a project in the SAnToS Laboratory,         *
00009  * Department of Computing and Information Sciences, Kansas State    *
00010  * University, USA (http://www.cis.ksu.edu/santos).                  *
00011  * It is understood that any modification not identified as such is  *
00012  * not covered by the preceding statement.                           *
00013  *                                                                   *
00014  * This work is free software; you can redistribute it and/or        *
00015  * modify it under the terms of the GNU Library General Public       *
00016  * License as published by the Free Software Foundation; either      *
00017  * version 2 of the License, or (at your option) any later version.  *
00018  *                                                                   *
00019  * This work is distributed in the hope that it will be useful,      *
00020  * but WITHOUT ANY WARRANTY; without even the implied warranty of    *
00021  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU *
00022  * Library General Public License for more details.                  *
00023  *                                                                   *
00024  * You should have received a copy of the GNU Library General Public *
00025  * License along with this toolkit; if not, write to the             *
00026  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,      *
00027  * Boston, MA  02111-1307, USA.                                      *
00028  *                                                                   *
00029  * Java is a trademark of Sun Microsystems, Inc.                     *
00030  *                                                                   *
00031  * To submit a bug report, send a comment, or get the latest news on *
00032  * this project and other SAnToS projects, please visit the web-site *
00033  *                http://www.cis.ksu.edu/santos                      *
00034  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
00035 import ca.mcgill.sable.soot.*;
00036 import ca.mcgill.sable.soot.jimple.*;
00037 import ca.mcgill.sable.soot.grimp.*;
00038 import ca.mcgill.sable.util.*;
00039 import java.util.*;
00040 public class LogicalAndExpr implements BinopExpr, ToBriefString {
00041     protected ValueBox op1Box;
00042     protected ValueBox op2Box;
00043 /**
00044  * 
00045  * @param v1 ca.mcgill.sable.soot.jimple.Value
00046  * @param v2 ca.mcgill.sable.soot.jimple.Value
00047  */
00048 public LogicalAndExpr(Value v1, Value v2) {
00049     this(Grimp.v().newArgBox(v1), Grimp.v().newArgBox(v2));
00050 }
00051 /**
00052  * 
00053  * @param valueBox1 ca.mcgill.sable.soot.jimple.ValueBox
00054  * @param valueBox2 ca.mcgill.sable.soot.jimple.ValueBox
00055  */
00056 public LogicalAndExpr(ValueBox valueBox1, ValueBox valueBox2) {
00057     op1Box = valueBox1;
00058     op2Box = valueBox2;
00059 }
00060 /**
00061  * 
00062  * @param sw ca.mcgill.sable.util.Switch
00063  */
00064 public void apply(Switch sw) {
00065     ((BanderaExprSwitch) sw).caseLogicalAndExpr(this);
00066 }
00067 /**
00068  * getOp1 method comment.
00069  */
00070 public Value getOp1() {
00071     return op1Box.getValue();
00072 }
00073 /**
00074  * getOp1Box method comment.
00075  */
00076 public ValueBox getOp1Box() {
00077     return op1Box;
00078 }
00079 /**
00080  * getOp2 method comment.
00081  */
00082 public Value getOp2() {
00083     return op2Box.getValue();
00084 }
00085 /**
00086  * getOp2Box method comment.
00087  */
00088 public ValueBox getOp2Box() {
00089     return op2Box;
00090 }
00091 /**
00092  * getSymbol method comment.
00093  */
00094 public String getSymbol() {
00095     return " && ";
00096 }
00097 /**
00098  * getType method comment.
00099  */
00100 public ca.mcgill.sable.soot.Type getType() {
00101     return ca.mcgill.sable.soot.BooleanType.v();
00102 }
00103 /**
00104  * getUseBoxes method comment.
00105  */
00106 public ca.mcgill.sable.util.List getUseBoxes() {
00107     ca.mcgill.sable.util.List list = new ca.mcgill.sable.util.ArrayList();
00108 
00109     list.addAll(op1Box.getValue().getUseBoxes());
00110     list.add(op1Box);
00111     list.addAll(op2Box.getValue().getUseBoxes());
00112     list.add(op2Box);
00113 
00114     return list;
00115 }
00116 /**
00117  * setOp1 method comment.
00118  */
00119 public void setOp1(Value op1) {
00120     op1Box.setValue(op1);
00121 }
00122 /**
00123  * setOp2 method comment.
00124  */
00125 public void setOp2(Value op2) {
00126     op2Box.setValue(op2);
00127 }
00128 /**
00129  * toBriefString method comment.
00130  */
00131 public String toBriefString() {
00132     Value op1 = op1Box.getValue(), op2 = op2Box.getValue();
00133     String leftOp = ((ToBriefString)op1).toBriefString(), 
00134         rightOp = ((ToBriefString)op2).toBriefString();
00135 
00136     return leftOp + getSymbol() + rightOp;
00137 }
00138 /**
00139  * 
00140  * @return java.lang.String
00141  */
00142 public String toString() {
00143     Value op1 = op1Box.getValue(), op2 = op2Box.getValue();
00144     String leftOp = op1.toString(), rightOp = op2.toString();
00145 
00146     return leftOp + getSymbol() + rightOp;
00147 }
00148 }

Generated at Thu Feb 7 06:49:59 2002 for Bandera by doxygen1.2.10 written by Dimitri van Heesch, © 1997-2001