Package org.exist.memtree

Examples of org.exist.memtree.MemTreeBuilder


            //we have to use CloseShieldInputStream otherwise the parser closes the stream and we cant later reread
            final InputSource src = new InputSource(new CloseShieldInputStream(is));

            reader = context.getBroker().getBrokerPool().getParserPool().borrowXMLReader();
            final MemTreeBuilder builder = context.getDocumentBuilder();
            final DocumentBuilderReceiver receiver = new DocumentBuilderReceiver(builder, true);
            reader.setContentHandler(receiver);
            reader.setProperty(Namespaces.SAX_LEXICAL_HANDLER, receiver);
            reader.parse(src);
            final Document doc = receiver.getDocument();
View Full Code Here


            {context.checkOptions(serializeOptions);}

        context.pushDocumentContext();
        try {
            final InMemoryNodeSet result = new InMemoryNodeSet();
            final MemTreeBuilder builder = context.getDocumentBuilder();
            final DocumentBuilderReceiver receiver = new DocumentBuilderReceiver(builder, true);
            for (final SequenceIterator i = args[0].iterate(); i.hasNext(); ) {
                final int nodeNr = builder.getDocument().getLastNode();
                final NodeValue next = (NodeValue) i.nextItem();
                next.toSAX(context.getBroker(), receiver, serializeOptions);
                result.add(builder.getDocument().getNode(nodeNr + 1));
            }
            return result;
        } catch (final SAXException e) {
            throw new XPathException(this, e);
        } finally {
View Full Code Here

      return Sequence.EMPTY_SEQUENCE;
    } else if ("get-module-info".equals(getSignature().getName().getLocalName())) {
      context.pushDocumentContext();
     
      try {
        final MemTreeBuilder builder = context.getDocumentBuilder();
        builder.startElement(MODULES_QNAME, null);
       
        if (getArgumentCount() == 1) {
          final Module module = context.getModule(args[0].getStringValue());
          if (module != null)
            {outputModule(builder, module);}
        } else {
          for(final Iterator<Module> i = context.getRootModules(); i.hasNext(); ) {
            final Module module = i.next();
            outputModule(builder, module);
          }
        }
        return builder.getDocument().getNode(1);
      } finally {
        context.popDocumentContext();
      }
    } else {
      final ValueSequence resultSeq = new ValueSequence();
View Full Code Here

        return permissions;
    }

    private org.exist.memtree.DocumentImpl permissionsToXml(final Permission permission) {
        final MemTreeBuilder builder = context.getDocumentBuilder();
        builder.startDocument();

        builder.startElement(new QName("permission", SecurityManagerModule.NAMESPACE_URI, SecurityManagerModule.PREFIX), null);
        builder.addAttribute(new QName("owner"), permission.getOwner().getName());
        builder.addAttribute(new QName("group"), permission.getGroup().getName());
        builder.addAttribute(new QName("mode"), permission.toString());

        if(permission instanceof SimpleACLPermission) {
            final SimpleACLPermission aclPermission = (SimpleACLPermission)permission;
            builder.startElement(new QName("acl", SecurityManagerModule.NAMESPACE_URI, SecurityManagerModule.PREFIX), null);
            builder.addAttribute(new QName("entries"), String.valueOf(aclPermission.getACECount()));

            for(int i = 0; i < aclPermission.getACECount(); i++) {
                builder.startElement(new QName("ace", SecurityManagerModule.NAMESPACE_URI, SecurityManagerModule.PREFIX), null);
                builder.addAttribute(new QName("index"), String.valueOf(i));
                builder.addAttribute(new QName("target"), aclPermission.getACETarget(i).name());
                builder.addAttribute(new QName("who"), aclPermission.getACEWho(i));
                builder.addAttribute(new QName("access_type"), aclPermission.getACEAccessType(i).name());
                builder.addAttribute(new QName("mode"), aclPermission.getACEModeString(i));
                builder.endElement();
            }

            builder.endElement();
        }

        builder.endElement();

        builder.endDocument();

        return builder.getDocument();
    }
View Full Code Here

    }
  }

  private Sequence response(XQueryContext pContext, String error, ErrorCode code, int line, int column) {
    context.pushDocumentContext();
    final MemTreeBuilder builder = context.getDocumentBuilder();
   
    builder.startElement(QNAME_INFO, null);
    builder.addAttribute(QNAME_RESULT_ATTR, error == null ? "pass" : "fail");
   
    if (error != null) {
      builder.startElement(ERROR_INFO, null);
      if (code != null)
        {builder.addAttribute(QNAME_ERRCODE_ATTR, code.toString());}
      if (line > -1) {
        builder.addAttribute(QNAME_LINE_ATTR, Integer.toString(line));
        builder.addAttribute(QNAME_COLUMN_ATTR, Integer.toString(column));
      }
      builder.characters(error);
      builder.endElement();
    }

    builder.endElement();
   
    return builder.getDocument().getNode(1);
  }
