1717
1818import java .io .BufferedReader ;
1919import java .io .File ;
20- import java .io .IOException ;
2120import java .io .InputStream ;
2221import java .io .InputStreamReader ;
2322import java .io .StringReader ;
2423import java .nio .charset .Charset ;
2524import java .nio .file .Paths ;
26- import java .util .logging .Logger ;
2725import java .util .stream .Collectors ;
2826
29- import javax .xml .XMLConstants ;
3027import javax .xml .parsers .DocumentBuilder ;
31- import javax .xml .parsers .DocumentBuilderFactory ;
32- import javax .xml .parsers .ParserConfigurationException ;
3328
34- import org .utplsql .sqldev .exception .GenericRuntimeException ;
3529import org .utplsql .sqldev .model .FileTools ;
3630import org .utplsql .sqldev .model .XMLTools ;
3731import org .w3c .dom .Document ;
3832import org .w3c .dom .NodeList ;
3933import org .xml .sax .InputSource ;
40- import org .xml .sax .SAXException ;
4134
4235import oracle .dbtools .util .Resource ;
4336
4437public class SnippetMerger {
45- private static final Logger logger = Logger .getLogger (SnippetMerger .class .getName ());
46-
4738 private final XMLTools xmlTools = new XMLTools ();
4839 private File userSnippetsFile ;
4940 private String utplsqlSnippets ;
@@ -65,38 +56,16 @@ public SnippetMerger(final File file) {
6556 userSnippetsFile = file ;
6657 }
6758
68- private DocumentBuilder createDocumentBuilder () {
69- DocumentBuilderFactory factory = DocumentBuilderFactory .newInstance ();
70- try {
71- factory .setFeature (XMLConstants .FEATURE_SECURE_PROCESSING , Boolean .TRUE );
72- return factory .newDocumentBuilder ();
73- } catch (ParserConfigurationException e ) {
74- final String msg = "Could not create no document builder due to " + e .getMessage () + "." ;
75- logger .severe (() -> msg );
76- throw new GenericRuntimeException (msg , e );
77- }
78- }
79-
80- private Document parse (final DocumentBuilder builder , final InputSource inputSource ) {
81- try {
82- return builder .parse (inputSource );
83- } catch (SAXException | IOException e ) {
84- final String msg = "Could not parse XML input due to " + e .getMessage () + "." ;
85- logger .severe (() -> msg );
86- throw new GenericRuntimeException (msg , e );
87- }
88- }
89-
9059 public void merge () {
9160 String result = null ;
9261 if (userSnippetsFile .exists ()) {
9362 // file exists, proper merge required
9463 final String userSnippets = new String (FileTools .readFile (Paths .get (userSnippetsFile .getAbsolutePath ())));
95- final DocumentBuilder docBuilder = createDocumentBuilder ();
96- final Document userSnippetsDoc = parse (docBuilder , new InputSource (new StringReader (userSnippets )));
64+ final DocumentBuilder docBuilder = xmlTools . createDocumentBuilder ();
65+ final Document userSnippetsDoc = xmlTools . parse (docBuilder , new InputSource (new StringReader (userSnippets )));
9766 final NodeList userSnippetsGroups = xmlTools .getNodeList (userSnippetsDoc ,
9867 "/snippets/group[not(@category=\" utPLSQL Annotations\" or @category=\" utPLSQL Expectations\" )]" );
99- final Document utplsqlSnippetsDoc = parse (docBuilder , new InputSource (new StringReader (utplsqlSnippets )));
68+ final Document utplsqlSnippetsDoc = xmlTools . parse (docBuilder , new InputSource (new StringReader (utplsqlSnippets )));
10069 final NodeList utplsqlSnippetsGroups = xmlTools .getNodeList (utplsqlSnippetsDoc , "/snippets/group" );
10170 StringBuilder sb = new StringBuilder ();
10271 sb .append ("<?xml version = '1.0' encoding = 'UTF-8'?>\n " );
0 commit comments