protected HandlerDescription processHandler(OMElement handler_element, ParameterInclude parent)
throws DeploymentException {
HandlerDescription handler = new HandlerDescription();
//Setting Handler name
OMAttribute name_attribute = handler_element.getAttribute(
new QName(ATTNAME));
if(name_attribute == null){
throw new DeploymentException("Invalid Handler");
} else {
handler.setName(new QName(name_attribute.getValue()));
}
//Setting Handler Class name
OMAttribute class_attribute = handler_element.getAttribute(
new QName(CLASSNAME));
if(class_attribute == null){
throw new DeploymentException("Invalid Handler");
} else {
handler.setClassName(class_attribute.getValue());
}
//processing phase Rules (order)
OMElement order_element = handler_element.getFirstChildWithName(
new QName(ORDER));
if(order_element == null){
throw new DeploymentException("Invaid Handler , phase rule does not specify");
} else {
Iterator order_itr = order_element.getAttributes();
while (order_itr.hasNext()) {
OMAttribute orderAttribut = (OMAttribute) order_itr.next();
String name = orderAttribut.getQName().getLocalPart();
String value = orderAttribut.getValue();
if (AFTER.equals(name)) {
handler.getRules().setAfter(value);
} else if (BEFORE.equals(name)) {
handler.getRules().setBefore(value);
} else if (PHASE.equals(name)) {