summaryrefslogtreecommitdiff
path: root/src/plugins/preflighting.core/src/com/motorolamobility/preflighting/core/validation/ValidationResultData.java
diff options
context:
space:
mode:
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