View Full Code Here

            module = tempContext.importModule(args[0].getStringValue(), null, null);
        }

        if (module == null)
            {return Sequence.EMPTY_SEQUENCE;}
        final MemTreeBuilder builder = context.getDocumentBuilder();
        final AttributesImpl attribs = new AttributesImpl();
        attribs.addAttribute("", "uri", "uri", "CDATA", module.getNamespaceURI());
        attribs.addAttribute("", "prefix", "prefix", "CDATA", module.getDefaultPrefix());
        if (module.isInternalModule()) {
            attribs.addAttribute("", "location", "location", "CDATA", "java:" + module.getClass().getName());
        } else if (isCalledAs("inspect-module")) {
            attribs.addAttribute("", "location", "location", "CDATA", args[0].getStringValue());
        }
        final int nodeNr = builder.startElement(MODULE_QNAME, attribs);
        if (!module.isInternalModule())
            {XQDocHelper.parse((ExternalModule) module);}
        if (module.getDescription() != null) {
            builder.startElement(InspectFunction.DESCRIPTION_QNAME, null);
            builder.characters(module.getDescription());
            builder.endElement();
        }
        if (!module.isInternalModule()) {
            final ExternalModule externalModule = (ExternalModule) module;
            if (externalModule.getMetadata() != null) {
                for (final Map.Entry<String, String> entry: externalModule.getMetadata().entrySet()) {
                    builder.startElement(new QName(entry.getKey()), null);
                    builder.characters(entry.getValue());
                    builder.endElement();
                }
            }
            // variables
            for (final VariableDeclaration var: externalModule.getVariableDeclarations()) {
                attribs.clear();
                attribs.addAttribute("", "name", "name", "CDATA", var.getName());
                final SequenceType type = var.getSequenceType();
                if (type != null) {
                    attribs.addAttribute("", "type", "type", "CDATA", Type.getTypeName(type.getPrimaryType()));
                    attribs.addAttribute("", "cardinality", "cardinality", "CDATA", Cardinality.getDescription(type.getCardinality()));
                }
                builder.startElement(VARIABLE_QNAME, attribs);
                builder.endElement();
            }
        }
        // functions
        for (final FunctionSignature sig : module.listFunctions()) {
            if (!sig.isPrivate()) {
                UserDefinedFunction func = null;
                if (!module.isInternalModule()) {
                    func = ((ExternalModule) module).getFunction(sig.getName(), sig.getArgumentCount(), null);
                }
                InspectFunction.generateDocs(sig, func, builder);
            }
        }
        builder.endElement();
        return builder.getDocument().getNode(nodeNr);
    }
View Full Code Here

    public Sequence eval(Sequence[] args, Sequence contextSequence) throws XPathException {
        if( !context.getSubject().hasDbaRole() ) {
            throw( new XPathException( this, "Permission denied, calling user '" + context.getSubject().getName() + "' must be a DBA to get the list of running xqueries" ) );
        }

        final MemTreeBuilder builder = context.getDocumentBuilder();

        builder.startDocument();
        builder.startElement( new QName( "jobs", NAMESPACE_URI, PREFIX ), null );

        final BrokerPool brokerPool = context.getBroker().getBrokerPool();
    final ProcessMonitor monitor = brokerPool.getProcessMonitor();
        final ProcessMonitor.JobInfo[] jobs = monitor.runningJobs();
        for (int i = 0; i < jobs.length; i++) {
            final Thread process = jobs[i].getThread();
      final Date startDate = new Date(jobs[i].getStartTime());
            builder.startElement( new QName( "job", NAMESPACE_URI, PREFIX ), null);
            builder.addAttribute( new QName("id", null, null), process.getName());
            builder.addAttribute( new QName("action", null, null), jobs[i].getAction());
      builder.addAttribute( new QName("start", null, null), new DateTimeValue(startDate).getStringValue());
            builder.addAttribute(new QName("info", null, null), jobs[i].getAddInfo().toString());
            builder.endElement();
        }

        builder.endElement();
        builder.endDocument();

        return (NodeValue)builder.getDocument().getDocumentElement();
    }
View Full Code Here

       
        final int width = ((IntegerValue)args[1].itemAt(0)).getInt();
       
        context.pushDocumentContext();
       
        final MemTreeBuilder builder = context.getDocumentBuilder();
        final Sequence result = processText(builder, args[0], width, call, resultCallback, args[getArgumentCount() - 1]);
        context.popDocumentContext();
        return result;
    }
View Full Code Here

    @Override
    public Sequence eval(Sequence[] args, Sequence contextSequence) throws XPathException {
        final FunctionReference ref = (FunctionReference) args[0].itemAt(0);
        final FunctionSignature sig = ref.getSignature();
        final MemTreeBuilder builder = context.getDocumentBuilder();
        final int nodeNr = generateDocs(sig, null, builder);
        return builder.getDocument().getNode(nodeNr);
    }
View Full Code Here

            return Sequence.EMPTY_SEQUENCE;
        }
       
        final Item a = args[0].itemAt(0);
       
        final MemTreeBuilder builder = new MemTreeBuilder(context);
        builder.startDocument();
        final DocumentBuilderReceiver receiver = new DocumentBuilderReceiver(builder);
       
        try {
            final Properties props = new Properties();
            a.toSAX(context.getBroker(), receiver, props);
           
        } catch (final SAXException e) {
            throw new XPathException(this, "Cannot Deep-copy Item");
        }
       
        builder.endDocument();
       
        return (NodeValue)receiver.getDocument().getDocumentElement();
    }
View Full Code Here

TOP

Related Classes of org.exist.memtree.MemTreeBuilder

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.