[testng] 70/160: Look for parser in a List

Eugene Zhukov eugene-guest at moszumanska.debian.org
Tue Aug 18 10:22:23 UTC 2015


This is an automated email from the git hooks/post-receive script.

eugene-guest pushed a commit to annotated tag testng-6.9.5
in repository testng.

commit 7fa752f3bd74766cc4df53348b1a0a9fff2ce603
Author: Julien Herr <julien.herr at alcatel-lucent.com>
Date:   Fri Jun 5 00:25:37 2015 +0200

    Look for parser in a List
---
 src/main/java/org/testng/internal/YamlParser.java |  5 +++++
 src/main/java/org/testng/xml/IFileParser.java     |  1 +
 src/main/java/org/testng/xml/Parser.java          | 20 +++++++++-----------
 src/main/java/org/testng/xml/XMLParser.java       |  5 +++++
 4 files changed, 20 insertions(+), 11 deletions(-)

diff --git a/src/main/java/org/testng/internal/YamlParser.java b/src/main/java/org/testng/internal/YamlParser.java
index 313a827..8562407 100644
--- a/src/main/java/org/testng/internal/YamlParser.java
+++ b/src/main/java/org/testng/internal/YamlParser.java
@@ -19,4 +19,9 @@ public class YamlParser implements IFileParser<XmlSuite> {
     }
   }
 
+  @Override
+  public boolean accept(String fileName) {
+    return fileName.endsWith(".yaml");
+  }
+
 }
diff --git a/src/main/java/org/testng/xml/IFileParser.java b/src/main/java/org/testng/xml/IFileParser.java
index e18bc48..20a5475 100644
--- a/src/main/java/org/testng/xml/IFileParser.java
+++ b/src/main/java/org/testng/xml/IFileParser.java
@@ -7,5 +7,6 @@ import java.io.InputStream;
 public interface IFileParser<T> {
 
   T parse(String filePath, InputStream is, boolean loadClasses) throws TestNGException;
+  boolean accept(String fileName);
 
 }
diff --git a/src/main/java/org/testng/xml/Parser.java b/src/main/java/org/testng/xml/Parser.java
index 914fe15..c10af28 100755
--- a/src/main/java/org/testng/xml/Parser.java
+++ b/src/main/java/org/testng/xml/Parser.java
@@ -33,11 +33,8 @@ public class Parser {
   /** The default file name for the TestNG test suite if none is specified (testng.xml). */
   public static final String DEFAULT_FILENAME = "testng.xml";
 
-  private static final IFileParser<XmlSuite> XML_PARSER =
-//      new DomXmlParser();
-      new SuiteXmlParser();
-  private static final IFileParser<XmlSuite> YAML_PARSER = new YamlParser();
-  private static final IFileParser<XmlSuite> DEFAULT_FILE_PARSER = XML_PARSER;
+  private static final IFileParser<XmlSuite> DEFAULT_FILE_PARSER = new SuiteXmlParser();
+  private static final List<IFileParser<XmlSuite>> PARSERS = Lists.newArrayList(DEFAULT_FILE_PARSER, new YamlParser());
 
   /** The file name of the xml suite being parsed. This may be null if the Parser
    * has not been initialized with a file name. TODO CQ This member is never used. */
@@ -112,13 +109,14 @@ public class Parser {
 //    return in;
 //  }
 
-  private IFileParser getParser(String fileName) {
-    IFileParser result = DEFAULT_FILE_PARSER;
-
-    if (fileName.endsWith(".xml")) result = XML_PARSER;
-    else if (fileName.endsWith(".yaml")) result = YAML_PARSER;
+  private static IFileParser getParser(String fileName) {
+    for (IFileParser<XmlSuite> parser : PARSERS) {
+      if (parser.accept(fileName)) {
+        return parser;
+      }
+    }
 
-    return result;
+    return DEFAULT_FILE_PARSER;
   }
 
   /**
diff --git a/src/main/java/org/testng/xml/XMLParser.java b/src/main/java/org/testng/xml/XMLParser.java
index 9e59430..cce1352 100644
--- a/src/main/java/org/testng/xml/XMLParser.java
+++ b/src/main/java/org/testng/xml/XMLParser.java
@@ -101,6 +101,11 @@ abstract public class XMLParser<T> implements IFileParser<T> {
     return false;
   }
 
+  @Override
+  public boolean accept(String fileName) {
+    return fileName.endsWith(".xml");
+  }
+
 //  private static void ppp(String s) {
 //    System.out.println("[Parser] " + s);
 //  }

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/testng.git



More information about the pkg-java-commits mailing list