Package com.google.test.metric.method.op.stack

Examples of com.google.test.metric.method.op.stack.Transform


  public void visitJumpInsn(final int opcode, final Label label) {
    if (opcode == Opcodes.GOTO) {
      recorder.add(new Runnable() {
        public void run() {
          block.addOp(new Transform(lineNumber, "GOTO", null, null, null));
          block.unconditionalGoto(label);
        }
      });
    } else if (opcode == Opcodes.JSR) {
      recorder.add(new Runnable() {
        public void run() {
          block.jumpSubroutine(label, lineNumber);
        }
      });
    } else {
      recorder.add(new Runnable() {
        public void run() {
          cyclomaticComplexity.add(lineNumber);
          switch (opcode) {
            case Opcodes.IFEQ :
              if1("IFEQ");
              break;
            case Opcodes.IFNE :
              if1("IFNE");
              break;
            case Opcodes.IFLT :
              if1("IFLT");
              break;
            case Opcodes.IFGE :
              if1("IFGE");
              break;
            case Opcodes.IFGT :
              if1("IFGT");
              break;
            case Opcodes.IFLE :
              if1("IFLE");
              break;
            case Opcodes.IFNONNULL :
              if1("IFNONNULL");
              break;
            case Opcodes.IFNULL :
              if1("IFNULL");
              break;
            case Opcodes.IF_ACMPEQ :
              if2("IF_ACMPEQ");
              break;
            case Opcodes.IF_ACMPNE :
              if2("IF_ACMPNE");
              break;
            case Opcodes.IF_ICMPEQ :
              if2("IF_ICMPEQ");
              break;
            case Opcodes.IF_ICMPGE :
              if2("IF_ICMPGE");
              break;
            case Opcodes.IF_ICMPGT :
              if2("IF_ICMPGT");
              break;
            case Opcodes.IF_ICMPLE :
              if2("IF_ICMPLE");
              break;
            case Opcodes.IF_ICMPLT :
              if2("IF_ICMPLT");
              break;
            case Opcodes.IF_ICMPNE :
              if2("IF_ICMPNE");
              break;
            default :
              throw new UnsupportedOperationException("" + opcode);
          }
          block.conditionalGoto(label);
        }

        private void if1(String name) {
          block.addOp(new Transform(lineNumber, name, JavaType.INT, null, null));
        }

        private void if2(String name) {
          block.addOp(new Transform(lineNumber, name, JavaType.INT, JavaType.INT, null));
        }
      });
    }
  }
View Full Code Here


            Constant constant = new Constant("new", type);
            block.addOp(new Load(lineNumber, constant));
            break;
          case Opcodes.NEWARRAY :
          case Opcodes.ANEWARRAY :
            block.addOp(new Transform(lineNumber, "newarray", JavaType.INT, null,
                type.toArray()));
            break;
          case Opcodes.INSTANCEOF :
            block.addOp(new Transform(lineNumber, "instanceof", JavaType.OBJECT,
                null, JavaType.INT));
            break;
          case Opcodes.CHECKCAST :
            block
                .addOp(new Transform(lineNumber, "checkcast", type, null, type));
            break;
          default :
            throw new UnsupportedOperationException("" + opcode);
        }
      }
View Full Code Here

        });
        break;
      case Opcodes.NOP:
        recorder.add(new Runnable(){
          public void run() {
            block.addOp(new Transform(lineNumber, "NOP", null, null, null));
          }
        });
    }
  }
View Full Code Here

  private void operation(final String operation, final Type op1,
      final Type op2, final Type result) {
    recorder.add(new Runnable() {
      public void run() {
        block.addOp(new Transform(lineNumber, operation, op1, op2, result));
      }
    });
  }
View Full Code Here

  }

  private void newArray(final int operand, final Type type) {
    recorder.add(new Runnable() {
      public void run() {
        block.addOp(new Transform(lineNumber, "newarray", JavaType.INT, null, type
            .toArray()));
      }
    });
  }
View Full Code Here

  public void visitJumpInsn(final int opcode, final Label label) {
    if (opcode == Opcodes.GOTO) {
      recorder.add(new Runnable() {
        public void run() {
          block.addOp(new Transform(lineNumber, "GOTO", null, null, null));
          block.unconditionalGoto(label);
        }
      });
    } else {
      cyclomaticComplexity++;
      recorder.add(new Runnable() {
        public void run() {
          switch (opcode) {
            case Opcodes.IFEQ :
              if1("IFEQ");
              break;
            case Opcodes.IFNE :
              if1("IFNE");
              break;
            case Opcodes.IFLT :
              if1("IFLT");
              break;
            case Opcodes.IFGE :
              if1("IFGE");
              break;
            case Opcodes.IFGT :
              if1("IFGT");
              break;
            case Opcodes.IFLE :
              if1("IFLE");
              break;
            case Opcodes.IFNONNULL :
              if1("IFNONNULL");
              break;
            case Opcodes.IFNULL :
              if1("IFNULL");
              break;
            case Opcodes.IF_ACMPEQ :
              if2("IF_ACMPEQ");
              break;
            case Opcodes.IF_ACMPNE :
              if2("IF_ACMPNE");
              break;
            case Opcodes.IF_ICMPEQ :
              if2("IF_ICMPEQ");
              break;
            case Opcodes.IF_ICMPGE :
              if2("IF_ICMPGE");
              break;
            case Opcodes.IF_ICMPGT :
              if2("IF_ICMPGT");
              break;
            case Opcodes.IF_ICMPLE :
              if2("IF_ICMPLE");
              break;
            case Opcodes.IF_ICMPLT :
              if2("IF_ICMPLT");
              break;
            case Opcodes.IF_ICMPNE :
              if2("IF_ICMPNE");
              break;
            case Opcodes.JSR :
              // TODO (misko): This is not quite right.
              block.jumpSubroutine(label, lineNumber);
              break;
            default :
              throw new UnsupportedOperationException("" + opcode);
          }
          block.conditionalGoto(label);
        }

        private void if1(String name) {
          block.addOp(new Transform(lineNumber, name, Type.INT, null, null));
        }

        private void if2(String name) {
          block.addOp(new Transform(lineNumber, name, Type.INT, Type.INT, null));
        }
      });
    }
  }
View Full Code Here

            Constant constant = new Constant("new", type);
            block.addOp(new Load(lineNumber, constant));
            break;
          case Opcodes.NEWARRAY :
          case Opcodes.ANEWARRAY :
            block.addOp(new Transform(lineNumber, "newarray", Type.INT, null,
                type.toArray()));
            break;
          case Opcodes.INSTANCEOF :
            block.addOp(new Transform(lineNumber, "instanceof", Type.OBJECT,
                null, Type.INT));
            break;
          case Opcodes.CHECKCAST :
            block
                .addOp(new Transform(lineNumber, "checkcast", type, null, type));
            break;
          default :
            throw new UnsupportedOperationException("" + opcode);
        }
      }
View Full Code Here

  private void operation(final String operation, final Type op1,
      final Type op2, final Type result) {
    recorder.add(new Runnable() {
      public void run() {
        block.addOp(new Transform(lineNumber, operation, op1, op2, result));
      }
    });
  }
View Full Code Here

  }

  private void newArray(final int operand, final Type type) {
    recorder.add(new Runnable() {
      public void run() {
        block.addOp(new Transform(lineNumber, "newarray", Type.INT, null, type
            .toArray()));
      }
    });
  }
View Full Code Here

TOP

Related Classes of com.google.test.metric.method.op.stack.Transform

Copyright © 2018 www.massapicom. 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.