diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2012-12-20 22:45:16 +0100 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2012-12-20 22:45:16 +0100 |
commit | 0cbc9933db10938a1e9c7f330188e40caec9550d (patch) | |
tree | 43941d0c254a83801032432c5abaad9f8841d676 /src/main/java/io/trygvis/esper/testing/jenkins/JenkinsBuildXml.java | |
parent | ee86231bc83d50505fca356f808bc7d13a2c9502 (diff) | |
download | esper-testing-0cbc9933db10938a1e9c7f330188e40caec9550d.tar.gz esper-testing-0cbc9933db10938a1e9c7f330188e40caec9550d.tar.bz2 esper-testing-0cbc9933db10938a1e9c7f330188e40caec9550d.tar.xz esper-testing-0cbc9933db10938a1e9c7f330188e40caec9550d.zip |
o Storing jenkins_users.
Diffstat (limited to 'src/main/java/io/trygvis/esper/testing/jenkins/JenkinsBuildXml.java')
-rw-r--r-- | src/main/java/io/trygvis/esper/testing/jenkins/JenkinsBuildXml.java | 41 |
1 files changed, 30 insertions, 11 deletions
diff --git a/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsBuildXml.java b/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsBuildXml.java index 169a65c..cb92736 100644 --- a/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsBuildXml.java +++ b/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsBuildXml.java @@ -17,9 +17,7 @@ import fj.data.Option; import io.trygvis.esper.testing.Util; import static fj.data.List.iterableList; -import static fj.data.Option.none; -import static fj.data.Option.some; -import static fj.data.Option.somes; +import static fj.data.Option.*; import static io.trygvis.esper.testing.Util.childText; import static io.trygvis.esper.testing.Util.parseInt; import static io.trygvis.esper.testing.jenkins.JenkinsBuildXml.ChangeSetItemXml.parseChangeSetItem; @@ -109,16 +107,13 @@ public class JenkinsBuildXml { public final String msg; - /** - * Only subversion has this field - */ - public final Option<String> user; + public final Option<AuthorXml> author; - public ChangeSetItemXml(String commitId, DateTime date, String msg, Option<String> user) { + public ChangeSetItemXml(String commitId, DateTime date, String msg, Option<AuthorXml> author) { this.commitId = commitId; this.date = date; this.msg = msg; - this.user = user; + this.author = author; } private static final F<String, Option<DateTime>> parseDate = new F<String, Option<DateTime>>() { @@ -145,13 +140,37 @@ public class JenkinsBuildXml { Option<String> commitId = childText(item, "commitId"); Option<DateTime> date = childText(item, "date").bind(parseDate); Option<String> msg = childText(item, "msg"); - Option<String> user = childText(item, "user"); if (commitId.isNone() || date.isNone() || msg.isNone()) { return none(); } - return some(new ChangeSetItemXml(commitId.some(), date.some(), msg.some(), user)); + Option<AuthorXml> author = fromNull(item.getChild("author")).bind(AuthorXml.parseAuthorXml); + + return some(new ChangeSetItemXml(commitId.some(), date.some(), msg.some(), author)); + } + }; + } + + public static class AuthorXml { + public final String absoluteUrl; + public final String fullName; + + public AuthorXml(String absoluteUrl, String fullName) { + this.absoluteUrl = absoluteUrl; + this.fullName = fullName; + } + + public static final F<Element, Option<AuthorXml>> parseAuthorXml = new F<Element, Option<AuthorXml>>() { + public Option<AuthorXml> f(Element element) { + Option<String> absoluteUrl = childText(element, "absoluteUrl"); + Option<String> fullName = childText(element, "fullName"); + + if(absoluteUrl.isNone() || fullName.isNone()) { + return none(); + } + + return some(new AuthorXml(absoluteUrl.some(), fullName.some())); } }; } |