blob: de92a9cde0555803984e68f9c2bac398fb25f9d1 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.apache.axis2.description;
import org.apache.axis2.phaseresolver.PhaseException;
import java.io.Serializable;
/**
* Class PhaseRule
*/
public class PhaseRule implements Serializable {
/**
* Field after
*/
private String after;
/**
* Field before
*/
private String before;
/**
* Field phaseFirst
*/
private boolean phaseFirst;
/**
* Field phaseLast
*/
private boolean phaseLast;
/**
* Field phaseName
*/
private String phaseName;
/**
* Constructor PhaseRule.
*/
public PhaseRule() {
}
public PhaseRule(String phaseName) {
this.phaseName = phaseName;
}
/**
* Method getAfter.
*
* @return Returns String.
*/
public String getAfter() {
return after;
}
/**
* Method getBefore.
*
* @return Returns String.
*/
public String getBefore() {
return before;
}
/**
* Method getPhaseName.
*
* @return Returns String.
*/
public String getPhaseName() {
return phaseName;
}
/**
* Method isPhaseFirst.
*
* @return Returns boolean.
*/
public boolean isPhaseFirst() {
return phaseFirst;
}
/**
* Method isPhaseLast.
*
* @return Returns boolean.
*/
public boolean isPhaseLast() {
return phaseLast;
}
/**
* Set the "after" name for this rule.
*
* @param after the name of the "after" handler
*/
public void setAfter(String after) {
if ("".equals(after)) after = null;
this.after = after;
}
/**
* Set the "before" name for this rule.
*
* @param before the name of the "before" handler
*/
public void setBefore(String before) {
if ("".equals(before)) before = null;
this.before = before;
}
/**
* Method setPhaseFirst.
*
* @param phaseFirst true if this rule defines the first Handler in a Phase
*/
public void setPhaseFirst(boolean phaseFirst) {
this.phaseFirst = phaseFirst;
}
/**
* Method setPhaseLast.
*
* @param phaseLast true if this rule defines the last Handler in a Phase
*/
public void setPhaseLast(boolean phaseLast) {
this.phaseLast = phaseLast;
}
/**
* Method setPhaseName.
*
* @param phaseName the name of the Phase
*/
public void setPhaseName(String phaseName) {
this.phaseName = phaseName;
}
/**
* Validate "sane" rules - cannot have both phaseFirst/phaseLast and before/after
*
* @throws PhaseException if phaseFirst/phaseLast is set along with before/after
*/
public void validate() throws PhaseException {
if (before != null || after != null) {
if (phaseFirst) {
throw new PhaseException(
"Invalid PhaseRule (phaseFirst is set along with before/after)");
}
if (phaseLast) {
throw new PhaseException(
"Invalid PhaseRule (phaseLast is set along with before/after)");
}
}
}
}