/**
 */
package CIM15.IEC61970.Informative.InfWork;

import CIM15.IEC61968.Common.Document;

import java.util.Date;

import org.eclipse.emf.ecore.EClass;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Info Question</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link CIM15.IEC61970.Informative.InfWork.InfoQuestion#getAnswer <em>Answer</em>}</li>
 *   <li>{@link CIM15.IEC61970.Informative.InfWork.InfoQuestion#getAnswerRemark <em>Answer Remark</em>}</li>
 *   <li>{@link CIM15.IEC61970.Informative.InfWork.InfoQuestion#getQuestionText <em>Question Text</em>}</li>
 *   <li>{@link CIM15.IEC61970.Informative.InfWork.InfoQuestion#getAnswerDateTime <em>Answer Date Time</em>}</li>
 *   <li>{@link CIM15.IEC61970.Informative.InfWork.InfoQuestion#getQuestionCode <em>Question Code</em>}</li>
 *   <li>{@link CIM15.IEC61970.Informative.InfWork.InfoQuestion#getQuestionRemark <em>Question Remark</em>}</li>
 *   <li>{@link CIM15.IEC61970.Informative.InfWork.InfoQuestion#getQuestionCategory <em>Question Category</em>}</li>
 * </ul>
 * </p>
 *
 * @generated
 */
public class InfoQuestion extends Document {
	/**
	 * The default value of the '{@link #getAnswer() <em>Answer</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getAnswer()
	 * @generated
	 * @ordered
	 */
	protected static final String ANSWER_EDEFAULT = null;

	/**
	 * The cached value of the '{@link #getAnswer() <em>Answer</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getAnswer()
	 * @generated
	 * @ordered
	 */
	protected String answer = ANSWER_EDEFAULT;

	/**
	 * This is true if the Answer attribute has been set.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	protected boolean answerESet;

	/**
	 * The default value of the '{@link #getAnswerRemark() <em>Answer Remark</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getAnswerRemark()
	 * @generated
	 * @ordered
	 */
	protected static final String ANSWER_REMARK_EDEFAULT = null;

	/**
	 * The cached value of the '{@link #getAnswerRemark() <em>Answer Remark</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getAnswerRemark()
	 * @generated
	 * @ordered
	 */
	protected String answerRemark = ANSWER_REMARK_EDEFAULT;

	/**
	 * This is true if the Answer Remark attribute has been set.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	protected boolean answerRemarkESet;

	/**
	 * The default value of the '{@link #getQuestionText() <em>Question Text</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getQuestionText()
	 * @generated
	 * @ordered
	 */
	protected static final String QUESTION_TEXT_EDEFAULT = null;

	/**
	 * The cached value of the '{@link #getQuestionText() <em>Question Text</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getQuestionText()
	 * @generated
	 * @ordered
	 */
	protected String questionText = QUESTION_TEXT_EDEFAULT;

	/**
	 * This is true if the Question Text attribute has been set.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	protected boolean questionTextESet;

	/**
	 * The default value of the '{@link #getAnswerDateTime() <em>Answer Date Time</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getAnswerDateTime()
	 * @generated
	 * @ordered
	 */
	protected static final Date ANSWER_DATE_TIME_EDEFAULT = null;

	/**
	 * The cached value of the '{@link #getAnswerDateTime() <em>Answer Date Time</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getAnswerDateTime()
	 * @generated
	 * @ordered
	 */
	protected Date answerDateTime = ANSWER_DATE_TIME_EDEFAULT;

	/**
	 * This is true if the Answer Date Time attribute has been set.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	protected boolean answerDateTimeESet;

	/**
	 * The default value of the '{@link #getQuestionCode() <em>Question Code</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getQuestionCode()
	 * @generated
	 * @ordered
	 */
	protected static final String QUESTION_CODE_EDEFAULT = null;

	/**
	 * The cached value of the '{@link #getQuestionCode() <em>Question Code</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getQuestionCode()
	 * @generated
	 * @ordered
	 */
	protected String questionCode = QUESTION_CODE_EDEFAULT;

	/**
	 * This is true if the Question Code attribute has been set.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	protected boolean questionCodeESet;

	/**
	 * The default value of the '{@link #getQuestionRemark() <em>Question Remark</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getQuestionRemark()
	 * @generated
	 * @ordered
	 */
	protected static final String QUESTION_REMARK_EDEFAULT = null;

	/**
	 * The cached value of the '{@link #getQuestionRemark() <em>Question Remark</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getQuestionRemark()
	 * @generated
	 * @ordered
	 */
	protected String questionRemark = QUESTION_REMARK_EDEFAULT;

	/**
	 * This is true if the Question Remark attribute has been set.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	protected boolean questionRemarkESet;

	/**
	 * The default value of the '{@link #getQuestionCategory() <em>Question Category</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getQuestionCategory()
	 * @generated
	 * @ordered
	 */
	protected static final String QUESTION_CATEGORY_EDEFAULT = null;

	/**
	 * The cached value of the '{@link #getQuestionCategory() <em>Question Category</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getQuestionCategory()
	 * @generated
	 * @ordered
	 */
	protected String questionCategory = QUESTION_CATEGORY_EDEFAULT;

	/**
	 * This is true if the Question Category attribute has been set.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	protected boolean questionCategoryESet;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected InfoQuestion() {
		super();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	protected EClass eStaticClass() {
		return InfWorkPackage.Literals.INFO_QUESTION;
	}

	/**
	 * Returns the value of the '<em><b>Answer</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Answer</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Answer</em>' attribute.
	 * @see #isSetAnswer()
	 * @see #unsetAnswer()
	 * @see #setAnswer(String)
	 * @generated
	 */
	public String getAnswer() {
		return answer;
	}

	/**
	 * Sets the value of the '{@link CIM15.IEC61970.Informative.InfWork.InfoQuestion#getAnswer <em>Answer</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Answer</em>' attribute.
	 * @see #isSetAnswer()
	 * @see #unsetAnswer()
	 * @see #getAnswer()
	 * @generated
	 */
	public void setAnswer(String newAnswer) {
		answer = newAnswer;
		answerESet = true;
	}

	/**
	 * Unsets the value of the '{@link CIM15.IEC61970.Informative.InfWork.InfoQuestion#getAnswer <em>Answer</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #isSetAnswer()
	 * @see #getAnswer()
	 * @see #setAnswer(String)
	 * @generated
	 */
	public void unsetAnswer() {
		answer = ANSWER_EDEFAULT;
		answerESet = false;
	}

	/**
	 * Returns whether the value of the '{@link CIM15.IEC61970.Informative.InfWork.InfoQuestion#getAnswer <em>Answer</em>}' attribute is set.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return whether the value of the '<em>Answer</em>' attribute is set.
	 * @see #unsetAnswer()
	 * @see #getAnswer()
	 * @see #setAnswer(String)
	 * @generated
	 */
	public boolean isSetAnswer() {
		return answerESet;
	}

	/**
	 * Returns the value of the '<em><b>Answer Remark</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Answer Remark</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Answer Remark</em>' attribute.
	 * @see #isSetAnswerRemark()
	 * @see #unsetAnswerRemark()
	 * @see #setAnswerRemark(String)
	 * @generated
	 */
	public String getAnswerRemark() {
		return answerRemark;
	}

	/**
	 * Sets the value of the '{@link CIM15.IEC61970.Informative.InfWork.InfoQuestion#getAnswerRemark <em>Answer Remark</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Answer Remark</em>' attribute.
	 * @see #isSetAnswerRemark()
	 * @see #unsetAnswerRemark()
	 * @see #getAnswerRemark()
	 * @generated
	 */
	public void setAnswerRemark(String newAnswerRemark) {
		answerRemark = newAnswerRemark;
		answerRemarkESet = true;
	}

	/**
	 * Unsets the value of the '{@link CIM15.IEC61970.Informative.InfWork.InfoQuestion#getAnswerRemark <em>Answer Remark</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #isSetAnswerRemark()
	 * @see #getAnswerRemark()
	 * @see #setAnswerRemark(String)
	 * @generated
	 */
	public void unsetAnswerRemark() {
		answerRemark = ANSWER_REMARK_EDEFAULT;
		answerRemarkESet = false;
	}

	/**
	 * Returns whether the value of the '{@link CIM15.IEC61970.Informative.InfWork.InfoQuestion#getAnswerRemark <em>Answer Remark</em>}' attribute is set.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return whether the value of the '<em>Answer Remark</em>' attribute is set.
	 * @see #unsetAnswerRemark()
	 * @see #getAnswerRemark()
	 * @see #setAnswerRemark(String)
	 * @generated
	 */
	public boolean isSetAnswerRemark() {
		return answerRemarkESet;
	}

	/**
	 * Returns the value of the '<em><b>Question Text</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Question Text</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Question Text</em>' attribute.
	 * @see #isSetQuestionText()
	 * @see #unsetQuestionText()
	 * @see #setQuestionText(String)
	 * @generated
	 */
	public String getQuestionText() {
		return questionText;
	}

	/**
	 * Sets the value of the '{@link CIM15.IEC61970.Informative.InfWork.InfoQuestion#getQuestionText <em>Question Text</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Question Text</em>' attribute.
	 * @see #isSetQuestionText()
	 * @see #unsetQuestionText()
	 * @see #getQuestionText()
	 * @generated
	 */
	public void setQuestionText(String newQuestionText) {
		questionText = newQuestionText;
		questionTextESet = true;
	}

	/**
	 * Unsets the value of the '{@link CIM15.IEC61970.Informative.InfWork.InfoQuestion#getQuestionText <em>Question Text</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #isSetQuestionText()
	 * @see #getQuestionText()
	 * @see #setQuestionText(String)
	 * @generated
	 */
	public void unsetQuestionText() {
		questionText = QUESTION_TEXT_EDEFAULT;
		questionTextESet = false;
	}

	/**
	 * Returns whether the value of the '{@link CIM15.IEC61970.Informative.InfWork.InfoQuestion#getQuestionText <em>Question Text</em>}' attribute is set.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return whether the value of the '<em>Question Text</em>' attribute is set.
	 * @see #unsetQuestionText()
	 * @see #getQuestionText()
	 * @see #setQuestionText(String)
	 * @generated
	 */
	public boolean isSetQuestionText() {
		return questionTextESet;
	}

	/**
	 * Returns the value of the '<em><b>Answer Date Time</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Answer Date Time</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Answer Date Time</em>' attribute.
	 * @see #isSetAnswerDateTime()
	 * @see #unsetAnswerDateTime()
	 * @see #setAnswerDateTime(Date)
	 * @generated
	 */
	public Date getAnswerDateTime() {
		return answerDateTime;
	}

	/**
	 * Sets the value of the '{@link CIM15.IEC61970.Informative.InfWork.InfoQuestion#getAnswerDateTime <em>Answer Date Time</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Answer Date Time</em>' attribute.
	 * @see #isSetAnswerDateTime()
	 * @see #unsetAnswerDateTime()
	 * @see #getAnswerDateTime()
	 * @generated
	 */
	public void setAnswerDateTime(Date newAnswerDateTime) {
		answerDateTime = newAnswerDateTime;
		answerDateTimeESet = true;
	}

	/**
	 * Unsets the value of the '{@link CIM15.IEC61970.Informative.InfWork.InfoQuestion#getAnswerDateTime <em>Answer Date Time</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #isSetAnswerDateTime()
	 * @see #getAnswerDateTime()
	 * @see #setAnswerDateTime(Date)
	 * @generated
	 */
	public void unsetAnswerDateTime() {
		answerDateTime = ANSWER_DATE_TIME_EDEFAULT;
		answerDateTimeESet = false;
	}

	/**
	 * Returns whether the value of the '{@link CIM15.IEC61970.Informative.InfWork.InfoQuestion#getAnswerDateTime <em>Answer Date Time</em>}' attribute is set.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return whether the value of the '<em>Answer Date Time</em>' attribute is set.
	 * @see #unsetAnswerDateTime()
	 * @see #getAnswerDateTime()
	 * @see #setAnswerDateTime(Date)
	 * @generated
	 */
	public boolean isSetAnswerDateTime() {
		return answerDateTimeESet;
	}

	/**
	 * Returns the value of the '<em><b>Question Code</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Question Code</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Question Code</em>' attribute.
	 * @see #isSetQuestionCode()
	 * @see #unsetQuestionCode()
	 * @see #setQuestionCode(String)
	 * @generated
	 */
	public String getQuestionCode() {
		return questionCode;
	}

	/**
	 * Sets the value of the '{@link CIM15.IEC61970.Informative.InfWork.InfoQuestion#getQuestionCode <em>Question Code</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Question Code</em>' attribute.
	 * @see #isSetQuestionCode()
	 * @see #unsetQuestionCode()
	 * @see #getQuestionCode()
	 * @generated
	 */
	public void setQuestionCode(String newQuestionCode) {
		questionCode = newQuestionCode;
		questionCodeESet = true;
	}

	/**
	 * Unsets the value of the '{@link CIM15.IEC61970.Informative.InfWork.InfoQuestion#getQuestionCode <em>Question Code</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #isSetQuestionCode()
	 * @see #getQuestionCode()
	 * @see #setQuestionCode(String)
	 * @generated
	 */
	public void unsetQuestionCode() {
		questionCode = QUESTION_CODE_EDEFAULT;
		questionCodeESet = false;
	}

	/**
	 * Returns whether the value of the '{@link CIM15.IEC61970.Informative.InfWork.InfoQuestion#getQuestionCode <em>Question Code</em>}' attribute is set.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return whether the value of the '<em>Question Code</em>' attribute is set.
	 * @see #unsetQuestionCode()
	 * @see #getQuestionCode()
	 * @see #setQuestionCode(String)
	 * @generated
	 */
	public boolean isSetQuestionCode() {
		return questionCodeESet;
	}

	/**
	 * Returns the value of the '<em><b>Question Remark</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Question Remark</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Question Remark</em>' attribute.
	 * @see #isSetQuestionRemark()
	 * @see #unsetQuestionRemark()
	 * @see #setQuestionRemark(String)
	 * @generated
	 */
	public String getQuestionRemark() {
		return questionRemark;
	}

	/**
	 * Sets the value of the '{@link CIM15.IEC61970.Informative.InfWork.InfoQuestion#getQuestionRemark <em>Question Remark</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Question Remark</em>' attribute.
	 * @see #isSetQuestionRemark()
	 * @see #unsetQuestionRemark()
	 * @see #getQuestionRemark()
	 * @generated
	 */
	public void setQuestionRemark(String newQuestionRemark) {
		questionRemark = newQuestionRemark;
		questionRemarkESet = true;
	}

	/**
	 * Unsets the value of the '{@link CIM15.IEC61970.Informative.InfWork.InfoQuestion#getQuestionRemark <em>Question Remark</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #isSetQuestionRemark()
	 * @see #getQuestionRemark()
	 * @see #setQuestionRemark(String)
	 * @generated
	 */
	public void unsetQuestionRemark() {
		questionRemark = QUESTION_REMARK_EDEFAULT;
		questionRemarkESet = false;
	}

	/**
	 * Returns whether the value of the '{@link CIM15.IEC61970.Informative.InfWork.InfoQuestion#getQuestionRemark <em>Question Remark</em>}' attribute is set.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return whether the value of the '<em>Question Remark</em>' attribute is set.
	 * @see #unsetQuestionRemark()
	 * @see #getQuestionRemark()
	 * @see #setQuestionRemark(String)
	 * @generated
	 */
	public boolean isSetQuestionRemark() {
		return questionRemarkESet;
	}

	/**
	 * Returns the value of the '<em><b>Question Category</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Question Category</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Question Category</em>' attribute.
	 * @see #isSetQuestionCategory()
	 * @see #unsetQuestionCategory()
	 * @see #setQuestionCategory(String)
	 * @generated
	 */
	public String getQuestionCategory() {
		return questionCategory;
	}

	/**
	 * Sets the value of the '{@link CIM15.IEC61970.Informative.InfWork.InfoQuestion#getQuestionCategory <em>Question Category</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Question Category</em>' attribute.
	 * @see #isSetQuestionCategory()
	 * @see #unsetQuestionCategory()
	 * @see #getQuestionCategory()
	 * @generated
	 */
	public void setQuestionCategory(String newQuestionCategory) {
		questionCategory = newQuestionCategory;
		questionCategoryESet = true;
	}

	/**
	 * Unsets the value of the '{@link CIM15.IEC61970.Informative.InfWork.InfoQuestion#getQuestionCategory <em>Question Category</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #isSetQuestionCategory()
	 * @see #getQuestionCategory()
	 * @see #setQuestionCategory(String)
	 * @generated
	 */
	public void unsetQuestionCategory() {
		questionCategory = QUESTION_CATEGORY_EDEFAULT;
		questionCategoryESet = false;
	}

	/**
	 * Returns whether the value of the '{@link CIM15.IEC61970.Informative.InfWork.InfoQuestion#getQuestionCategory <em>Question Category</em>}' attribute is set.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return whether the value of the '<em>Question Category</em>' attribute is set.
	 * @see #unsetQuestionCategory()
	 * @see #getQuestionCategory()
	 * @see #setQuestionCategory(String)
	 * @generated
	 */
	public boolean isSetQuestionCategory() {
		return questionCategoryESet;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Object eGet(int featureID, boolean resolve, boolean coreType) {
		switch (featureID) {
			case InfWorkPackage.INFO_QUESTION__ANSWER:
				return getAnswer();
			case InfWorkPackage.INFO_QUESTION__ANSWER_REMARK:
				return getAnswerRemark();
			case InfWorkPackage.INFO_QUESTION__QUESTION_TEXT:
				return getQuestionText();
			case InfWorkPackage.INFO_QUESTION__ANSWER_DATE_TIME:
				return getAnswerDateTime();
			case InfWorkPackage.INFO_QUESTION__QUESTION_CODE:
				return getQuestionCode();
			case InfWorkPackage.INFO_QUESTION__QUESTION_REMARK:
				return getQuestionRemark();
			case InfWorkPackage.INFO_QUESTION__QUESTION_CATEGORY:
				return getQuestionCategory();
		}
		return super.eGet(featureID, resolve, coreType);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void eSet(int featureID, Object newValue) {
		switch (featureID) {
			case InfWorkPackage.INFO_QUESTION__ANSWER:
				setAnswer((String)newValue);
				return;
			case InfWorkPackage.INFO_QUESTION__ANSWER_REMARK:
				setAnswerRemark((String)newValue);
				return;
			case InfWorkPackage.INFO_QUESTION__QUESTION_TEXT:
				setQuestionText((String)newValue);
				return;
			case InfWorkPackage.INFO_QUESTION__ANSWER_DATE_TIME:
				setAnswerDateTime((Date)newValue);
				return;
			case InfWorkPackage.INFO_QUESTION__QUESTION_CODE:
				setQuestionCode((String)newValue);
				return;
			case InfWorkPackage.INFO_QUESTION__QUESTION_REMARK:
				setQuestionRemark((String)newValue);
				return;
			case InfWorkPackage.INFO_QUESTION__QUESTION_CATEGORY:
				setQuestionCategory((String)newValue);
				return;
		}
		super.eSet(featureID, newValue);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void eUnset(int featureID) {
		switch (featureID) {
			case InfWorkPackage.INFO_QUESTION__ANSWER:
				unsetAnswer();
				return;
			case InfWorkPackage.INFO_QUESTION__ANSWER_REMARK:
				unsetAnswerRemark();
				return;
			case InfWorkPackage.INFO_QUESTION__QUESTION_TEXT:
				unsetQuestionText();
				return;
			case InfWorkPackage.INFO_QUESTION__ANSWER_DATE_TIME:
				unsetAnswerDateTime();
				return;
			case InfWorkPackage.INFO_QUESTION__QUESTION_CODE:
				unsetQuestionCode();
				return;
			case InfWorkPackage.INFO_QUESTION__QUESTION_REMARK:
				unsetQuestionRemark();
				return;
			case InfWorkPackage.INFO_QUESTION__QUESTION_CATEGORY:
				unsetQuestionCategory();
				return;
		}
		super.eUnset(featureID);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public boolean eIsSet(int featureID) {
		switch (featureID) {
			case InfWorkPackage.INFO_QUESTION__ANSWER:
				return isSetAnswer();
			case InfWorkPackage.INFO_QUESTION__ANSWER_REMARK:
				return isSetAnswerRemark();
			case InfWorkPackage.INFO_QUESTION__QUESTION_TEXT:
				return isSetQuestionText();
			case InfWorkPackage.INFO_QUESTION__ANSWER_DATE_TIME:
				return isSetAnswerDateTime();
			case InfWorkPackage.INFO_QUESTION__QUESTION_CODE:
				return isSetQuestionCode();
			case InfWorkPackage.INFO_QUESTION__QUESTION_REMARK:
				return isSetQuestionRemark();
			case InfWorkPackage.INFO_QUESTION__QUESTION_CATEGORY:
				return isSetQuestionCategory();
		}
		return super.eIsSet(featureID);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public String toString() {
		if (eIsProxy()) return super.toString();

		StringBuffer result = new StringBuffer(super.toString());
		result.append(" (answer: ");
		if (answerESet) result.append(answer); else result.append("<unset>");
		result.append(", answerRemark: ");
		if (answerRemarkESet) result.append(answerRemark); else result.append("<unset>");
		result.append(", questionText: ");
		if (questionTextESet) result.append(questionText); else result.append("<unset>");
		result.append(", answerDateTime: ");
		if (answerDateTimeESet) result.append(answerDateTime); else result.append("<unset>");
		result.append(", questionCode: ");
		if (questionCodeESet) result.append(questionCode); else result.append("<unset>");
		result.append(", questionRemark: ");
		if (questionRemarkESet) result.append(questionRemark); else result.append("<unset>");
		result.append(", questionCategory: ");
		if (questionCategoryESet) result.append(questionCategory); else result.append("<unset>");
		result.append(')');
		return result.toString();
	}

} // InfoQuestion
