Package org.apache.bcel.generic

Examples of org.apache.bcel.generic.GETFIELD


               NODE_COUNTER_SIG);
  }

  // Check if field is initialized (runtime)
  il.append(classGen.loadTranslet());
  il.append(new GETFIELD(fieldIndexes[_level]));
  final BranchHandle ifBlock1 = il.append(new IFNONNULL(null));

  // Create an instance of DefaultNodeCounter
  index = cpg.addMethodref(ClassNames[_level],
         "getDefaultNodeCounter",
         "(" + TRANSLET_INTF_SIG
         + DOM_INTF_SIG
         + NODE_ITERATOR_SIG
         + ")" + NODE_COUNTER_SIG);
  il.append(classGen.loadTranslet());
  il.append(methodGen.loadDOM());
  il.append(methodGen.loadIterator());
  il.append(new INVOKESTATIC(index));
  il.append(DUP);

  // Store the node counter in the field
  il.append(classGen.loadTranslet());
  il.append(SWAP);
  il.append(new PUTFIELD(fieldIndexes[_level]));
  final BranchHandle ifBlock2 = il.append(new GOTO(null));

  // Backpatch conditionals
  ifBlock1.setTarget(il.append(classGen.loadTranslet()));
  il.append(new GETFIELD(fieldIndexes[_level]));
 
  ifBlock2.setTarget(il.append(NOP));
    }
View Full Code Here


            Util.getJCRefType(NODE_ITERATOR_SIG),
            null, null);
  field = cpg.addFieldref(NODE_COUNTER, "_iterator",
        ITERATOR_FIELD_SIG);
  il.append(ALOAD_0); // 'this' pointer on stack
  il.append(new GETFIELD(field));
  il.append(new ASTORE(local.getIndex()));
  matchGen.setIteratorIndex(local.getIndex());
 
  // Get NodeCounter._translet and store locally
  local = matchGen.addLocalVariable("translet",
          Util.getJCRefType(TRANSLET_SIG),
          null, null);
  field = cpg.addFieldref(NODE_COUNTER, "_translet",
        "Lorg/apache/xalan/xsltc/Translet;");
  il.append(ALOAD_0); // 'this' pointer on stack
  il.append(new GETFIELD(field));
  il.append(new CHECKCAST(cpg.addClass(TRANSLET_CLASS)));
  il.append(new ASTORE(local.getIndex()));
  nodeCounterGen.setTransletIndex(local.getIndex());

  // Get NodeCounter._document and store locally
  local = matchGen.addLocalVariable("document",
            Util.getJCRefType(DOM_INTF_SIG),
            null, null);
  field = cpg.addFieldref(_className, "_document", DOM_INTF_SIG);
  il.append(ALOAD_0); // 'this' pointer on stack
  il.append(new GETFIELD(field));
  // Make sure we have the correct DOM type on the stack!!!
  il.append(new ASTORE(local.getIndex()));
  matchGen.setDomIndex(local.getIndex());
    }
View Full Code Here

      il.append(classGen.loadTranslet());
      if (classGen.isExternal()) {
    il.append(new CHECKCAST(cpg.addClass(className)));
      }
      il.append(DUP);
      il.append(new GETFIELD(cpg.addFieldref(className, "_dom",
               DOM_INTF_SIG)));

      // Create a new instance of a StringValueHandler
      int index = cpg.addMethodref(STRING_VALUE_HANDLER, "<init>", "()V");
      il.append(new NEW(cpg.addClass(STRING_VALUE_HANDLER)));
View Full Code Here

  // DOM adapters containing a result tree are not initialised with
  // translet-type to DOM-type mapping. This must be done now for
  // XPath expressions and patterns to work for the iterator we create.
  il.append(classGen.loadTranslet()); // get names array
  il.append(new GETFIELD(cpg.addFieldref(TRANSLET_CLASS,
                 NAMES_INDEX,
                 NAMES_INDEX_SIG)));
  il.append(classGen.loadTranslet()); // get uris array
  il.append(new GETFIELD(cpg.addFieldref(TRANSLET_CLASS,
                 URIS_INDEX,
                 URIS_INDEX_SIG)));
  il.append(classGen.loadTranslet()); // get types array
  il.append(new GETFIELD(cpg.addFieldref(TRANSLET_CLASS,
                 TYPES_INDEX,
                 TYPES_INDEX_SIG)));
  il.append(classGen.loadTranslet()); // get namespaces array
  il.append(new GETFIELD(cpg.addFieldref(TRANSLET_CLASS,
                 NAMESPACE_INDEX,
                 NAMESPACE_INDEX_SIG)));
  // Pass the type mappings to the DOM adapter
  final int mapping = cpg.addInterfaceMethodref(DOM_INTF,
                  "setupMapping",
View Full Code Here

            _name.translate(classGen, methodGen);// 2nd arg
       
        }
       
  il.append(classGen.loadTranslet());
  il.append(new GETFIELD(cpg.addFieldref(TRANSLET_CLASS,
                 "stringValueHandler",
                 STRING_VALUE_HANDLER_SIG)));
  il.append(DUP);
  il.append(methodGen.storeHandler());
