summaryrefslogtreecommitdiff
path: root/src/plugins/preflighting.core/src/com/motorolamobility/preflighting/core/validation/ValidationResultData.java
diff options
context:
space:
mode:
authorEric Cloninger <dcp874@motorola.com>2012-08-15 11:57:06 -0500
committerEric Cloninger <dcp874@motorola.com>2012-08-17 09:33:37 -0500
commitb613ddc1cf740750ab9dc20f1b051a2f04f5dbef (patch)
tree10b2a4be4590c35e0f8027f3773fbcc61e05fd08 /src/plugins/preflighting.core/src/com/motorolamobility/preflighting/core/validation/ValidationResultData.java
parent1fc2254217371e1bae3c9373d2474b1053c869f9 (diff)
downloadmotodev-b613ddc1cf740750ab9dc20f1b051a2f04f5dbef.tar.gz
Initial contribution of Motorola MOTODEV tools code
This patch contains Eclipse plugins that complement the Android Development Tools (ADT). The patch also contains the MOTODEV App Validator, a static analysis tool for Android apps. App Validator is built as an Eclipse RCP that runs on the command line, but also has an Eclipse IDE integration. To build the plugins, you will need Eclipse 3.7 or 4.2 with the PDE installed with Java 6. An ant build file will come in a separate patch. Change-Id: I8af2e5980eb24ed1c206bb2ddb9b3d733b9eff56 Signed-off-by: Eric Cloninger <dcp874@motorola.com>
Diffstat (limited to 'src/plugins/preflighting.core/src/com/motorolamobility/preflighting/core/validation/ValidationResultData.java')
-rw-r--r--src/plugins/preflighting.core/src/com/motorolamobility/preflighting/core/validation/ValidationResultData.java350
1 files changed, 350 insertions, 0 deletions
diff --git a/src/plugins/preflighting.core/src/com/motorolamobility/preflighting/core/validation/ValidationResultData.java b/src/plugins/preflighting.core/src/com/motorolamobility/preflighting/core/validation/ValidationResultData.java
new file mode 100644
index 0000000..1a91fd9
--- /dev/null
+++ b/src/plugins/preflighting.core/src/com/motorolamobility/preflighting/core/validation/ValidationResultData.java
@@ -0,0 +1,350 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.motorolamobility.preflighting.core.validation;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import com.motorolamobility.preflighting.core.checker.condition.Condition;
+import com.motorolamobility.preflighting.core.i18n.PreflightingCoreNLS;
+
+/**
+ * Corresponds to one validation issue found by a checker/condition.
+ */
+public class ValidationResultData
+{
+ /**
+ * Severity level of the result.
+ */
+ public enum SEVERITY
+ {
+ /**
+ * The FATAL level is used for severe error events. In case of FATAL, the
+ * application could be aborted.
+ */
+ FATAL
+ {
+ @Override
+ public String toString()
+ {
+ return PreflightingCoreNLS.ValidationResultData_FatalSeverityMessage;
+ }
+ },
+ /**
+ * The ERROR level is used by errors events. Less severe than FATAL, used
+ * for situations of error that will not crash the application.
+ */
+ ERROR
+ {
+ @Override
+ public String toString()
+ {
+ return PreflightingCoreNLS.ValidationResultData_ErrorSeverityMessage;
+ }
+ },
+ /**
+ * The WARNING level is used for potentially harmful situations. Used for
+ * situations that can generate an error.
+ */
+ WARNING
+ {
+ @Override
+ public String toString()
+ {
+ return PreflightingCoreNLS.ValidationResultData_WarningSeverityMessage;
+ }
+ },
+ /**
+ * The OK level is used if no problem was identified by this checker / condition.
+ */
+ OK
+ {
+ @Override
+ public String toString()
+ {
+ return PreflightingCoreNLS.ValidationResultData_OkSeverityMessage;
+ }
+ };
+
+ }
+
+ private Map<File, List<Integer>> fileToIssueLines;
+
+ // initialize to avoid invalid value (null)
+ private SEVERITY severity = SEVERITY.OK;
+
+ private String issueDescription;
+
+ private String quickFixSuggestion;
+
+ /**
+ * The condition associated with this result data.
+ */
+ private String conditionID;
+
+ /**
+ * The preview associated with this data (like the line with problems)
+ */
+ private String preview = null;
+
+ /**
+ * Link with more information about validation/checker
+ */
+ private String infoURL = null;
+
+ private String markerType;
+
+ private final List<Object> extra;
+
+ /**
+ * Default constructor.
+ */
+ public ValidationResultData()
+ {
+ fileToIssueLines = new HashMap<File, List<Integer>>();
+ extra = new ArrayList<Object>();
+ }
+
+ /**
+ * Constructor that fills the most used items when an issue is raised.
+ * @param fileToIssueLines List of files and the lines where the problem occurred
+ * @param severity {@link SEVERITY} of the issue.
+ * @param issueDescription Description of the issue.
+ * @param quickFixSuggestion Quick fix suggested.
+ * @param conditionID {@link Condition#getId()} that identified the issue.
+ */
+ public ValidationResultData(Map<File, List<Integer>> fileToIssueLines, SEVERITY severity,
+ String issueDescription, String quickFixSuggestion, String conditionID)
+ {
+ this.fileToIssueLines =
+ fileToIssueLines != null ? fileToIssueLines : new HashMap<File, List<Integer>>();
+ this.severity = severity;
+ this.issueDescription = issueDescription;
+ this.quickFixSuggestion = quickFixSuggestion;
+ this.conditionID = conditionID;
+ this.extra = new ArrayList<Object>();
+ }
+
+ /**
+ * Constructor that fills the most used items when an issue is raised.
+ * @param fileToIssueLines List of files and the lines where the problem occurred
+ * @param severity {@link SEVERITY} of the issue.
+ * @param issueDescription Description of the issue.
+ * @param quickFixSuggestion Quick fix suggested.
+ * @param conditionID {@link Condition#getId()} that identified the issue.
+ * @param markerType the type of the problem that will be reported by App Validator.
+ */
+ public ValidationResultData(Map<File, List<Integer>> fileToIssueLines, SEVERITY severity,
+ String issueDescription, String quickFixSuggestion, String conditionID,
+ String markerType)
+ {
+ this.fileToIssueLines =
+ fileToIssueLines != null ? fileToIssueLines : new HashMap<File, List<Integer>>();
+ this.severity = severity;
+ this.issueDescription = issueDescription;
+ this.quickFixSuggestion = quickFixSuggestion;
+ this.conditionID = conditionID;
+ this.markerType = markerType;
+ this.extra = new ArrayList<Object>();
+ }
+
+ /**
+ * Returns a {@link Map} containing the {@link File} and the corresponding lines with issues of this
+ * {@link ValidationResultData}.
+ * @return a {@link Map} with the {@link File} and its issue lines.
+ */
+ public Map<File, List<Integer>> getFileToIssueLines()
+ {
+ return fileToIssueLines;
+ }
+
+ /**
+ * Adds to a File, usually the problematic one, to the issue lines of the {@link ValidationResultData}.
+ * @param file the file descriptor.
+ * @param lines the lines in which the issue appears. */
+
+ public void addFileToIssueLines(File file, List<Integer> lines)
+ {
+ if (fileToIssueLines == null)
+ {
+ fileToIssueLines = new HashMap<File, List<Integer>>();
+ }
+ fileToIssueLines.put(file, lines);
+ }
+
+ /**
+ * Returns the issue {@link SEVERITY}.
+ * @return the issue {@link SEVERITY}.
+ */
+ public SEVERITY getSeverity()
+ {
+ return severity;
+ }
+
+ /**
+ * Sets the {@link ValidationResultData} issue severity.
+ * @param severity a {@link SEVERITY}.
+ */
+ public void setSeverity(SEVERITY severity)
+ {
+ // protect from invalid value (null)
+ if (severity != null)
+ {
+ this.severity = severity;
+ }
+ else
+ {
+ this.severity = SEVERITY.OK;
+ }
+ }
+
+ /**
+ * Returns the issue description for this {@link ValidationResultData}.
+ * @return the issue description.
+ */
+ public String getIssueDescription()
+ {
+ return issueDescription;
+ }
+
+ /**
+ * Sets the issue description for this {@link ValidationResultData}.
+ * @param issueDescription the issue description.
+ */
+ public void setIssueDescription(String issueDescription)
+ {
+ this.issueDescription = issueDescription;
+ }
+
+ /**
+ * Return the quick fix suggestion for this issue, or <code>null</code>
+ * if there's no suggestion.
+ *
+ * @return The quick fix suggestion.
+ */
+ public String getQuickFixSuggestion()
+ {
+ return quickFixSuggestion;
+ }
+
+ /**
+ * Set the quick fix suggestion for this issue. If an empty string, or <code>null</code>
+ * is passed, the quick fix suggestion is set to <code>null</code>, indicating
+ * there is no suggestion for the issue.
+ *
+ * @param quickFixSuggestion The quick fix suggestion for the issue.
+ */
+ public void setQuickFixSuggestion(String quickFixSuggestion)
+ {
+ if ((quickFixSuggestion == null) || (quickFixSuggestion.length() == 0))
+ {
+ this.quickFixSuggestion = null;
+ }
+ else
+ {
+ this.quickFixSuggestion = quickFixSuggestion;
+ }
+ }
+
+ /**
+ * Returns the condition ID from this {@link ValidationResultData}.
+ * @return The condition ID.
+ */
+ public String getConditionID()
+ {
+ return conditionID;
+ }
+
+ /**
+ * Sets the Condition Id of this {@link ValidationResultData}.
+ * @param conditionID The condition ID to set.
+ */
+ public void setConditionID(String conditionID)
+ {
+ this.conditionID = conditionID;
+ }
+
+ /**
+ * Get line preview of validation result.
+ * @return The preview text or null if no preview is available.
+ */
+ public String getPreview()
+ {
+ return preview;
+ }
+
+ /**
+ * Set the validation preview that will be seen by user.
+ * @param preview A preview text.
+ */
+ public void setPreview(String preview)
+ {
+ this.preview = preview;
+ }
+
+ /**
+ * Get infoURL with more information about error.
+ * @return The infoURL.
+ */
+ public String getInfoURL()
+ {
+ return infoURL;
+ }
+
+ /**
+ * Set infoURL with more information.
+ * @param infoURL the url with the info
+ */
+ public void setInfoURL(String url)
+ {
+ this.infoURL = url;
+ }
+
+ /**
+ * @return the markerType
+ */
+ public String getMarkerType()
+ {
+ return markerType;
+ }
+
+ /**
+ * @param markerType the markerType to set
+ */
+ public void setMarkerType(String markerType)
+ {
+ this.markerType = markerType;
+ }
+
+ /**
+ * @return the list of extra values.
+ */
+ public List<Object> getExtra()
+ {
+ return this.extra;
+ }
+
+ /**
+ * Appends {@code value} to the list of extras.
+ */
+ public void appendExtra(Object value)
+ {
+ extra.add(value);
+ }
+} \ No newline at end of file