short type = getType(subject);
/*
* processing the parallel level
*/
AxisDescription parallelLevel = null;
switch (type) {
case AXIS_BINDING_MESSAGE:
parallelLevel = ((AxisBindingMessage) subject).getAxisMessage();
break;
case AXIS_BINDING_OPERATION:
parallelLevel = ((AxisBindingOperation) subject).getAxisOperation();
break;
default:
break;
}
if (parallelLevel != null) {
policy = (new AxisPolicyLocator(parallelLevel)).lookup(key);
if (policy != null) {
return policy;
}
}
AxisDescription upperLevel = getUpperLevel(type, subject);
if (upperLevel != null) {
policy = (new AxisPolicyLocator(upperLevel)).lookup(key);
return policy;
}