View Full Code Here

           Util.getJCRefType(DOM_INTF_SIG),
           null, null);
  final String className = classGen.getClassName();
  il.append(filterGen.loadTranslet());
  il.append(new CHECKCAST(cpg.addClass(className)));
  il.append(new GETFIELD(cpg.addFieldref(className,
                 DOM_FIELD, DOM_INTF_SIG)));
  il.append(new ASTORE(local.getIndex()));

  // Store the dom index in the test generator
  testGen.setDomIndex(local.getIndex());
View Full Code Here

      }

      // Use getfield if in an inner class
      if (variableClosure != null) {
    il.append(ALOAD_0);
    il.append(new GETFIELD(
        cpg.addFieldref(variableClosure.getInnerClassName(),
      var.getEscapedName(), varType.toSignature())));
      }
      else {
    // Use a load of instruction if in translet class
View Full Code Here

        final String keySig = compileBuildKeys(classGen);
        final int    keyIdx = cpg.addMethodref(getClassName(),
                                               "buildKeys", keySig);
        il.append(classGen.loadTranslet());     // The 'this' pointer
        il.append(classGen.loadTranslet());
        il.append(new GETFIELD(domField));      // The DOM reference
        il.append(transf.loadIterator());       // Not really used, but...
        il.append(transf.loadHandler());        // The output handler
        il.append(new PUSH(cpg, DTM.ROOT_NODE)); // Start with the root node
        il.append(new INVOKEVIRTUAL(keyIdx));


    // Look for top-level elements that need handling
  final Enumeration toplevel = elements();
  if ((_globals.size() > 0) || (toplevel.hasMoreElements())) {
      // Compile method for handling top-level elements
      final String topLevelSig = compileTopLevel(classGen, toplevel);
      // Get a reference to that method
      final int topLevelIdx = cpg.addMethodref(getClassName(),
                 "topLevel",
                 topLevelSig);
      // Push all parameters on the stack and call topLevel()
      il.append(classGen.loadTranslet()); // The 'this' pointer
      il.append(classGen.loadTranslet());
      il.append(new GETFIELD(domField))// The DOM reference
      il.append(transf.loadIterator());
      il.append(transf.loadHandler());    // The output handler
      il.append(new INVOKEVIRTUAL(topLevelIdx));
  }
 



  // start document
  il.append(transf.loadHandler());
  il.append(transf.startDocument());

  // push first arg for applyTemplates
  il.append(classGen.loadTranslet());
  // push translet for GETFIELD to get DOM arg
  il.append(classGen.loadTranslet());
  il.append(new GETFIELD(domField));
  // push remaining 2 args
  il.append(transf.loadIterator());
  il.append(transf.loadHandler());
  il.append(new INVOKEVIRTUAL(applyTemplates));
  // endDocument
View Full Code Here

  if ((elementCount() == 1) && (elementAt(0) instanceof Text)) {
      il.append(new PUSH(cpg, ((Text)elementAt(0)).getText()));
  }
  else {
      il.append(classGen.loadTranslet());
      il.append(new GETFIELD(cpg.addFieldref(TRANSLET_CLASS,
               "stringValueHandler",
               STRING_VALUE_HANDLER_SIG)));
      il.append(DUP);
      il.append(methodGen.storeHandler());
      // translate contents with substituted handler
View Full Code Here

     
      il.append(DUP);

      // Get field from factory class
      il.append(ALOAD_0);
      il.append(new GETFIELD(
    cpg.addFieldref(className,
        var.getEscapedName(), varType.toSignature())));

      // Put field in record class
      il.append(new PUTFIELD(
View Full Code Here

TOP

Related Classes of org.apache.bcel.generic.GETFIELD

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.