[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