1 | package org.sourceforge.xradar.results; |
2 | |
3 | import java.io.IOException; |
4 | import java.util.HashMap; |
5 | import java.util.Map; |
6 | import java.util.logging.Logger; |
7 | |
8 | import javax.xml.parsers.DocumentBuilder; |
9 | import javax.xml.parsers.DocumentBuilderFactory; |
10 | import javax.xml.parsers.ParserConfigurationException; |
11 | |
12 | import org.w3c.dom.Document; |
13 | import org.w3c.dom.Element; |
14 | import org.w3c.dom.NodeList; |
15 | import org.xml.sax.SAXException; |
16 | |
17 | import com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl; |
18 | |
19 | public class RuleExport { |
20 | |
21 | private Map<String,Analyser> LoadedRule = new HashMap<String,Analyser>(0); |
22 | |
23 | private static final Logger logger = Logger.getLogger("ResultExport"); |
24 | |
25 | public Map<String,Analyser> listRule(Rule rule) throws XRadarResultsAnalyserException { |
26 | Document result; |
27 | try { |
28 | DocumentBuilderFactory builderFactory = new DocumentBuilderFactoryImpl(); |
29 | DocumentBuilder builder = builderFactory.newDocumentBuilder(); |
30 | result = builder.parse(this.getClass().getResourceAsStream("predefine_rules.xml")); |
31 | |
32 | NodeList List = result.getElementsByTagName("rule"); |
33 | for (int i = 0; i < List.getLength(); i++) { |
34 | Rule currentRule = createRuleFromXML((Element) List.item(i),rule); |
35 | Analyser analyser = this.LoadedRule.get(currentRule.getType()); |
36 | LoadedRule.put(currentRule.getType(),analyser); |
37 | } |
38 | } |
39 | catch ( ParserConfigurationException e) { |
40 | throw new XRadarResultsAnalyserException(e); |
41 | } |
42 | catch ( SAXException e) { |
43 | throw new XRadarResultsAnalyserException(e); |
44 | } |
45 | catch (IOException e) { |
46 | throw new XRadarResultsAnalyserException(e); |
47 | } |
48 | return LoadedRule; |
49 | } |
50 | |
51 | private Rule createRuleFromXML(Element item,Rule rule) { |
52 | String type = item.getAttribute("type"); |
53 | String query = item.getAttribute("query"); |
54 | logger.fine("Override rule:" + rule + " values with:"); |
55 | if (! type.equals("")) |
56 | rule.setType(item.getAttribute("type")); |
57 | if (! query.equals("")) |
58 | rule.setQuery(item.getAttribute("query")); |
59 | logger.fine("Final state is" + rule); |
60 | return rule; |
61 | } |
62 | } |