Package org.apache.xpath.objects

Examples of org.apache.xpath.objects.XObject


        Vector varVector = fillVarStack(vs, xpathSupport);               

        Node contextNode = adaptParamsForXalan( vs, n, xpath.trim() );
        xpath = modifiedXPath;
       
        XObject result = JSTLXPathAPI.eval( contextNode, xpath,
        jstlPrefixResolver,xpathSupport, varVector);
        try {
            NodeList nl= JSTLXPathAPI.getNodeList(result);
            return new JSTLNodeList( nl );
        } catch ( JspTagException e ) {
            try {
                //If result can't be converted to NodeList we receive exception
                // In this case we may have single primitive value as the result
                // Populating List with this value ( String, Boolean or Number )

                //System.out.println("JSTLXPathAPI.getNodeList thrown exception:"+ e);
                Vector vector = new Vector();
                Object resultObject = null;
                if ( result.getType()== XObject.CLASS_BOOLEAN ) {
                    resultObject = new Boolean( result.bool());
                } else if ( result.getType()== XObject.CLASS_NUMBER ) {
                    resultObject = new Double( result.num());
                } else if ( result.getType()== XObject.CLASS_STRING ) {
                    resultObject = result.str();
                }

                vector.add( resultObject );
                return new JSTLNodeList ( vector );
            } catch ( TransformerException te ) {
View Full Code Here


        for ( int i=0; i<varVector.size(); i++ ) {
         
            QName varQName = (QName)varVector.elementAt(i);

            try {
                XObject variableValue = vs.getVariableOrParam( xpathSupport, varQName );
                //p("&&&&Variable set to => " + variableValue.toString() );
                //p("&&&&Variable type => " + variableValue.getTypeString() );
                myvs.setGlobalVariable( i, variableValue );

            } catch ( TransformerException te ) {
View Full Code Here

            try {
                Object varObject = getVariableValue(namespace,prefix,localName);


                //XObject varObject = myvs.getVariableOrParam( xpathSupport, varQName);
                XObject newXObject = new XObject( varObject);

                if ( Class.forName("org.w3c.dom.Document").isInstance( varObject) ) {

                    NodeList nl= ((Document)varObject).getChildNodes();
                    // To allow non-welformed document
View Full Code Here

      }

      private strictfp Object evalMathOperation(int op, String owner, int pos) throws Exception {
         int lc = cmp.getFirstChildPos(pos);
         int rc = cmp.getNextOpPos(lc);
         XObject left = (XObject)evaluate(owner, lc);
         XObject right = (XObject)evaluate(owner, rc);

         switch ( op ) {
            case OpCodes.OP_PLUS:  return new XNumber(left.num() + right.num());
            case OpCodes.OP_MINUS: return new XNumber(left.num() - right.num());
            case OpCodes.OP_MULT:  return new XNumber(left.num() * right.num());
            case OpCodes.OP_DIV:   return new XNumber(left.num() / right.num());
            case OpCodes.OP_MOD:   return new XNumber(left.num() % right.num());
            case OpCodes.OP_QUO:   return new XNumber(left.num() / right.num());
            default:               return null; // Won't happen
         }
      }
View Full Code Here

            default:               return null; // Won't happen
         }
      }

      private Object evalUnaryOperation(int op, String owner, int pos) throws Exception {
         XObject val = (XObject)evaluate(owner, cmp.getFirstChildPos(pos));
         switch ( op ) {
            case OpCodes.OP_NEG:    return new XNumber(-val.num());
            case OpCodes.OP_STRING: return new XString(val.str());
            case OpCodes.OP_BOOL:   return new XBoolean(val.bool());
            case OpCodes.OP_NUMBER: return new XNumber(val.num());
            default:                return null; // Won't happen
         }
      }
View Full Code Here

               else
                  ps = nk.name;

               IndexPattern pattern = new IndexPattern(symbols, ps, nsMap);

               XObject obj = (XObject)s;
               Value val1 = new Value(obj.str());

               IndexQuery iq = new IndexQuerySW(pattern, val1);
               return queryIndexes(nk, iq, ps, obj.getType());
            }
         }
         return null;
      }
