Examples of DTMManager


Examples of org.apache.xml.dtm.DTMManager

   */
  private void buildErrorDocument( ExpressionContext exprContext, SQLException excp )
  {
    try
    {
      DTMManager mgr =
        ((XPathContext.XPathExpressionContext)exprContext).getDTMManager();
      DTMManagerDefault mgrDefault = (DTMManagerDefault) mgr;
      int dtmIdent = mgrDefault.getFirstFreeDTMID();

      m_Error = new SQLErrorDocument(mgr, dtmIdent << DTMManager.IDENT_DTM_NODE_BITS, excp);
View Full Code Here

Examples of org.apache.xml.dtm.DTMManager

   */
  private void buildErrorDocument( ExpressionContext exprContext, Exception excp )
  {
    try
    {
      DTMManager mgr =
        ((XPathContext.XPathExpressionContext)exprContext).getDTMManager();
      DTMManagerDefault mgrDefault = (DTMManagerDefault) mgr;
      int dtmIdent = mgrDefault.getFirstFreeDTMID();

      m_Error = new SQLErrorDocument(mgr, dtmIdent<<DTMManager.IDENT_DTM_NODE_BITS, excp);
View Full Code Here

Examples of org.apache.xml.dtm.DTMManager

    private static DTMAxisIterator document(DOM newdom,
                                            AbstractTranslet translet,
                                            DOM dom)
        throws Exception
    {
        DTMManager dtmManager = ((MultiDOM)dom).getDTMManager();
        // Need to migrate the cached DTM to the new DTMManager
        if (dtmManager != null && newdom instanceof DTM) {
            ((DTM)newdom).migrateTo(dtmManager);
        }
     
View Full Code Here

Examples of org.apache.xml.dtm.DTMManager

                                        org.w3c.dom.NodeList nodeList,
                                      Translet translet, DOM dom)
    {
  final int n = nodeList.getLength();
  final int[] dtmHandles = new int[n];
  DTMManager dtmManager = null;
  if (dom instanceof MultiDOM)
      dtmManager = ((MultiDOM) dom).getDTMManager();
  for (int i = 0; i < n; ++i) {
      org.w3c.dom.Node node = nodeList.item(i);
      int handle;
      if (dtmManager != null) {
    handle = dtmManager.getDTMHandleFromNode(node);
      }
      else if (node instanceof DTMNodeProxy
         && ((DTMNodeProxy) node).getDTM() == dom) {
    handle = ((DTMNodeProxy) node).getDTMNodeNumber();
      }
View Full Code Here

Examples of org.apache.xml.dtm.DTMManager

  // Notice: this looses some (esp. parent) context for these nodes,
  // so some way to wrap the original nodes inside a DTMAxisIterator
  // might be preferable in the long run.
  int n = 0; // allow for change in list length, just in case.
  Document doc = null;
  DTMManager dtmManager = null;
  int[] proxyNodes = new int[nodeList.getLength()];
  if (dom instanceof MultiDOM)
      dtmManager = ((MultiDOM) dom).getDTMManager();
  for (int i = 0; i < nodeList.getLength(); ++i) {
      org.w3c.dom.Node node = nodeList.item(i);
      if (node instanceof DTMNodeProxy) {
    DTMNodeProxy proxy = (DTMNodeProxy)node;
    DTM nodeDTM = proxy.getDTM();
    int handle = proxy.getDTMNodeNumber();
    boolean isOurDOM = (nodeDTM == dom);
    if (!isOurDOM && dtmManager != null) {
        try {
      isOurDOM = (nodeDTM == dtmManager.getDTM(handle));
        }
        catch (ArrayIndexOutOfBoundsException e) {
      // invalid node handle, so definitely not our doc
        }
    }
    if (isOurDOM) {
        proxyNodes[i] = handle;
        ++n;
        continue;
    }
      }
      proxyNodes[i] = DTM.NULL;
      int nodeType = node.getNodeType();
      if (doc == null) {
    if (dom instanceof MultiDOM == false) {
        runTimeError(RUN_TIME_INTERNAL_ERR, "need MultiDOM");
        return null;
    }
    try {
        AbstractTranslet at = (AbstractTranslet) translet;
        doc = at.newDocument("", "__top__");
    }
    catch (javax.xml.parsers.ParserConfigurationException e) {
        runTimeError(RUN_TIME_INTERNAL_ERR, e.getMessage());
        return null;
    }
      }
      // Use one dummy element as container for each node of the
      // list. That way, it is easier to detect resp. avoid
      // funny things which change the number of nodes,
      // e.g. auto-concatenation of text nodes.
      Element mid;
      switch (nodeType) {
    case org.w3c.dom.Node.ELEMENT_NODE:
    case org.w3c.dom.Node.TEXT_NODE:
    case org.w3c.dom.Node.CDATA_SECTION_NODE:
    case org.w3c.dom.Node.COMMENT_NODE:
    case org.w3c.dom.Node.ENTITY_REFERENCE_NODE:
    case org.w3c.dom.Node.PROCESSING_INSTRUCTION_NODE:
        mid = doc.createElementNS(null, "__dummy__");
        mid.appendChild(doc.importNode(node, true));
        doc.getDocumentElement().appendChild(mid);
        ++n;
        break;
    case org.w3c.dom.Node.ATTRIBUTE_NODE:
        // The mid element also serves as a container for
        // attributes, avoiding problems with conflicting
        // attributes or node order.
        mid = doc.createElementNS(null, "__dummy__");
        mid.setAttributeNodeNS((Attr)doc.importNode(node, true));
        doc.getDocumentElement().appendChild(mid);
        ++n;
        break;
    default:
        // Better play it safe for all types we aren't sure we know
        // how to deal with.
        runTimeError(RUN_TIME_INTERNAL_ERR,
         "Don't know how to convert node type "
         + nodeType);
      }
  }

        // w3cDOM -> DTM -> DOMImpl
  DTMAxisIterator iter = null, childIter = null, attrIter = null;
  if (doc != null) {
      final MultiDOM multiDOM = (MultiDOM) dom;
      DOM idom = (DOM)dtmManager.getDTM(new DOMSource(doc), false,
                null, true, false);
      // Create DOMAdapter and register with MultiDOM
      DOMAdapter domAdapter = new DOMAdapter(idom,
                translet.getNamesArray(),
                translet.getUrisArray(),
View Full Code Here

Examples of org.apache.xml.dtm.DTMManager

       
        base = base + java.io.File.separatorChar
               + source.getClass().getName();
      }
      setBaseURLOfSource(base);
      DTMManager mgr = m_xcontext.getDTMManager();
      /*
       * According to JAXP1.2, new SAXSource()/StreamSource()
       * should create an empty input tree, with a default root node.
       * new DOMSource()creates an empty document using DocumentBuilder.
       * newDocument(); Use DocumentBuilder.newDocument() for all 3 situations,
       * since there is no clear spec. how to create an empty tree when
       * both SAXSource() and StreamSource() are used.
       */
      if ((source instanceof StreamSource && source.getSystemId()==null &&
         ((StreamSource)source).getInputStream()==null &&
         ((StreamSource)source).getReader()==null)||
         (source instanceof SAXSource &&
         ((SAXSource)source).getInputSource()==null &&
         ((SAXSource)source).getXMLReader()==null )||
         (source instanceof DOMSource && ((DOMSource)source).getNode()==null)){
        try {
          DocumentBuilderFactory builderF =
                   DocumentBuilderFactory.newInstance();
          DocumentBuilder builder = builderF.newDocumentBuilder();
          String systemID = source.getSystemId();
          source = new DOMSource(builder.newDocument());

          // Copy system ID from original, empty Source to new Source
          if (systemID != null) {
            source.setSystemId(systemID);
          }
        } catch (ParserConfigurationException e) {
          fatalError(e);
        }          
      }
      DTM dtm = mgr.getDTM(source, false, this, true, true);
      dtm.setDocumentBaseURI(base);
     
      boolean hardDelete = true// %REVIEW% I have to think about this. -sb

      try
      {
        // NOTE: This will work because this is _NOT_ a shared DTM, and thus has
        // only a single Document node. If it could ever be an RTF or other
        // shared DTM, look at dtm.getDocumentRoot(nodeHandle).
        this.transformNode(dtm.getDocument());
      }
      finally
      {
        if (shouldRelease)
          mgr.release(dtm, hardDelete);
      }

      // Kick off the parse.  When the ContentHandler gets
      // the startDocument event, it will call transformNode( node ).
      // reader.parse( xmlSource );
View Full Code Here

Examples of org.apache.xml.dtm.DTMManager

   */
  public XObject execute(XPathContext xctxt, boolean destructiveOK)
    throws javax.xml.transform.TransformerException
  {
    XNodeSet xns = (XNodeSet)super.execute(xctxt, destructiveOK);
    DTMManager dtmMgr = xctxt.getDTMManager();
    int context = xctxt.getContextNode();
    if(dtmMgr.getDTM(xns.getRoot()).getDocument() !=
       dtmMgr.getDTM(context).getDocument())
    {
      Expression expr = (Expression)xns.getContainedIter();
      xns = (XNodeSet)expr.asIterator(xctxt, context);
    }
    return xns;
View Full Code Here

Examples of org.apache.xml.dtm.DTMManager

  /**
   * @see DTMIterator#getDTM(int)
   */
  public DTM getDTM(int nodeHandle)
  {
    DTMManager mgr = getDTMManager();
    if(null != mgr)
      return getDTMManager().getDTM(nodeHandle);
    else
    {
      assertion(false, "Can not get a DTM Unless a DTMManager has been set!");
View Full Code Here

Examples of org.apache.xml.dtm.DTMManager

      SQLWarning        warn = m_LastSQLDocumentWithError.checkWarnings();


      try
      {
        DTMManager mgr =
          ((XPathContext.XPathExpressionContext)ctx).getDTMManager();
        DTMManagerDefault mgrDefault = (DTMManagerDefault) mgr;
        int dtmIdent = mgrDefault.getFirstFreeDTMID();

        eDoc = new SQLErrorDocument(
View Full Code Here

Examples of org.apache.xml.dtm.DTMManager

   * the document. This type of method may better placed inside the DTMDocument
   * code
   */
  public static SQLDocument getNewDocument(ExpressionContext exprContext)
  {
    DTMManager mgr =
      ((XPathContext.XPathExpressionContext)exprContext).getDTMManager();
    DTMManagerDefault  mgrDefault = (DTMManagerDefault) mgr;


    int dtmIdent = mgrDefault.getFirstFreeDTMID();
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.