forked from jenkinsci/global-build-stats-plugin
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
refactored BuildStatConfiguration filters and BuildHistorySearchCrite…
…ria.jobFilter to BuildSearchCriteria, allowing to share job build result eligibility (in job filtering)
- Loading branch information
fcamblor
committed
Sep 23, 2010
1 parent
03b194f
commit aedf15a
Showing
12 changed files
with
445 additions
and
162 deletions.
There are no files selected for viewing
47 changes: 47 additions & 0 deletions
47
src/main/java/hudson/plugins/global_build_stats/FromRequestObjectFactory.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
package hudson.plugins.global_build_stats; | ||
|
||
import hudson.plugins.global_build_stats.model.BuildHistorySearchCriteria; | ||
import hudson.plugins.global_build_stats.model.BuildSearchCriteria; | ||
import hudson.plugins.global_build_stats.model.BuildStatConfiguration; | ||
import hudson.plugins.global_build_stats.model.HistoricScale; | ||
import hudson.plugins.global_build_stats.model.YAxisChartType; | ||
|
||
import org.kohsuke.stapler.StaplerRequest; | ||
|
||
public class FromRequestObjectFactory { | ||
|
||
public static BuildHistorySearchCriteria createBuildHistorySearchCriteria(StaplerRequest req){ | ||
BuildSearchCriteria criteria = createBuildSearchCriteria(req); | ||
return new BuildHistorySearchCriteria( | ||
Long.parseLong(req.getParameter("start")), | ||
Long.parseLong(req.getParameter("end")), | ||
criteria); | ||
} | ||
|
||
public static BuildStatConfiguration createBuildStatConfiguration(String id, StaplerRequest req){ | ||
BuildSearchCriteria criteria = createBuildSearchCriteria(req); | ||
return new BuildStatConfiguration( | ||
id, | ||
req.getParameter("title"), | ||
Integer.parseInt(req.getParameter("buildStatWidth")), | ||
Integer.parseInt(req.getParameter("buildStatHeight")), | ||
Integer.parseInt(req.getParameter("historicLength")), | ||
HistoricScale.valueOf(req.getParameter("historicScale")), | ||
YAxisChartType.valueOf(req.getParameter("yAxisChartType")), | ||
Boolean.parseBoolean(req.getParameter("buildStatusesShown")), | ||
Boolean.parseBoolean(req.getParameter("totalBuildTimeShown")), | ||
Boolean.parseBoolean(req.getParameter("averageBuildTimeShown")), | ||
criteria); | ||
} | ||
|
||
public static BuildSearchCriteria createBuildSearchCriteria(StaplerRequest req){ | ||
BuildSearchCriteria criteria = new BuildSearchCriteria(req.getParameter("jobFilter"), | ||
req.getParameter("nodeFilter"), | ||
Boolean.parseBoolean(req.getParameter("successShown")), | ||
Boolean.parseBoolean(req.getParameter("failuresShown")), | ||
Boolean.parseBoolean(req.getParameter("unstablesShown")), | ||
Boolean.parseBoolean(req.getParameter("abortedShown")), | ||
Boolean.parseBoolean(req.getParameter("notBuildsShown"))); | ||
return criteria; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
109 changes: 109 additions & 0 deletions
109
src/main/java/hudson/plugins/global_build_stats/model/BuildSearchCriteria.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,109 @@ | ||
package hudson.plugins.global_build_stats.model; | ||
|
||
import hudson.plugins.global_build_stats.FieldFilter; | ||
import hudson.plugins.global_build_stats.FieldFilterFactory; | ||
|
||
import org.kohsuke.stapler.export.Exported; | ||
import org.kohsuke.stapler.export.ExportedBean; | ||
|
||
@ExportedBean | ||
public class BuildSearchCriteria { | ||
|
||
private String jobFilter = FieldFilterFactory.ALL_VALUES_FILTER_LABEL; | ||
transient FieldFilter calculatedJobFilter = null; // For calcul optimizations only | ||
private String nodeFilter = FieldFilterFactory.ALL_VALUES_FILTER_LABEL; | ||
transient FieldFilter calculatedNodeFilter = null; // For calcul optimizations only | ||
private short shownBuildResults; | ||
|
||
public BuildSearchCriteria(String _jobFilter, String _nodeFilter, | ||
boolean _successShown, boolean _failuresShown, boolean _unstablesShown, | ||
boolean _abortedShown, boolean _notBuildsShown){ | ||
|
||
this.setJobFilter(_jobFilter); | ||
this.setNodeFilter(_nodeFilter); | ||
|
||
this.shownBuildResults = 0; | ||
this.shownBuildResults |= _successShown?BuildResult.SUCCESS.code:0; | ||
this.shownBuildResults |= _failuresShown?BuildResult.FAILURE.code:0; | ||
this.shownBuildResults |= _unstablesShown?BuildResult.UNSTABLE.code:0; | ||
this.shownBuildResults |= _abortedShown?BuildResult.ABORTED.code:0; | ||
this.shownBuildResults |= _notBuildsShown?BuildResult.NOT_BUILD.code:0; | ||
} | ||
|
||
public boolean isJobResultEligible(JobBuildResult result){ | ||
boolean jobBuildEligible = true; | ||
|
||
jobBuildEligible &= getCalculatedJobFilter().isFieldValueValid(result.getJobName()); | ||
jobBuildEligible &= getCalculatedNodeFilter().isFieldValueValid(result.getNodeName()); | ||
jobBuildEligible &= isAbortedShown() || result.getResult().getAbortedCount()!=1; | ||
jobBuildEligible &= isFailuresShown() || result.getResult().getFailureCount()!=1; | ||
jobBuildEligible &= isNotBuildShown() || result.getResult().getNotBuildCount()!=1; | ||
jobBuildEligible &= isSuccessShown() || result.getResult().getSuccessCount()!=1; | ||
jobBuildEligible &= isUnstablesShown() || result.getResult().getUnstableCount()!=1; | ||
|
||
return jobBuildEligible; | ||
} | ||
|
||
public void setJobFilter(String jobFilter) { | ||
this.jobFilter = jobFilter; | ||
this.calculatedJobFilter = FieldFilterFactory.createFieldFilter(jobFilter); | ||
} | ||
|
||
public void setNodeFilter(String nodeFilter) { | ||
this.nodeFilter = nodeFilter; | ||
this.calculatedNodeFilter = FieldFilterFactory.createFieldFilter(nodeFilter); | ||
} | ||
|
||
protected FieldFilter getCalculatedJobFilter(){ | ||
// When BuildStatConfiguration is XStream deserialized, the transient calculatedJobFilter field | ||
// will be null ! | ||
if(calculatedJobFilter == null){ calculatedJobFilter = FieldFilterFactory.createFieldFilter(jobFilter); } | ||
return this.calculatedJobFilter; | ||
} | ||
|
||
protected FieldFilter getCalculatedNodeFilter(){ | ||
// When BuildStatConfiguration is XStream deserialized, the transient calculatedNodeFilter field | ||
// will be null ! | ||
if(calculatedNodeFilter == null){ calculatedNodeFilter = FieldFilterFactory.createFieldFilter(nodeFilter); } | ||
return this.calculatedNodeFilter; | ||
} | ||
|
||
@Exported | ||
public boolean isSuccessShown(){ | ||
return (shownBuildResults & BuildResult.SUCCESS.code) != 0; | ||
} | ||
|
||
@Exported | ||
public boolean isFailuresShown(){ | ||
return (shownBuildResults & BuildResult.FAILURE.code) != 0; | ||
} | ||
|
||
@Exported | ||
public boolean isUnstablesShown(){ | ||
return (shownBuildResults & BuildResult.UNSTABLE.code) != 0; | ||
} | ||
|
||
@Exported | ||
public boolean isAbortedShown(){ | ||
return (shownBuildResults & BuildResult.ABORTED.code) != 0; | ||
} | ||
|
||
@Exported | ||
public boolean isNotBuildShown(){ | ||
return (shownBuildResults & BuildResult.NOT_BUILD.code) != 0; | ||
} | ||
|
||
@Exported | ||
public String getJobFilter() { | ||
return jobFilter; | ||
} | ||
|
||
@Exported | ||
public String getNodeFilter() { | ||
return nodeFilter; | ||
} | ||
|
||
public void setShownBuildResults(short shownBuildResults) { | ||
this.shownBuildResults = shownBuildResults; | ||
} | ||
} |
Oops, something went wrong.