View Full Code Here

            left = right;
            right = tmp;
         }

         NamedKeys nk = (NamedKeys)left;
         XObject obj = (XObject)right;

         String ps;
         if ( nk.attribute && nk.name.indexOf('@') == -1 )
            ps = owner+"@"+nk.name;
         else
            ps = nk.name;

         IndexQuery iq;
         IndexPattern pattern = new IndexPattern(symbols, ps, nsMap);
         String value = obj.str();

         switch ( op ) {
            case IndexQuery.NEQ: iq = new IndexQueryNEQ(pattern, value); break;
            case IndexQuery.EQ:  iq = new IndexQueryEQ(pattern, value)break;
            case IndexQuery.LEQ: iq = new IndexQueryLEQ(pattern, value); break;
            case IndexQuery.LT:  iq = new IndexQueryLT(pattern, value)break;
            case IndexQuery.GEQ: iq = new IndexQueryGEQ(pattern, value); break;
            case IndexQuery.GT:  iq = new IndexQueryGT(pattern, value)break;
            default:             iq = null; // Won't happen
         }

         return queryIndexes(nk, iq, ps, obj.getType());
      }
View Full Code Here

                new StringReader(xmlContext.getString())));

        // Evaluate the expresion using Xalan.
        getXPathContext();
        xpContext.reset();
        XObject xOb = query.execute(xpContext, docNode, null);

        if (!returnResults)
        {
            // We don't want to return the actual results, we just
            // want to know if there was at least one item in the
            // result sequence.
            if ((xOb instanceof XNodeSet) &&
                (((XNodeSet)xOb).nodelist().getLength() > 0))
            { // If we have a sequence (XNodeSet) of length greater
              // than zero, then we know that at least one item
              // "exists" in the result so return a non-null list.
                return new ArrayList(0);
            }
            else if (!(xOb instanceof XNodeSet))
            // we have a single atomic value, which means the result is
            // non-empty.  So return a non-null list.
                return new ArrayList(0);
            else {
            // return null; caller will take this to mean we have an
            // an empty sequence.
                return null;
            }
        }

        // Else process the results.
        NodeList nodeList = null;
        int numItems = 0;
        if (!(xOb instanceof XNodeSet))
        // then we only have a single (probably atomic) item.
            numItems = 1;
        else {
            nodeList = xOb.nodelist();
            numItems = nodeList.getLength();
        }

        // Return a list of the items contained in the query results.
        ArrayList itemRefs = new ArrayList();
        if (nodeList == null)
        // result is a single, non-node value (ex. it's an atomic number);
        // in this case, just take the string value.
            itemRefs.add(xOb.str());
        else {
            for (int i = 0; i < numItems; i++)
                itemRefs.add(nodeList.item(i));
        }
View Full Code Here

      Configuration table = conf.getChild ("root");
      Configuration[] select = table.getChildren ("select");
      String session_param, type;
      HashMap map = new HashMap();

      XObject xo;
      Node originalnode = null;

      try {

        ResourceIterator results = resultSet.getIterator();

        // Create an XObject to be used in Xpath query
        xo = new XObject();

        // Retrieve the next node
        XMLResource resource = (XMLResource) results.nextResource();

        originalnode = resource.getContentAsDOM();

      }
      catch (Exception e) {
        getLogger ().debug ("DBXMLAUTH: error creating XObject ");
      }


      try {
          for (int i = 0; i < select.length; i ++) {
            try {
              session_param = select[i].getAttribute ("to-session");
              if (session_param != null && !session_param.trim().equals (""))
              {

                  String s = "";

                  try {
                    // Use Xalan xpath parser to extract data
                    xo = XPathAPI.eval(originalnode, "/" + table.getAttribute ("name") + "/" + select[i].getAttribute ("element") );
                    s = xo.toString();
                  }
                  catch (Exception e) {
                  }

                  /* propagate to session */
 
View Full Code Here

    XPathContext xctxt = transformer.getXPathContext();
    CountersTable ctable = transformer.getCountersTable();

    if (null != m_valueExpr)
    {
      XObject countObj = m_valueExpr.execute(xctxt, sourceNode, this);
      //According to Errata E24
      double d_count = java.lang.Math.floor(countObj.num()+ 0.5);
      if (Double.isNaN(d_count)) return "NaN";
      else if (d_count < 0 && Double.isInfinite(d_count)) return "-Infinity";
      else if (Double.isInfinite(d_count)) return "Infinity";
      else if (d_count == 0) return "0";
      else{
View Full Code Here

TOP

Related Classes of org.apache.xpath.objects.XObject

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.