checkstyle and checkdoc are now ok.
[utils] / crawler / kiss / src / org / wamblee / crawler / kiss / main / ProgramConfigurationParser.java
index 24d7d9b3f93dda8f1e933e08f7dc01c1d925190d..103ec0702c6caea299ca6583e265797c6e7cc8ee 100644 (file)
@@ -39,6 +39,11 @@ import org.wamblee.crawler.kiss.notification.Notifier;
  */
 class ProgramConfigurationParser {
 
+    /**
+     * 
+     */
+    private static final int DEFAULT_SMTP_PORT = 25;
+
     private static final String ELEM_PASSWORD = "password";
 
     private static final String ELEM_USERNAME = "username";
@@ -49,16 +54,15 @@ class ProgramConfigurationParser {
 
     // Formatting configuration.
     private static final String ELEM_FORMAT = "format";
-    
+
     private static final String ELEM_TEXT = "text";
 
     private static final String ELEM_HTML = "html";
 
     // Mail server configuration.
 
     private static final String ELEM_NOTIFICATION = "notification";
-    
+
     private static final String ELEM_SMTP = "smtp";
 
     private static final String ELEM_SUBJECT = "subject";
@@ -74,18 +78,18 @@ class ProgramConfigurationParser {
     private static final String ELEM_PATTERN = "match";
 
     private static final String ELEM_ACTION = "action";
-    
+
     private static final String ELEM_CATEGORY = "category";
 
     private static final String ACTION_NOTIFY = "notify";
-    
-    private List<ProgramFilter> _filters; 
-    
-    private Notifier _notifier; 
-    
-    ProgramConfigurationParser() { 
-        _filters = null; 
-        _notifier = null; 
+
+    private List<ProgramFilter> _filters;
+
+    private Notifier _notifier;
+
+    ProgramConfigurationParser() {
+        _filters = null;
+        _notifier = null;
     }
 
     /**
@@ -108,95 +112,101 @@ class ProgramConfigurationParser {
 
                 Element categoryElem = program.element(ELEM_CATEGORY);
                 String category = "";
-                if ( categoryElem != null ) { 
-                    category = categoryElem.getText().trim(); 
+                if (categoryElem != null) {
+                    category = categoryElem.getText().trim();
                 }
-                
+
                 Element actionElem = program.element(ELEM_ACTION);
-                ProgramAction action = new RecordProgramAction();
+                ProgramAction action = new RecordProgramAction(1);
                 if (actionElem != null) {
                     if (actionElem.getText().equals(ACTION_NOTIFY)) {
                         action = new InterestingProgramAction(category);
                     }
                 }
-              
-                List<Condition<Program>> regexConditions = 
-                    new ArrayList<Condition<Program>>();
-                for (Iterator j = program.elementIterator(ELEM_PATTERN); j.hasNext(); ) {
-                    Element patternElem = (Element)j.next();
-                    String fieldName = "name"; 
-                    Attribute fieldAttribute = patternElem.attribute("field"); 
-                    if ( fieldAttribute != null ) { 
-                        fieldName = fieldAttribute.getText(); 
+
+                List<Condition<Program>> regexConditions = new ArrayList<Condition<Program>>();
+                for (Iterator j = program.elementIterator(ELEM_PATTERN); j
+                        .hasNext();) {
+                    Element patternElem = (Element) j.next();
+                    String fieldName = "name";
+                    Attribute fieldAttribute = patternElem.attribute("field");
+                    if (fieldAttribute != null) {
+                        fieldName = fieldAttribute.getText();
                     }
-                    String pattern = ".*(" + patternElem.getText()
-                    + ").*";
-                    regexConditions.add(new PropertyRegexCondition<Program>(fieldName, pattern, true));
+                    String pattern = ".*(" + patternElem.getText() + ").*";
+                    regexConditions.add(new PropertyRegexCondition<Program>(
+                            fieldName, pattern, true));
                 }
-                Condition<Program> condition = new AndCondition<Program>(regexConditions);
+                Condition<Program> condition = new AndCondition<Program>(
+                        regexConditions);
                 filters.add(new ProgramFilter(condition, action));
             }
             _filters = filters;
-            
+
             Element notifier = root.element(ELEM_NOTIFICATION);
             _notifier = parseNotifier(notifier);
-            
+
         } catch (DocumentException e) {
             throw new RuntimeException("Error parsing program configuraiton", e);
         }
     }
-    
+
     /**
      * Parses the notifier
+     * 
      * @return Notifier
      */
-    private Notifier parseNotifier(Element aNotifier) { 
+    private Notifier parseNotifier(Element aNotifier) {
         String from = aNotifier.elementTextTrim(ELEM_FROM);
         String to = aNotifier.elementTextTrim(ELEM_TO);
         String subject = aNotifier.elementTextTrim(ELEM_SUBJECT);
-        
+
         Element smtp = aNotifier.element(ELEM_SMTP);
-        MailServer server = parseMailServer( smtp );
-        
+        MailServer server = parseMailServer(smtp);
+
         Element format = aNotifier.element(ELEM_FORMAT);
         String htmlXslt = format.elementTextTrim(ELEM_HTML);
         String textXslt = format.elementTextTrim(ELEM_TEXT);
-        
+
         return new MailNotifier(from, to, subject, htmlXslt, textXslt, server);
     }
 
     /**
      * Parses the mail server from the XML.
-     * @param aSmtp Mail server configuration.
+     * 
+     * @param aSmtp
+     *            Mail server configuration.
      * @return Mail server.
      */
-    private MailServer parseMailServer( Element aSmtp ) {
+    private MailServer parseMailServer(Element aSmtp) {
         String host = aSmtp.elementTextTrim(ELEM_HOST);
         Element portElem = aSmtp.element(ELEM_PORT);
-        int port = 25; 
-        if ( portElem != null ) {
+        int port = DEFAULT_SMTP_PORT;
+        if (portElem != null) {
             port = Integer.valueOf(portElem.getTextTrim());
         }
         String username = aSmtp.elementTextTrim(ELEM_USERNAME);
         String password = aSmtp.elementTextTrim(ELEM_PASSWORD);
-        
+
         MailServer server = new MailServer(host, port, username, password);
         return server;
     }
-    
+
     /**
      * Returns the list of program filters.
+     * 
      * @return Filter list.
      */
-    public List<ProgramFilter> getFilters() { 
+    public List<ProgramFilter> getFilters() {
         return _filters;
     }
-    
+
     /**
-     * Returns the notifier to use. 
+     * Returns the notifier to use.
+     * 
      * @return Notifier.
      */
-    public Notifier getNotifier() { 
-        return _notifier; 
+    public Notifier getNotifier() {
+        return _notifier;
     }
 }