Package org.candle.decompiler.intermediate.graph.enhancer

Source Code of org.candle.decompiler.intermediate.graph.enhancer.ExpressionEnhancer

package org.candle.decompiler.intermediate.graph.enhancer;

import org.apache.bcel.generic.ObjectType;
import org.apache.commons.lang.StringUtils;
import org.candle.decompiler.intermediate.code.StatementIntermediate;
import org.candle.decompiler.intermediate.expression.Expression;
import org.candle.decompiler.intermediate.expression.ASTListener;
import org.candle.decompiler.intermediate.expression.MethodInvocation;
import org.candle.decompiler.intermediate.expression.NewInstance;
import org.candle.decompiler.intermediate.graph.GraphIntermediateVisitor;
import org.candle.decompiler.intermediate.graph.context.IntermediateGraphContext;

public class ExpressionEnhancer extends GraphIntermediateVisitor {

  public ExpressionEnhancer(IntermediateGraphContext igc) {
    super(igc);
  }
 
  @Override
  public void visitStatementIntermediate(StatementIntermediate line) {
    Expression exp = line.getExpression();
   
    //ok, now we can visit the expression...
    exp.visit(new ASTListener() {
     
      @Override
      public void accept(Expression e) {
        if(e instanceof NewInstance) {
          if(((NewInstance) e).getType() instanceof ObjectType) {
            ObjectType obj = (ObjectType)((NewInstance) e).getType();
            if(StringUtils.equals("java.lang.StringBuilder", obj.getClassName())) {
              System.out.println(obj.getClassName());
            }
           
          }
        }
      }
    });
   
  }

}
TOP

Related Classes of org.candle.decompiler.intermediate.graph.enhancer.ExpressionEnhancer

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.