001: /*
002: * Hammurapi
003: * Automated Java code review system.
004: * Copyright (C) 2004 Hammurapi Group
005: *
006: * This program is free software; you can redistribute it and/or modify
007: * it under the terms of the GNU General Public License as published by
008: * the Free Software Foundation; either version 2 of the License, or
009: * (at your option) any later version.
010: *
011: * This program is distributed in the hope that it will be useful,
012: * but WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
014: * GNU General Public License for more details.
015: *
016: * You should have received a copy of the GNU General Public License
017: * along with this program; if not, write to the Free Software
018: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
019: *
020: * URL: http://www.hammurapi.org
021: * e-Mail: support@hammurapi.biz
022: */
023: package org.hammurapi;
024:
025: import java.io.File;
026: import java.util.HashMap;
027: import java.util.Iterator;
028: import java.util.Map;
029:
030: import org.apache.tools.ant.Project;
031:
032: import com.pavelvlasov.ant.Param;
033: import com.pavelvlasov.config.ConfigurationException;
034: import com.pavelvlasov.config.Parameterizable;
035:
036: /**
037: * @author Pavel Vlasov
038: * @version $Revision: 1.2 $
039: * @ant.element parent="output" name="stylesheet" display-name="Stylesheet nested element of output"
040: * @ant.non-required
041: */
042: public class StyleSheetEntry {
043:
044: private String name;
045: private File file;
046: private String url;
047: private Map parameters = new HashMap();
048:
049: /**
050: * @return
051: */
052: public String getName() {
053: return name;
054: }
055:
056: /**
057: * Stylesheet 'logical' name. Supported names are:
058: * <UL>
059: * <LI>compilation-unit</LI>
060: * <LI>summary</LI>
061: * <LI>left-panel</LI>
062: * <LI>package</LI>
063: * <LI>inspector-set</LI>
064: * <LI>inspector-descriptor</LI>
065: * <LI>inspector-summary</LI>
066: * <LI>metric-details</LI>
067: * </UL>
068: * @return
069: * @ant.required
070: */
071: public void setName(String name) {
072: this .name = name;
073: }
074:
075: /**
076: * @return
077: */
078: public File getFile() {
079: return file;
080: }
081:
082: /**
083: * @return
084: */
085: public String getUrl() {
086: return url;
087: }
088:
089: /**
090: * Stylesheet to use. Mutually exclusive with URL
091: * @param file
092: * @ant.non-required
093: */
094: public void setFile(File file) {
095: this .file = file;
096: }
097:
098: /**
099: * URL to download stylesheet from. Mutually exclusive with File.
100: * @param url
101: * @ant.non-required
102: */
103: public void setUrl(String url) {
104: this .url = url;
105: }
106:
107: /**
108: * @return
109: */
110: public Map getParameters() {
111: return parameters;
112: }
113:
114: /**
115: * @param parameters
116: * @ant.ignore
117: */
118: public void setParameters(Map parameters) {
119: this .parameters.putAll(parameters);
120: }
121:
122: /**
123: * Parameter which will be passed to transformer.
124: * @param param
125: * @ant.non-required
126: */
127: public void addConfiguredParameter(Param param) {
128: parameters.put(param.getName(), param);
129: }
130:
131: void setParameters(Project project, Parameterizable p)
132: throws ConfigurationException {
133: Iterator pit = parameters.values().iterator();
134: while (pit.hasNext()) {
135: Param param = (Param) pit.next();
136:
137: param.setProject(project);
138: param.execute();
139:
140: Object value = param.getObject(null);
141: if (value != null) {
142: p.setParameter(param.getName(), value);
143: }
144: }
145: }
146: }
|