public static String findInFile()

in data-audit/kogito-addons-data-audit-jpa/kogito-addons-data-audit-jpa-common/src/main/java/org/kie/kogito/app/audit/jpa/queries/MappingFile.java [38:72]


    public static String findInFile(String file, EntityManager entityManager, String queryName) {
        ClassLoader cl = Thread.currentThread().getContextClassLoader();
        cl = (cl == null) ? MappingFile.class.getClassLoader() : cl;
        try (InputStream is = cl.getResourceAsStream(file)) {
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            // parse XML file
            DocumentBuilder db = dbf.newDocumentBuilder();

            Document doc = db.parse(is);
            Node entityMappingsNode = doc.getFirstChild(); // entity-mappings

            NodeList nativeQueries = entityMappingsNode.getChildNodes();
            for (int i = 0; i < nativeQueries.getLength(); i++) {
                Node nativeQuery = nativeQueries.item(i);
                if ("named-native-query".equals(nativeQuery.getNodeName())) {
                    String name = nativeQuery.getAttributes().getNamedItem("name").getNodeValue();
                    String sqlQuery = null;
                    NodeList children = nativeQuery.getChildNodes();
                    for (int j = 0; j < children.getLength(); j++) {
                        Node query = children.item(j);
                        if ("query".equals(query.getNodeName())) {
                            sqlQuery = query.getTextContent();
                        }
                    }

                    if (name.equals(queryName)) {
                        return sqlQuery;
                    }
                }
            }
        } catch (Exception e) {
            return null;
        }
        return null;
    }