/* * Created on 28 mai 2005 * * Copyright (c) 2005, PMD for Eclipse Development Team * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * The end-user documentation included with the redistribution, if * any, must include the following acknowledgement: * "This product includes software developed in part by support from * the Defense Advanced Research Project Agency (DARPA)" * * Neither the name of "PMD for Eclipse Development Team" nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ package net.sourceforge.pmd.eclipse.runtime.properties.impl; import javax.xml.bind.annotation.XmlAccessOrder; import javax.xml.bind.annotation.XmlAccessorOrder; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlElementWrapper; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlType; /** * This class is a simple data bean to let simply serialize project properties * to an XML file (or any). * * @author Philippe Herlin * */ @XmlRootElement(name = "pmd") @XmlType(propOrder = {"workingSetName", "ruleSetStoredInProject", "ruleSetFile", "excludePatterns", "includePatterns", "rules", "includeDerivedFiles", "violationsAsErrors", "fullBuildEnabled"}) public class ProjectPropertiesTO { private RuleSpecTO[] rules; private String[] excludePatterns; private String[] includePatterns; private String workingSetName; private boolean ruleSetStoredInProject; private String ruleSetFile; private boolean includeDerivedFiles; private boolean violationsAsErrors = true; /** set the default to true to match pre-flag behavior */ private boolean fullBuildEnabled = true; /** * @return rules an array of RuleSpecTO objects that keep information of rules * selected for the current project */ @XmlElementWrapper(name = "rules") @XmlElement(name = "rule") public RuleSpecTO[] getRules() { return rules; } /** * Set the rules selected for a project * @param rules an array of RuleSpecTO objects describing each select project * rules. */ public void setRules(final RuleSpecTO[] rules) { this.rules = rules; } /** * @return an array of String objects for exclude patterns * for the current project. */ @XmlElementWrapper(name = "excludePatterns") @XmlElement(name = "excludePattern") public String[] getExcludePatterns() { return excludePatterns; } /** * Set the exclude patterns for a project * @param excludePatterns an array of String objects for exclude patterns * for the current project. */ public void setExcludePatterns(String[] excludePatterns) { this.excludePatterns = excludePatterns; } /** * @return an array of String objects for include patterns * for the current project. */ @XmlElementWrapper(name = "includePatterns") @XmlElement(name = "includePattern") public String[] getIncludePatterns() { return includePatterns; } /** * Set the include patterns for a project * @param includePatterns an array of String objects for include patterns * for the current project. */ public void setIncludePatterns(String[] includePatterns) { this.includePatterns = includePatterns; } /** * @return ruleSetStoredInProject tells whether the project use a ruleset * stored in the project or the global plugin ruleset. */ @XmlElement(name = "useProjectRuleSet") public boolean isRuleSetStoredInProject() { return ruleSetStoredInProject; } /** * Tells whether a project must use a ruleset stored in the project or the * global project ruleset. * @param ruleSetStoredInProject see above. */ public void setRuleSetStoredInProject(final boolean ruleSetStoredInProject) { this.ruleSetStoredInProject = ruleSetStoredInProject; } /** * @return Returns the rule set file. */ @XmlElement(name = "ruleSetFile") public String getRuleSetFile() { return ruleSetFile; } /** * @param ruleSetFile The rule set file. */ public void setRuleSetFile(String ruleSetFile) { this.ruleSetFile = ruleSetFile; } /** * @return workingSetName the name of the project workingSet */ @XmlElement(name = "workingSet") public String getWorkingSetName() { return workingSetName; } /** * Set the project working set name * @param workingSetName the name of the project working set */ public void setWorkingSetName(final String workingSetName) { this.workingSetName = workingSetName; } /** * @return Returns the includeDerivedFiles. */ @XmlElement(name = "includeDerivedFiles") public boolean isIncludeDerivedFiles() { return this.includeDerivedFiles; } /** * @param includeDerivedFiles The includeDerivedFiles to set. */ public void setIncludeDerivedFiles(boolean includeDerivedFiles) { this.includeDerivedFiles = includeDerivedFiles; } @XmlElement(name = "violationsAsErrors") public boolean isViolationsAsErrors() { return violationsAsErrors; } public void setViolationsAsErrors(boolean violationsAsErrors) { this.violationsAsErrors = violationsAsErrors; } /** * syntactic sugar for accessing this field * @param fullBuildEnabled whether or not we should run at full build */ public void setFullBuildEnabled(boolean fullBuildEnabled) { this.fullBuildEnabled = fullBuildEnabled; } /** * syntactic sugar for accessing this field * @return true if we should run at full build */ @XmlElement(name = "fullBuildEnabled") public boolean isFullBuildEnabled() { return fullBuildEnabled; } }