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.results.simple;
024:
025: import java.io.Serializable;
026: import java.util.Collection;
027: import java.util.LinkedList;
028: import java.util.List;
029:
030: import org.hammurapi.HammurapiException;
031: import org.hammurapi.Inspector;
032: import org.hammurapi.InspectorDescriptor;
033: import org.hammurapi.results.InspectorSummary;
034:
035: import com.pavelvlasov.config.ConfigurationException;
036: import com.pavelvlasov.jsel.CompilationUnit;
037: import com.pavelvlasov.jsel.LanguageElement;
038: import com.pavelvlasov.review.SimpleSourceMarker;
039: import com.pavelvlasov.review.SourceMarker;
040:
041: public class SimpleInspectorSummary implements Comparable,
042: InspectorSummary, Serializable {
043: /**
044: * Comment for <code>serialVersionUID</code>
045: */
046: private static final long serialVersionUID = 823706029595309352L;
047: private List locations = new LinkedList();
048: private String description;
049: private String name;
050: private Number severity;
051: private String configInfo;
052:
053: SimpleInspectorSummary(InspectorDescriptor descriptor)
054: throws HammurapiException {
055: this .description = descriptor.getDescription();
056: this .name = descriptor.getName();
057: this .severity = descriptor.getSeverity();
058: try {
059: Inspector inspector = descriptor.getInspector();
060: configInfo = inspector == null ? null : inspector
061: .getConfigInfo();
062: } catch (ConfigurationException e) {
063: throw new HammurapiException(
064: "Unable to obtain inspector config info");
065: }
066: }
067:
068: SimpleInspectorSummary(InspectorSummary anotherEntry) {
069: this .description = anotherEntry.getDescription();
070: this .name = anotherEntry.getName();
071: this .severity = anotherEntry.getSeverity();
072: this .configInfo = anotherEntry.getConfigInfo();
073: this .locations.addAll(anotherEntry.getLocations());
074: }
075:
076: public String getDescription() {
077: return description;
078: }
079:
080: public List getLocations() {
081: return locations;
082: }
083:
084: public int getLocationsCount() {
085: return locations.size();
086: }
087:
088: public void addLocation(SourceMarker location) {
089: SimpleSourceMarker ssm = new SimpleSourceMarker(location);
090:
091: // Bad design, fix in the future
092: if (location instanceof LanguageElement) {
093: CompilationUnit cu = ((LanguageElement) location)
094: .getCompilationUnit();
095: ssm.setSourceURL(cu.getPackage().getName()
096: .replace('.', '/')
097: + '/' + cu.getName());
098: }
099: locations.add(ssm);
100: }
101:
102: public void addLocations(Collection locations) {
103: this .locations.addAll(locations);
104: }
105:
106: /**
107: * @return Returns the name.
108: */
109: public String getName() {
110: return name;
111: }
112:
113: /**
114: * @return Returns the severity.
115: */
116: public Number getSeverity() {
117: return severity;
118: }
119:
120: public int compareTo(Object o) {
121: return name.compareTo(((InspectorSummary) o).getName());
122: }
123:
124: public String getConfigInfo() {
125: return configInfo;
126: }
127:
128: public String getVersion() {
129: return null;
130: }
131:
132: public int getBaseLineLocationsCount() {
133: return 0;
134: }
135:
136: }
|