Search in sources :

Example 36 with Filter

use of org.jdom2.filter.Filter in project tutorials by eugenp.

the class JDomParser method getNodeById.

public Element getNodeById(String id) {
    try {
        SAXBuilder builder = new SAXBuilder();
        Document document = (Document) builder.build(file);
        String filter = "//*[@tutId='" + id + "']";
        XPathFactory xFactory = XPathFactory.instance();
        XPathExpression<Element> expr = xFactory.compile(filter, Filters.element());
        List<Element> node = expr.evaluate(document);
        return node.get(0);
    } catch (JDOMException | IOException e) {
        e.printStackTrace();
        return null;
    }
}
Also used : XPathFactory(org.jdom2.xpath.XPathFactory) SAXBuilder(org.jdom2.input.SAXBuilder) Element(org.jdom2.Element) IOException(java.io.IOException) Document(org.jdom2.Document) JDOMException(org.jdom2.JDOMException)

Example 37 with Filter

use of org.jdom2.filter.Filter in project mycore by MyCoRe-Org.

the class MCRClassification2Commands method processFromDirectory.

/**
 * Loads or updates MCRClassification from all XML files in a directory.
 *
 * @param directory
 *            the directory containing the XML files
 * @param update
 *            if true, classification will be updated, else Classification
 *            is created
 * @throws MCRActiveLinkException
 */
private static List<String> processFromDirectory(String directory, boolean update) throws MCRActiveLinkException {
    File dir = new File(directory);
    if (!dir.isDirectory()) {
        LOGGER.warn("{} ignored, is not a directory.", directory);
        return null;
    }
    String[] list = dir.list();
    if (list.length == 0) {
        LOGGER.warn("No files found in directory {}", directory);
        return null;
    }
    return Arrays.stream(list).filter(file -> file.endsWith(".xml")).map(file -> (update ? "update" : "load") + " classification from file " + new File(dir, file).getAbsolutePath()).collect(Collectors.toList());
}
Also used : Transformer(javax.xml.transform.Transformer) Arrays(java.util.Arrays) MCRCategoryTransformer(org.mycore.datamodel.classifications2.utils.MCRCategoryTransformer) URL(java.net.URL) MCRXMLTransformer(org.mycore.datamodel.classifications2.utils.MCRXMLTransformer) URISyntaxException(java.net.URISyntaxException) StreamResult(javax.xml.transform.stream.StreamResult) StreamSource(javax.xml.transform.stream.StreamSource) MCRConstants(org.mycore.common.MCRConstants) Session(org.hibernate.Session) MCRException(org.mycore.common.MCRException) ArrayList(java.util.ArrayList) Document(org.jdom2.Document) Locale(java.util.Locale) TransformerFactoryConfigurationError(javax.xml.transform.TransformerFactoryConfigurationError) MCRCategoryDAO(org.mycore.datamodel.classifications2.MCRCategoryDAO) MCRCategoryImpl(org.mycore.datamodel.classifications2.impl.MCRCategoryImpl) MCRCommandGroup(org.mycore.frontend.cli.annotation.MCRCommandGroup) MCRLabel(org.mycore.datamodel.classifications2.MCRLabel) MalformedURLException(java.net.MalformedURLException) Format(org.jdom2.output.Format) TransformerConfigurationException(javax.xml.transform.TransformerConfigurationException) MCRHIBConnection(org.mycore.backend.hibernate.MCRHIBConnection) FileOutputStream(java.io.FileOutputStream) MCRCategoryID(org.mycore.datamodel.classifications2.MCRCategoryID) IOException(java.io.IOException) MCRCategory(org.mycore.datamodel.classifications2.MCRCategory) Collectors(java.util.stream.Collectors) File(java.io.File) XMLOutputter(org.jdom2.output.XMLOutputter) MCRURIResolver(org.mycore.common.xml.MCRURIResolver) MCRURLContent(org.mycore.common.content.MCRURLContent) List(java.util.List) SAXParseException(org.xml.sax.SAXParseException) Logger(org.apache.logging.log4j.Logger) MCRCommand(org.mycore.frontend.cli.annotation.MCRCommand) Paths(java.nio.file.Paths) MCRCategoryDAOFactory(org.mycore.datamodel.classifications2.MCRCategoryDAOFactory) TransformerFactory(javax.xml.transform.TransformerFactory) MCRActiveLinkException(org.mycore.datamodel.common.MCRActiveLinkException) Collections(java.util.Collections) LogManager(org.apache.logging.log4j.LogManager) MCRXMLParserFactory(org.mycore.common.xml.MCRXMLParserFactory) MCRCategoryDAOImpl(org.mycore.datamodel.classifications2.impl.MCRCategoryDAOImpl) File(java.io.File)

