Package net.sf.rej.java.instruction

Examples of net.sf.rej.java.instruction.Parameters


            LocalVariableTableAttribute lvs = dc.getLocalVariableTable();
            ConstantPool pool = dc.getConstantPool();
          sd.drawIndent();
          sd.drawIndent();
            sd.drawInstruction(inst.getMnemonic());
            Parameters params = inst.getParameters();
            for (int i = 0; i < params.getCount(); i++) {
                try {
                    switch (params.getType(i)) {
                        case TYPE_LOCAL_VARIABLE:
                        case TYPE_LOCAL_VARIABLE_WIDE:
                        case TYPE_LOCAL_VARIABLE_READONLY:
                            if (lvs == null) {
                                sd.drawDefault(" " + params.getInt(i));
                            } else {
                                LocalVariable lv = lvs.getLocalVariable(params.getInt(i), cr.getPosition());
                                if (lv == null) {
                                    sd.drawDefault(" " + params.getInt(i));
                                } else {
                                    sd.drawDefault(" " + lv.getName());
                                }
                            }
                            break;
                        case TYPE_CONSTANT_POOL_METHOD_REF: {
                          int index = params.getInt(i);
                            ConstantPoolInfo cpi = pool.get(index);
                            renderMethodRef(sd, ia, (RefInfo) cpi, index);
                            break;
                        }
                        case TYPE_CONSTANT_POOL_FIELD_REF: {
                          int index = params.getInt(i);
                            ConstantPoolInfo cpi = pool.get(index);
                            renderFieldRef(sd, ia, (RefInfo) cpi, index);
                            break;
                        }
                        case TYPE_CONSTANT_POOL_CLASS: {
                          int index = params.getInt(i);
                            ConstantPoolInfo cpi = pool.get(index);
                            renderClassRef(sd, ia, (ClassInfo) cpi, index);
                            break;
                        }
                        case TYPE_CONSTANT_POOL_CONSTANT: {
                           int index = params.getInt(i);
                           ConstantPoolInfo cpi = pool.get(index);
                           renderConstant(sd, cpi, index);
                           break;
                        }
                        case TYPE_LABEL: {
                            Label label = (Label) params.getObject(i);
                            sd.drawDefault(" " + label.getId());
                            break;
                        }
                        case TYPE_SWITCH: {
                          @SuppressWarnings("unchecked")
                            Map<Integer, Label> offsets = (Map<Integer, Label>) params.getObject(i);
                            for (Entry<Integer, Label> entry : offsets.entrySet()) {
                                sd.drawDefault(" " + entry.getKey() + "=" + entry.getValue().getId());
                            }
                            break;
                        }
                        case TYPE_CONSTANT:
                        case TYPE_CONSTANT_READONLY:
                        case TYPE_CONSTANT_WIDE: {
                            sd.drawDefault(" " + params.getInt(i));
                            break;
                        }
                        case TYPE_ARRAYTYPE: {
                            sd.drawDefault(" " + _newarray.getTypeName(params.getInt(i)));
                            break;
                        }
                    }
                } catch (Exception ee) {
                  logger.warning("Error rendering instruction. Instruction = " + inst.getMnemonic() + " params = " + params);
View Full Code Here


    }

    private void updateEditor() {
        this.paramPanel.removeAll();

        Parameters params = this.instruction.getParameters();
        if (params == null) {
          throw new RuntimeException("Instruction " + this.instruction.getClass().getName() + " fails the instruction contract by returning null on a call to getParameters()");
        }
        this.choosers.clear();
        for (int i = 0; i < params.getCount(); i++) {
            switch (params.getType(i)) {
            case TYPE_LOCAL_VARIABLE_WIDE:
            case TYPE_LOCAL_VARIABLE: {
                LocalVariableChooser chooser = new LocalVariableChooser();
                this.choosers.add(chooser);
                 LocalVariable lv = null;
                if (lvTable != null) {
                  chooser.setLocalVariable(this.lvTable);
                   lv = lvTable.getLocalVariable(params.getInt(i), this.position);
                 }
                 if (lv != null) {
                   chooser.setSelected(lv);
                 } else {
                   chooser.setSelected(String.valueOf(params.getInt(i)));
                 }
                chooser.setEditable(true);
                addToPanel(this.paramPanel, chooser, i);
                break;
            }
            case TYPE_LOCAL_VARIABLE_READONLY: {
                LocalVariableChooser chooser = new LocalVariableChooser();
                this.choosers.add(chooser);
                if (this.lvTable != null) {
                    chooser.setLocalVariable(this.lvTable);
                    LocalVariable lv = this.lvTable.getLocalVariable(params.getInt(i), this.position);
                     if (lv != null) {
                       chooser.setSelected(lv);
                     } else {
                       chooser.setSelected(String.valueOf(params.getInt(i)));
                     }
                }
                chooser.setEditable(false);
                chooser.setReadOnly();
                addToPanel(this.paramPanel, chooser, i);
                break;
            }
            case TYPE_CONSTANT_WIDE:
            case TYPE_CONSTANT: {
                ConstantChooser chooser = new ConstantChooser();
                this.choosers.add(chooser);
                chooser.setValue(params.getInt(i));
                addToPanel(this.paramPanel, chooser, i);
                break;
            }
            case TYPE_CONSTANT_POOL_METHOD_REF: {
                MethodChooser chooser = new MethodChooser(this);
                this.choosers.add(chooser);
                chooser.setClassFile(this.cf);
                chooser.setConstantPool(this.pool);
                if (!insertMode) {
                  chooser.setSelected(this.pool.get(params.getInt(i)));
                }
                chooser.setEditable(false);
                addToPanel(this.paramPanel, chooser, i);
                break;
            }
            case TYPE_CONSTANT_POOL_FIELD_REF: {
                FieldChooser chooser = new FieldChooser(this);
                this.choosers.add(chooser);
                chooser.setClassFile(this.cf);
                chooser.setConstantPool(this.pool);
                if (!insertMode) {
                  chooser.setSelected(this.pool.get(params.getInt(i)));
                }
                chooser.setEditable(false);
                addToPanel(this.paramPanel, chooser, i);
                break;
            }
            case TYPE_CONSTANT_POOL_CLASS: {
                ClassChooser chooser = new ClassChooser(this);
                this.choosers.add(chooser);
                chooser.setClassFile(this.cf);
                chooser.setConstantPool(this.pool);
                if (!insertMode) {
                  chooser.setSelected(this.pool.get(params.getInt(i)));
                }
                chooser.setEditable(false);
                addToPanel(this.paramPanel, chooser, i);
                break;
            }
            case TYPE_ARRAYTYPE: {
                ArrayTypeChooser chooser = new ArrayTypeChooser();
                this.choosers.add(chooser);
                if (!insertMode) {
                  chooser.setSelected(params.getInt(i));
                }
                chooser.setEditable(false);
                addToPanel(this.paramPanel, chooser, i);
                break;
            }
            case TYPE_CONSTANT_POOL_CONSTANT: {
                ConstantpoolConstantChooser chooser = new ConstantpoolConstantChooser();
                this.choosers.add(chooser);
                chooser.setConstantPool(this.pool);
                if (!insertMode) {
                  chooser.setSelected(this.pool.get(params.getInt(i)));
                }
                chooser.setEditable(false);
                addToPanel(this.paramPanel, chooser, i);
                break;
            }
View Full Code Here

            SystemFacade.getInstance().performAction(group);
    }
  }
 
  private void modifyInstructionParameters(List choosers, GroupAction group, Instruction instruction) {
    Parameters params = instruction.getParameters();
        for (int i = 0; i < params.getCount(); i++) {
            switch (params.getType(i)) {
            case TYPE_LOCAL_VARIABLE_WIDE:
            case TYPE_LOCAL_VARIABLE: {
                LocalVariableChooser chooser = (LocalVariableChooser) choosers.get(i);
                group.add(new ParamModifyAction(instruction, i, chooser.getValue()));
                break;
View Full Code Here

    }
  }

  @Override
  public void processInstruction(IterationContext sc, Instruction instruction) {
    Parameters params = instruction.getParameters();
    for (int i = 0; i < params.getCount(); i++) {
      if (params.getType(i) == ParameterType.TYPE_CONSTANT_POOL_FIELD_REF) {
        ConstantPoolInfo cpi = sc.getDc().getConstantPool().get(
            params.getInt(i));
        RefInfo ri = (RefInfo) cpi;
        boolean classNamesMatch = ri.getClassName().equals(className);
        boolean fieldNamesMatch = ri.getTargetName().equals(fieldName);
        boolean descriptorsMatch = ri.getDescriptor().equals(desc);
View Full Code Here

    }
  }

  @Override
  public void processInstruction(IterationContext sc, Instruction instruction) {
    Parameters params = instruction.getParameters();
    for (int i = 0; i < params.getCount(); i++) {
      if (params.getType(i) == ParameterType.TYPE_CONSTANT_POOL_METHOD_REF) {
        ConstantPoolInfo cpi = sc.getDc().getConstantPool().get(
            params.getInt(i));
        RefInfo ri = (RefInfo) cpi;
        boolean classNamesMatch = ri.getClassName().equals(className);
        boolean methodNamesMatch = ri.getTargetName()
            .equals(methodName);
        boolean descriptorsMatch = ri.getDescriptor().equals(desc);
View Full Code Here

TOP

Related Classes of net.sf.rej.java.instruction.Parameters

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.