/* * Copyright 2011 JBoss Inc * * 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 org.drools.informer; import java.io.Serializable; /** * A temporary object representing the answer to a question. * * The answer is always a String since it models what the user has typed in. * * When an Answer is inserted into the working memory, the Tohu built-in rules automatically converts copies the value onto the * corresponding Question (converting the data type as necessary). The Answer is then retracted from the working memory. If the * data type conversion fails then an InvalidAnswer object is asserted. * * @author Damon Horrell */ public class Answer implements Serializable { private static final long serialVersionUID = 1L; private String questionId; private String questionType; private String questionContext; private String value; private String source; public Answer() { } public Answer(String type, String context, String value, String source) { this.questionId = null; this.questionType = type; this.questionContext = context; this.value = value; this.source = source; } public Answer(String type, String context, String value) { this.questionId = null; this.questionType = type; this.questionContext = context; this.value = value; } public Answer(String questionId, String value) { this.questionId = questionId; this.value = value; } public String getQuestionId() { return questionId; } public void setQuestionId(String questionId) { this.questionId = questionId; } public String getValue() { return value; } @Deprecated public void setvalue(String value) { this.value = value; } public void setValue(String value) { this.value = value; } public String getSource() { return source; } public void setSource(String source) { this.source = source; } /** * @see Object#hashCode() */ @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((questionId == null) ? 0 : questionId.hashCode()); return result; } /** * @see Object#equals(Object) */ @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; final Answer other = (Answer) obj; if (questionId == null) { if (other.questionId != null) return false; } else if (!questionId.equals(other.questionId)) return false; return true; } @Override public String toString() { return "Answer{" + "questionId='" + questionId + '\'' + ", questionType='" + questionType + '\'' + ", questionContext='" + questionContext + '\'' + ", value='" + value + '\'' + '}'; } public String getQuestionType() { return questionType; } public void setQuestionType(String questionType) { this.questionType = questionType; } public String getQuestionContext() { return questionContext; } public void setQuestionContext(String questionContext) { this.questionContext = questionContext; } }