Example 38 with Filter

use of org.jdom2.filter.Filter in project mycore by MyCoRe-Org.

the class MCRMetaElement method createXML.

/**
 * This methode create a XML stream for all data in this class, defined by
 * the MyCoRe XML MCRLangText definition for the given subtag.
 *
 * @param flag
 *            true if all inherited data should be include, else false
 * @exception MCRException
 *                if the content of this class is not valid
 * @return a JDOM Element with the XML Element part
 */
public final Element createXML(boolean flag) throws MCRException {
    try {
        validate();
    } catch (MCRException exc) {
        debug();
        throw new MCRException("MCRMetaElement : The content is not valid: Tag=" + this.tag, exc);
    }
    Element elm = new Element(tag);
    elm.setAttribute("class", getClassName());
    elm.setAttribute("heritable", String.valueOf(heritable));
    elm.setAttribute("notinherit", String.valueOf(notinherit));
    list.stream().filter(metaInterface -> (flag || metaInterface.getInherited() == 0)).map(MCRMetaInterface::createXML).forEachOrdered(elm::addContent);
    return elm;
}
Also used : MCRException(org.mycore.common.MCRException) Element(org.jdom2.Element)

Example 39 with Filter

use of org.jdom2.filter.Filter in project mycore by MyCoRe-Org.

the class MCRObjectCommands method processFromDirectory.

/**
 * Load or update MCRObject's from all XML files in a directory.
 *
 * @param topological
 *            if true, the dependencies of parent and child objects will be respected
 * @param directory
 *            the directory containing the XML files
 * @param update
 *            if true, object will be updated, else object is created
 */
private static List<String> processFromDirectory(boolean topological, String directory, boolean update) {
    File dir = new File(directory);
    if (!dir.isDirectory()) {
        LOGGER.warn("{} ignored, is not a directory.", directory);
        return null;
    }
    String[] list = dir.list();
    if (list == null || list.length == 0) {
        LOGGER.warn("No files found in directory {}", directory);
        return null;
    }
    Predicate<String> isMetaXML = file -> file.endsWith(".xml") && !file.contains("derivate");
    Function<String, String> cmdFromFile = file -> (update ? "update" : "load") + " object from file " + new File(dir, file).getAbsolutePath();
    if (topological) {
        MCRTopologicalSort ts = new MCRTopologicalSort();
        ts.prepareData(list, dir);
        return Optional.ofNullable(ts.doTopoSort()).map(Arrays::stream).map(is -> is.mapToObj(i -> list[i])).orElse(Stream.empty()).filter(isMetaXML).map(cmdFromFile).collect(Collectors.toList());
    } else {
        return Arrays.stream(list).filter(isMetaXML).sorted().map(cmdFromFile).collect(Collectors.toList());
    }
}
Also used : Transformer(javax.xml.transform.Transformer) MCRTopologicalSort(org.mycore.tools.MCRTopologicalSort) Arrays(java.util.Arrays) URL(java.net.URL) URISyntaxException(java.net.URISyntaxException) StreamResult(javax.xml.transform.stream.StreamResult) MCRStreamQuery(org.mycore.backend.jpa.MCRStreamQuery) MCRDerivate(org.mycore.datamodel.metadata.MCRDerivate) MCRRecursiveDeleter(org.mycore.datamodel.niofs.utils.MCRRecursiveDeleter) Document(org.jdom2.Document) JDOMSource(org.jdom2.transform.JDOMSource) JDOMException(org.jdom2.JDOMException) Locale(java.util.Locale) MCRXMLMetadataManager(org.mycore.datamodel.common.MCRXMLMetadataManager) MCRMetadataManager(org.mycore.datamodel.metadata.MCRMetadataManager) MCRLinkTableManager(org.mycore.datamodel.common.MCRLinkTableManager) MCRContent(org.mycore.common.content.MCRContent) Predicate(java.util.function.Predicate) MCRPath(org.mycore.datamodel.niofs.MCRPath) MCRPersistenceException(org.mycore.common.MCRPersistenceException) Collectors(java.util.stream.Collectors) MCRObjectUtils(org.mycore.datamodel.metadata.MCRObjectUtils) Objects(java.util.Objects) MCREntityManagerProvider(org.mycore.backend.jpa.MCREntityManagerProvider) List(java.util.List) Stream(java.util.stream.Stream) Logger(org.apache.logging.log4j.Logger) MCRCommand(org.mycore.frontend.cli.annotation.MCRCommand) MCRObjectID(org.mycore.datamodel.metadata.MCRObjectID) SAXException(org.xml.sax.SAXException) Entry(java.util.Map.Entry) Optional(java.util.Optional) MCREntityResolver(org.mycore.common.xml.MCREntityResolver) MCRErrorListener(org.mycore.common.xsl.MCRErrorListener) MCRStreamUtils(org.mycore.common.MCRStreamUtils) MCRActiveLinkException(org.mycore.datamodel.common.MCRActiveLinkException) MCRMetaLinkID(org.mycore.datamodel.metadata.MCRMetaLinkID) MCRBase(org.mycore.datamodel.metadata.MCRBase) TransformerException(javax.xml.transform.TransformerException) StreamSource(javax.xml.transform.stream.StreamSource) SimpleDateFormat(java.text.SimpleDateFormat) MCRConfiguration(org.mycore.common.config.MCRConfiguration) Function(java.util.function.Function) MCRException(org.mycore.common.MCRException) MessageFormat(java.text.MessageFormat) ArrayList(java.util.ArrayList) XMLReader(org.xml.sax.XMLReader) MCRCommandGroup(org.mycore.frontend.cli.annotation.MCRCommandGroup) MCRAccessException(org.mycore.access.MCRAccessException) Hashtable(java.util.Hashtable) MCRTreeCopier(org.mycore.datamodel.niofs.utils.MCRTreeCopier) MCRMetadataVersion(org.mycore.datamodel.ifs2.MCRMetadataVersion) InputSource(org.xml.sax.InputSource) MalformedURLException(java.net.MalformedURLException) Files(java.nio.file.Files) FileOutputStream(java.io.FileOutputStream) IOException(java.io.IOException) JDOMResult(org.jdom2.transform.JDOMResult) EntityManager(javax.persistence.EntityManager) OutputKeys(javax.xml.transform.OutputKeys) File(java.io.File) MCRURIResolver(org.mycore.common.xml.MCRURIResolver) SAXSource(javax.xml.transform.sax.SAXSource) SAXParseException(org.xml.sax.SAXParseException) ParserConfigurationException(javax.xml.parsers.ParserConfigurationException) MCRSessionMgr(org.mycore.common.MCRSessionMgr) MCRObject(org.mycore.datamodel.metadata.MCRObject) MCRXMLHelper(org.mycore.common.xml.MCRXMLHelper) TransformerFactory(javax.xml.transform.TransformerFactory) Collections(java.util.Collections) LogManager(org.apache.logging.log4j.LogManager) MCRXMLParserFactory(org.mycore.common.xml.MCRXMLParserFactory) MCRTopologicalSort(org.mycore.tools.MCRTopologicalSort) File(java.io.File)

