Package org.apache.bcel.generic

Examples of org.apache.bcel.generic.INVOKESPECIAL


             "<init>",
             "(" + TRANSLET_INTF_SIG
             + DOM_INTF_SIG
             + NODE_ITERATOR_SIG
             + ")V");
  il.append(new INVOKESPECIAL(index));
  il.append(RETURN);
 
  classGen.addMethod(cons);
    }
View Full Code Here


  il.append(new NEW(cpg.addClass(_className)));
  il.append(DUP);
  il.append(classGen.loadTranslet());
  il.append(methodGen.loadDOM());
  il.append(methodGen.loadIterator());
  il.append(new INVOKESPECIAL(index));

  // Initialize closure variables
  for (int i = 0; i < closureLen; i++) {
      final VariableRefBase varRef = (VariableRefBase) _closureVars.get(i);
      final VariableBase var = varRef.getVariable();
View Full Code Here

  final InstructionList il = methodGen.getInstructionList();
  il.append(new NEW(cpg.addClass(DOUBLE_CLASS)));
  il.append(DUP_X2);
  il.append(DUP_X2);
  il.append(POP);
  il.append(new INVOKESPECIAL(cpg.addMethodref(DOUBLE_CLASS,
                 "<init>", "(D)V")));
    }
View Full Code Here

  compileFilter(classGen, methodGen);
 
  // Create new instance of filter
  il.append(new NEW(cpg.addClass(_className)));
  il.append(DUP);
  il.append(new INVOKESPECIAL(cpg.addMethodref(_className,
                 "<init>", "()V")));

  // Initialize closure variables
  final int length = (_closureVars == null) ? 0 : _closureVars.size();
View Full Code Here

  il.append(DUP);
        filterTemp.setEnd(il.append(new ALOAD(filterTemp.getIndex())));
        pathTemp.setEnd(il.append(new ALOAD(pathTemp.getIndex())));

  // Initialize StepIterator with iterators from the stack
  il.append(new INVOKESPECIAL(initSI));

  // This is a special case for the //* path with or without predicates
        if (_hasDescendantAxis) {
      final int incl = cpg.addMethodref(NODE_ITERATOR_BASE,
                "includeSelf",
View Full Code Here

  // Create the UnionIterator and leave it on the stack
  il.append(new NEW(cpg.addClass(UNION_ITERATOR_CLASS)));
  il.append(DUP);
  il.append(methodGen.loadDOM());
  il.append(new INVOKESPECIAL(init));

  // Add the various iterators to the UnionIterator
  final int length = _components.length;
  for (int i = 0; i < length; i++) {
      _components[i].translate(classGen, methodGen);
View Full Code Here

  int index = cpg.addMethodref(DOM_IMPL, "<init>", "(I)V");
  il.append(new NEW(cpg.addClass(DOM_IMPL)));
  il.append(DUP);
  il.append(DUP);
  il.append(new PUSH(cpg, RTF_INITIAL_SIZE));
  il.append(new INVOKESPECIAL(index));

  // Overwrite old handler with DOM handler
  index = cpg.addMethodref(DOM_IMPL,
         "getOutputDomBuilder",
         "()" + TRANSLET_OUTPUT_SIG);

  il.append(new INVOKEVIRTUAL(index));
  il.append(DUP);
  il.append(methodGen.storeHandler());

  // Call startDocument on the new handler
  il.append(methodGen.startDocument());

  // Instantiate result tree fragment
  translateContents(classGen, methodGen);

  // Call endDocument on the new handler
  il.append(methodGen.loadHandler());
  il.append(methodGen.endDocument());

  // Check if we need to wrap the DOMImpl object in a DOMAdapter object
  if (!DOM_CLASS.equals(DOM_IMPL_CLASS)) {
      // new org.apache.xalan.xsltc.dom.DOMAdapter(DOMImpl,String[]);
      index = cpg.addMethodref(DOM_ADAPTER_CLASS,
             "<init>",
             "("+DOM_IMPL_SIG+
             "["+STRING_SIG+
             "["+STRING_SIG+")V");
      il.append(new NEW(cpg.addClass(DOM_ADAPTER_CLASS)));
      il.append(new DUP_X1());
      il.append(SWAP);

      /*
       * Give the DOM adapter an empty type mapping if the nodeset
       * extension function is never called.
       */
      if (!stylesheet.callsNodeset()) {
    il.append(new ICONST(0));
    il.append(new ANEWARRAY(cpg.addClass(STRING)));
    il.append(DUP);
    il.append(new INVOKESPECIAL(index));
      }
      else {
    // Push name arrays on the stack
    il.append(ALOAD_0);
    il.append(new GETFIELD(cpg.addFieldref(TRANSLET_CLASS,
             NAMES_INDEX,
             NAMES_INDEX_SIG)));
    il.append(ALOAD_0);
    il.append(new GETFIELD(cpg.addFieldref(TRANSLET_CLASS,
             NAMESPACE_INDEX,
             NAMESPACE_INDEX_SIG)));

    // Initialized DOM adapter
    il.append(new INVOKESPECIAL(index));

    // Add DOM adapter to MultiDOM class by calling addDOMAdapter()
    il.append(DUP);
    il.append(methodGen.loadDOM());
    il.append(new CHECKCAST(cpg.addClass(classGen.getDOMClass())));
View Full Code Here

        int init = cpg.addMethodref(SINGLETON_ITERATOR,
            "<init>", "("+NODE_SIG+")V");
        il.append(new NEW(cpg.addClass(SINGLETON_ITERATOR)));
        il.append(DUP);
        il.append(methodGen.loadContextNode());
        il.append(new INVOKESPECIAL(init));
    }
    return;
      }

      // Special case for /foo/*/bar
 
View Full Code Here

               "("+NODE_ITERATOR_SIG+"I)V");
    il.append(new NEW(cpg.addClass(NTH_ITERATOR_CLASS)));
    il.append(DUP);
    translatePredicates(classGen, methodGen); // recursive call
    predicate.translate(classGen, methodGen);
    il.append(new INVOKESPECIAL(idx));
      }
      else {
    idx = cpg.addMethodref(CURRENT_NODE_LIST_ITERATOR,
               "<init>",
               "("
               + NODE_ITERATOR_SIG
               + CURRENT_NODE_LIST_FILTER_SIG
               + NODE_SIG
               + TRANSLET_SIG
               + ")V");
    // create new CurrentNodeListIterator
    il.append(new NEW(cpg.addClass(CURRENT_NODE_LIST_ITERATOR)));
    il.append(DUP);
    translatePredicates(classGen, methodGen); // recursive call
    predicate.translateFilter(classGen, methodGen);
   
    il.append(methodGen.loadCurrentNode());
    il.append(classGen.loadTranslet());
    if (classGen.isExternal()) {
        final String className = classGen.getClassName();
        il.append(new CHECKCAST(cpg.addClass(className)));
    }
    il.append(new INVOKESPECIAL(idx));
      }
  }
    }
View Full Code Here

            il.append(classGen.loadTranslet());
            il.append(methodGen.loadHandler());
            il.append(methodGen.loadIterator());
            final int method = cpg.addMethodref(classGen.getClassName(),
                                                methodName, ATTR_SET_SIG);
            il.append(new INVOKESPECIAL(method));
        }

  // Translate other used attribute sets first, as local attributes
  // take precedence (last attributes overrides first)
  if (_useSets != null) _useSets.translate(classGen, methodGen);
View Full Code Here

TOP

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

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.