/* * Copyright 2012-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file 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.amazonaws.services.devicefarm.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.protocol.StructuredPojo; import com.amazonaws.protocol.ProtocolMarshaller; /** * <p> * Represents a specific warning or failure. * </p> * * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/Problem" target="_top">AWS API * Documentation</a> */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class Problem implements Serializable, Cloneable, StructuredPojo { /** * <p> * Information about the associated run. * </p> */ private ProblemDetail run; /** * <p> * Information about the associated job. * </p> */ private ProblemDetail job; /** * <p> * Information about the associated suite. * </p> */ private ProblemDetail suite; /** * <p> * Information about the associated test. * </p> */ private ProblemDetail test; /** * <p> * Information about the associated device. * </p> */ private Device device; /** * <p> * The problem's result. * </p> * <p> * Allowed values include: * </p> * <ul> * <li> * <p> * PENDING: A pending condition. * </p> * </li> * <li> * <p> * PASSED: A passing condition. * </p> * </li> * <li> * <p> * WARNED: A warning condition. * </p> * </li> * <li> * <p> * FAILED: A failed condition. * </p> * </li> * <li> * <p> * SKIPPED: A skipped condition. * </p> * </li> * <li> * <p> * ERRORED: An error condition. * </p> * </li> * <li> * <p> * STOPPED: A stopped condition. * </p> * </li> * </ul> */ private String result; /** * <p> * A message about the problem's result. * </p> */ private String message; /** * <p> * Information about the associated run. * </p> * * @param run * Information about the associated run. */ public void setRun(ProblemDetail run) { this.run = run; } /** * <p> * Information about the associated run. * </p> * * @return Information about the associated run. */ public ProblemDetail getRun() { return this.run; } /** * <p> * Information about the associated run. * </p> * * @param run * Information about the associated run. * @return Returns a reference to this object so that method calls can be chained together. */ public Problem withRun(ProblemDetail run) { setRun(run); return this; } /** * <p> * Information about the associated job. * </p> * * @param job * Information about the associated job. */ public void setJob(ProblemDetail job) { this.job = job; } /** * <p> * Information about the associated job. * </p> * * @return Information about the associated job. */ public ProblemDetail getJob() { return this.job; } /** * <p> * Information about the associated job. * </p> * * @param job * Information about the associated job. * @return Returns a reference to this object so that method calls can be chained together. */ public Problem withJob(ProblemDetail job) { setJob(job); return this; } /** * <p> * Information about the associated suite. * </p> * * @param suite * Information about the associated suite. */ public void setSuite(ProblemDetail suite) { this.suite = suite; } /** * <p> * Information about the associated suite. * </p> * * @return Information about the associated suite. */ public ProblemDetail getSuite() { return this.suite; } /** * <p> * Information about the associated suite. * </p> * * @param suite * Information about the associated suite. * @return Returns a reference to this object so that method calls can be chained together. */ public Problem withSuite(ProblemDetail suite) { setSuite(suite); return this; } /** * <p> * Information about the associated test. * </p> * * @param test * Information about the associated test. */ public void setTest(ProblemDetail test) { this.test = test; } /** * <p> * Information about the associated test. * </p> * * @return Information about the associated test. */ public ProblemDetail getTest() { return this.test; } /** * <p> * Information about the associated test. * </p> * * @param test * Information about the associated test. * @return Returns a reference to this object so that method calls can be chained together. */ public Problem withTest(ProblemDetail test) { setTest(test); return this; } /** * <p> * Information about the associated device. * </p> * * @param device * Information about the associated device. */ public void setDevice(Device device) { this.device = device; } /** * <p> * Information about the associated device. * </p> * * @return Information about the associated device. */ public Device getDevice() { return this.device; } /** * <p> * Information about the associated device. * </p> * * @param device * Information about the associated device. * @return Returns a reference to this object so that method calls can be chained together. */ public Problem withDevice(Device device) { setDevice(device); return this; } /** * <p> * The problem's result. * </p> * <p> * Allowed values include: * </p> * <ul> * <li> * <p> * PENDING: A pending condition. * </p> * </li> * <li> * <p> * PASSED: A passing condition. * </p> * </li> * <li> * <p> * WARNED: A warning condition. * </p> * </li> * <li> * <p> * FAILED: A failed condition. * </p> * </li> * <li> * <p> * SKIPPED: A skipped condition. * </p> * </li> * <li> * <p> * ERRORED: An error condition. * </p> * </li> * <li> * <p> * STOPPED: A stopped condition. * </p> * </li> * </ul> * * @param result * The problem's result.</p> * <p> * Allowed values include: * </p> * <ul> * <li> * <p> * PENDING: A pending condition. * </p> * </li> * <li> * <p> * PASSED: A passing condition. * </p> * </li> * <li> * <p> * WARNED: A warning condition. * </p> * </li> * <li> * <p> * FAILED: A failed condition. * </p> * </li> * <li> * <p> * SKIPPED: A skipped condition. * </p> * </li> * <li> * <p> * ERRORED: An error condition. * </p> * </li> * <li> * <p> * STOPPED: A stopped condition. * </p> * </li> * @see ExecutionResult */ public void setResult(String result) { this.result = result; } /** * <p> * The problem's result. * </p> * <p> * Allowed values include: * </p> * <ul> * <li> * <p> * PENDING: A pending condition. * </p> * </li> * <li> * <p> * PASSED: A passing condition. * </p> * </li> * <li> * <p> * WARNED: A warning condition. * </p> * </li> * <li> * <p> * FAILED: A failed condition. * </p> * </li> * <li> * <p> * SKIPPED: A skipped condition. * </p> * </li> * <li> * <p> * ERRORED: An error condition. * </p> * </li> * <li> * <p> * STOPPED: A stopped condition. * </p> * </li> * </ul> * * @return The problem's result.</p> * <p> * Allowed values include: * </p> * <ul> * <li> * <p> * PENDING: A pending condition. * </p> * </li> * <li> * <p> * PASSED: A passing condition. * </p> * </li> * <li> * <p> * WARNED: A warning condition. * </p> * </li> * <li> * <p> * FAILED: A failed condition. * </p> * </li> * <li> * <p> * SKIPPED: A skipped condition. * </p> * </li> * <li> * <p> * ERRORED: An error condition. * </p> * </li> * <li> * <p> * STOPPED: A stopped condition. * </p> * </li> * @see ExecutionResult */ public String getResult() { return this.result; } /** * <p> * The problem's result. * </p> * <p> * Allowed values include: * </p> * <ul> * <li> * <p> * PENDING: A pending condition. * </p> * </li> * <li> * <p> * PASSED: A passing condition. * </p> * </li> * <li> * <p> * WARNED: A warning condition. * </p> * </li> * <li> * <p> * FAILED: A failed condition. * </p> * </li> * <li> * <p> * SKIPPED: A skipped condition. * </p> * </li> * <li> * <p> * ERRORED: An error condition. * </p> * </li> * <li> * <p> * STOPPED: A stopped condition. * </p> * </li> * </ul> * * @param result * The problem's result.</p> * <p> * Allowed values include: * </p> * <ul> * <li> * <p> * PENDING: A pending condition. * </p> * </li> * <li> * <p> * PASSED: A passing condition. * </p> * </li> * <li> * <p> * WARNED: A warning condition. * </p> * </li> * <li> * <p> * FAILED: A failed condition. * </p> * </li> * <li> * <p> * SKIPPED: A skipped condition. * </p> * </li> * <li> * <p> * ERRORED: An error condition. * </p> * </li> * <li> * <p> * STOPPED: A stopped condition. * </p> * </li> * @return Returns a reference to this object so that method calls can be chained together. * @see ExecutionResult */ public Problem withResult(String result) { setResult(result); return this; } /** * <p> * The problem's result. * </p> * <p> * Allowed values include: * </p> * <ul> * <li> * <p> * PENDING: A pending condition. * </p> * </li> * <li> * <p> * PASSED: A passing condition. * </p> * </li> * <li> * <p> * WARNED: A warning condition. * </p> * </li> * <li> * <p> * FAILED: A failed condition. * </p> * </li> * <li> * <p> * SKIPPED: A skipped condition. * </p> * </li> * <li> * <p> * ERRORED: An error condition. * </p> * </li> * <li> * <p> * STOPPED: A stopped condition. * </p> * </li> * </ul> * * @param result * The problem's result.</p> * <p> * Allowed values include: * </p> * <ul> * <li> * <p> * PENDING: A pending condition. * </p> * </li> * <li> * <p> * PASSED: A passing condition. * </p> * </li> * <li> * <p> * WARNED: A warning condition. * </p> * </li> * <li> * <p> * FAILED: A failed condition. * </p> * </li> * <li> * <p> * SKIPPED: A skipped condition. * </p> * </li> * <li> * <p> * ERRORED: An error condition. * </p> * </li> * <li> * <p> * STOPPED: A stopped condition. * </p> * </li> * @see ExecutionResult */ public void setResult(ExecutionResult result) { this.result = result.toString(); } /** * <p> * The problem's result. * </p> * <p> * Allowed values include: * </p> * <ul> * <li> * <p> * PENDING: A pending condition. * </p> * </li> * <li> * <p> * PASSED: A passing condition. * </p> * </li> * <li> * <p> * WARNED: A warning condition. * </p> * </li> * <li> * <p> * FAILED: A failed condition. * </p> * </li> * <li> * <p> * SKIPPED: A skipped condition. * </p> * </li> * <li> * <p> * ERRORED: An error condition. * </p> * </li> * <li> * <p> * STOPPED: A stopped condition. * </p> * </li> * </ul> * * @param result * The problem's result.</p> * <p> * Allowed values include: * </p> * <ul> * <li> * <p> * PENDING: A pending condition. * </p> * </li> * <li> * <p> * PASSED: A passing condition. * </p> * </li> * <li> * <p> * WARNED: A warning condition. * </p> * </li> * <li> * <p> * FAILED: A failed condition. * </p> * </li> * <li> * <p> * SKIPPED: A skipped condition. * </p> * </li> * <li> * <p> * ERRORED: An error condition. * </p> * </li> * <li> * <p> * STOPPED: A stopped condition. * </p> * </li> * @return Returns a reference to this object so that method calls can be chained together. * @see ExecutionResult */ public Problem withResult(ExecutionResult result) { setResult(result); return this; } /** * <p> * A message about the problem's result. * </p> * * @param message * A message about the problem's result. */ public void setMessage(String message) { this.message = message; } /** * <p> * A message about the problem's result. * </p> * * @return A message about the problem's result. */ public String getMessage() { return this.message; } /** * <p> * A message about the problem's result. * </p> * * @param message * A message about the problem's result. * @return Returns a reference to this object so that method calls can be chained together. */ public Problem withMessage(String message) { setMessage(message); return this; } /** * Returns a string representation of this object; useful for testing and debugging. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getRun() != null) sb.append("Run: ").append(getRun()).append(","); if (getJob() != null) sb.append("Job: ").append(getJob()).append(","); if (getSuite() != null) sb.append("Suite: ").append(getSuite()).append(","); if (getTest() != null) sb.append("Test: ").append(getTest()).append(","); if (getDevice() != null) sb.append("Device: ").append(getDevice()).append(","); if (getResult() != null) sb.append("Result: ").append(getResult()).append(","); if (getMessage() != null) sb.append("Message: ").append(getMessage()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof Problem == false) return false; Problem other = (Problem) obj; if (other.getRun() == null ^ this.getRun() == null) return false; if (other.getRun() != null && other.getRun().equals(this.getRun()) == false) return false; if (other.getJob() == null ^ this.getJob() == null) return false; if (other.getJob() != null && other.getJob().equals(this.getJob()) == false) return false; if (other.getSuite() == null ^ this.getSuite() == null) return false; if (other.getSuite() != null && other.getSuite().equals(this.getSuite()) == false) return false; if (other.getTest() == null ^ this.getTest() == null) return false; if (other.getTest() != null && other.getTest().equals(this.getTest()) == false) return false; if (other.getDevice() == null ^ this.getDevice() == null) return false; if (other.getDevice() != null && other.getDevice().equals(this.getDevice()) == false) return false; if (other.getResult() == null ^ this.getResult() == null) return false; if (other.getResult() != null && other.getResult().equals(this.getResult()) == false) return false; if (other.getMessage() == null ^ this.getMessage() == null) return false; if (other.getMessage() != null && other.getMessage().equals(this.getMessage()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getRun() == null) ? 0 : getRun().hashCode()); hashCode = prime * hashCode + ((getJob() == null) ? 0 : getJob().hashCode()); hashCode = prime * hashCode + ((getSuite() == null) ? 0 : getSuite().hashCode()); hashCode = prime * hashCode + ((getTest() == null) ? 0 : getTest().hashCode()); hashCode = prime * hashCode + ((getDevice() == null) ? 0 : getDevice().hashCode()); hashCode = prime * hashCode + ((getResult() == null) ? 0 : getResult().hashCode()); hashCode = prime * hashCode + ((getMessage() == null) ? 0 : getMessage().hashCode()); return hashCode; } @Override public Problem clone() { try { return (Problem) super.clone(); } catch (CloneNotSupportedException e) { throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e); } } @com.amazonaws.annotation.SdkInternalApi @Override public void marshall(ProtocolMarshaller protocolMarshaller) { com.amazonaws.services.devicefarm.model.transform.ProblemMarshaller.getInstance().marshall(this, protocolMarshaller); } }