Example 40 with Filter

use of org.jdom2.filter.Filter in project mycore by MyCoRe-Org.

the class MCRObjectCommands method deleteTopologicalAllObjects.

/**
 * Delete all MCRObjects from the datastore in topological order
 */
@MCRCommand(syntax = "delete all objects in topological order", help = "Removes all MCRObjects in topological order.", order = 25)
public static List<String> deleteTopologicalAllObjects() {
    final List<String> objectIds = MCRXMLMetadataManager.instance().listIDs();
    String[] objects = objectIds.stream().filter(id -> !id.contains("_derivate_")).toArray(String[]::new);
    MCRTopologicalSort ts = new MCRTopologicalSort();
    ts.prepareMCRObjects(objects);
    int[] order = ts.doTopoSort();
    List<String> cmds = new ArrayList<>(objectIds.size());
    if (order != null) {
        // delete in reverse order
        for (int o = order.length - 1; o >= 0; o--) {
            cmds.add("delete object " + ts.getNodeName(order[o]));
        }
    }
    return cmds;
}
Also used : Transformer(javax.xml.transform.Transformer) MCRTopologicalSort(org.mycore.tools.MCRTopologicalSort) Arrays(java.util.Arrays) URL(java.net.URL) URISyntaxException(java.net.URISyntaxException) StreamResult(javax.xml.transform.stream.StreamResult) MCRStreamQuery(org.mycore.backend.jpa.MCRStreamQuery) MCRDerivate(org.mycore.datamodel.metadata.MCRDerivate) MCRRecursiveDeleter(org.mycore.datamodel.niofs.utils.MCRRecursiveDeleter) Document(org.jdom2.Document) JDOMSource(org.jdom2.transform.JDOMSource) JDOMException(org.jdom2.JDOMException) Locale(java.util.Locale) MCRXMLMetadataManager(org.mycore.datamodel.common.MCRXMLMetadataManager) MCRMetadataManager(org.mycore.datamodel.metadata.MCRMetadataManager) MCRLinkTableManager(org.mycore.datamodel.common.MCRLinkTableManager) MCRContent(org.mycore.common.content.MCRContent) Predicate(java.util.function.Predicate) MCRPath(org.mycore.datamodel.niofs.MCRPath) MCRPersistenceException(org.mycore.common.MCRPersistenceException) Collectors(java.util.stream.Collectors) MCRObjectUtils(org.mycore.datamodel.metadata.MCRObjectUtils) Objects(java.util.Objects) MCREntityManagerProvider(org.mycore.backend.jpa.MCREntityManagerProvider) List(java.util.List) Stream(java.util.stream.Stream) Logger(org.apache.logging.log4j.Logger) MCRCommand(org.mycore.frontend.cli.annotation.MCRCommand) MCRObjectID(org.mycore.datamodel.metadata.MCRObjectID) SAXException(org.xml.sax.SAXException) Entry(java.util.Map.Entry) Optional(java.util.Optional) MCREntityResolver(org.mycore.common.xml.MCREntityResolver) MCRErrorListener(org.mycore.common.xsl.MCRErrorListener) MCRStreamUtils(org.mycore.common.MCRStreamUtils) MCRActiveLinkException(org.mycore.datamodel.common.MCRActiveLinkException) MCRMetaLinkID(org.mycore.datamodel.metadata.MCRMetaLinkID) MCRBase(org.mycore.datamodel.metadata.MCRBase) TransformerException(javax.xml.transform.TransformerException) StreamSource(javax.xml.transform.stream.StreamSource) SimpleDateFormat(java.text.SimpleDateFormat) MCRConfiguration(org.mycore.common.config.MCRConfiguration) Function(java.util.function.Function) MCRException(org.mycore.common.MCRException) MessageFormat(java.text.MessageFormat) ArrayList(java.util.ArrayList) XMLReader(org.xml.sax.XMLReader) MCRCommandGroup(org.mycore.frontend.cli.annotation.MCRCommandGroup) MCRAccessException(org.mycore.access.MCRAccessException) Hashtable(java.util.Hashtable) MCRTreeCopier(org.mycore.datamodel.niofs.utils.MCRTreeCopier) MCRMetadataVersion(org.mycore.datamodel.ifs2.MCRMetadataVersion) InputSource(org.xml.sax.InputSource) MalformedURLException(java.net.MalformedURLException) Files(java.nio.file.Files) FileOutputStream(java.io.FileOutputStream) IOException(java.io.IOException) JDOMResult(org.jdom2.transform.JDOMResult) EntityManager(javax.persistence.EntityManager) OutputKeys(javax.xml.transform.OutputKeys) File(java.io.File) MCRURIResolver(org.mycore.common.xml.MCRURIResolver) SAXSource(javax.xml.transform.sax.SAXSource) SAXParseException(org.xml.sax.SAXParseException) ParserConfigurationException(javax.xml.parsers.ParserConfigurationException) MCRSessionMgr(org.mycore.common.MCRSessionMgr) MCRObject(org.mycore.datamodel.metadata.MCRObject) MCRXMLHelper(org.mycore.common.xml.MCRXMLHelper) TransformerFactory(javax.xml.transform.TransformerFactory) Collections(java.util.Collections) LogManager(org.apache.logging.log4j.LogManager) MCRXMLParserFactory(org.mycore.common.xml.MCRXMLParserFactory) MCRTopologicalSort(org.mycore.tools.MCRTopologicalSort) ArrayList(java.util.ArrayList) MCRCommand(org.mycore.frontend.cli.annotation.MCRCommand)

Aggregations

Element (org.jdom2.Element)43 Document (org.jdom2.Document)24 List (java.util.List)22 IOException (java.io.IOException)20 ArrayList (java.util.ArrayList)19 LogManager (org.apache.logging.log4j.LogManager)17 Logger (org.apache.logging.log4j.Logger)17 JDOMException (org.jdom2.JDOMException)17 Collectors (java.util.stream.Collectors)16 File (java.io.File)11 MCRException (org.mycore.common.MCRException)11 MCRObjectID (org.mycore.datamodel.metadata.MCRObjectID)11 Collections (java.util.Collections)10 MCRObject (org.mycore.datamodel.metadata.MCRObject)10 Map (java.util.Map)9 MCRAccessException (org.mycore.access.MCRAccessException)9 MCRConstants (org.mycore.common.MCRConstants)9 MCRDerivate (org.mycore.datamodel.metadata.MCRDerivate)9 MCRMetadataManager (org.mycore.datamodel.metadata.MCRMetadataManager)9 Files (java.nio.file.Files)8