/*
* Copyright 2004-2012 the Seasar Foundation and the Others.
*
* 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.seasar.mayaa.engine.processor;
import java.io.Serializable;
/**
* プロセッサ動作にて状態遷移を示すステータス。
*
* @author Koji Suga (Gluegent Inc.)
*/
public class ProcessStatus implements Serializable {
private static final long serialVersionUID = 473586899180314059L;
private String _status;
/**
* @param status ステータス文字列。
*/
public ProcessStatus(String status) {
if (status == null) {
throw new IllegalArgumentException();
}
_status = status;
}
/**
* ステータス文字列を取得する。
* @return ステータス文字列。
*/
public String getStatus() {
return _status;
}
public boolean equals(Object test) {
if (test instanceof ProcessStatus) {
ProcessStatus testStatus = (ProcessStatus) test;
return testStatus.getStatus().equals(getStatus());
}
return false;
}
public int hashCode() {
return ("org.seasar.mayaa.engine.processor.ProcessStatus:"
+ _status).hashCode();
}
// values ------------------------------------------------------
/**
* リターンフラグ。TemplateProcessor#doStartProcess()がこの値を返すと、
* プロセッサボディを出力しない。
*/
public static final ProcessStatus SKIP_BODY =
new ProcessStatus("SKIP_BODY");
/**
* リターンフラグ。TemplateProcessor#doStartProcess()がこの値を返すと、
* プロセッサボディをバッファリング無しで出力する。
*/
public static final ProcessStatus EVAL_BODY_INCLUDE =
new ProcessStatus("EVAL_BODY_INCLUDE");
/**
* リターンフラグ。TemplateProcessor#doEndProcess()がこの値を返すと、
* 以降の出力をただちに中止する。
*/
public static final ProcessStatus SKIP_PAGE =
new ProcessStatus("SKIP_PAGE");
/**
* リターンフラグ。TemplateProcessor#doEndProcess()がこの値を返すと、
* 以降のプロセッサ出力を続ける。
*/
public static final ProcessStatus EVAL_PAGE =
new ProcessStatus("EVAL_PAGE");
/**
* リターンフラグ。この値をItarateProcessor#doAfterChildProcess()
* が返すと、再イテレートする。
*/
public static final ProcessStatus EVAL_BODY_AGAIN =
new ProcessStatus("EVAL_BODY_AGAIN");
/**
* リターンフラグ。この値をChildEvaluationProcessor#doStartProcess()
* が返すと、プロセッサボディをバッファリングする。
*/
public static final ProcessStatus EVAL_BODY_BUFFERED =
new ProcessStatus("EVAL_BODY_BUFFERED");
}