descriptionbuilder.java
来自「开源的axis2框架的源码。用于开发WEBSERVER」· Java 代码 · 共 693 行 · 第 1/2 页
JAVA
693 行
return value.split(" ");
}
}
return null;
}
protected QName[] getLocalPolicyAssertionNames(OMElement localPolicyAssertionsElement) {
Iterator iterator = localPolicyAssertionsElement.getChildElements();
if (! iterator.hasNext()) {
return null;
}
ArrayList qnames = new ArrayList();
OMElement childElement;
for (; iterator.hasNext();) {
childElement = (OMElement) iterator.next();
qnames.add(childElement.getQName());
}
QName[] buffer = new QName[qnames.size()];
System.arraycopy(qnames.toArray(), 0, buffer, 0, qnames.size());
return buffer;
}
protected HandlerDescription processHandler(OMElement handler_element, ParameterInclude parent)
throws DeploymentException
{
return processHandler(handler_element, parent, null);
}
/**
* Processes Handler element.
*
* @param handler_element <code>OMElement</code>
* @return Returns HandlerDescription.
* @throws DeploymentException <code>DeploymentException</code>
*/
protected HandlerDescription processHandler(OMElement handler_element,
ParameterInclude parent,
String containingPhase)
throws DeploymentException {
// Setting handler name
OMAttribute name_attribute = handler_element.getAttribute(new QName(
ATTRIBUTE_NAME));
if (name_attribute == null || name_attribute.getAttributeValue().equals("")) {
throw new DeploymentException(Messages.getMessage(
DeploymentErrorMsgs.INVALID_HANDLER, "Unknown", "Name missing"));
}
HandlerDescription handler = new HandlerDescription(name_attribute.getAttributeValue());
// Setting handler class name
OMAttribute class_attribute = handler_element.getAttribute(new QName(
TAG_CLASS_NAME));
if (class_attribute == null) {
throw new DeploymentException((Messages.getMessage(
DeploymentErrorMsgs.INVALID_HANDLER, name_attribute.getAttributeValue(),
"class name is missing")));
} else {
handler.setClassName(class_attribute.getAttributeValue());
}
// processing phase rules (order)
OMElement order_element = handler_element
.getFirstChildWithName(new QName(TAG_ORDER));
PhaseRule rules = handler.getRules();
if (order_element == null) {
if (containingPhase == null) {
// TODO : Include more information (which handler?) in message!
throw new DeploymentException((Messages.getMessage(
DeploymentErrorMsgs.INVALID_HANDLER, name_attribute.getAttributeValue(),
"phase rule has not been specified")));
}
rules.setPhaseName(containingPhase);
} else {
Iterator order_itr = order_element.getAllAttributes();
while (order_itr.hasNext()) {
OMAttribute orderAttribute = (OMAttribute) order_itr.next();
String name = orderAttribute.getQName().getLocalPart();
String value = orderAttribute.getAttributeValue();
if (TAG_AFTER.equals(name)) {
rules.setAfter(value);
} else if (TAG_BEFORE.equals(name)) {
rules.setBefore(value);
} else if (TAG_PHASE.equals(name)) {
rules.setPhaseName(value);
} else if (TAG_PHASE_FIRST.equals(name)) {
String boolval = getValue(value);
if (boolval.equals(BOOLEAN_TRUE)) {
rules.setPhaseFirst(true);
} else if (boolval.equals(BOOLEAN_FALSE)) {
rules.setPhaseFirst(false);
}
} else if (TAG_PHASE_LAST.equals(name)) {
String boolval = getValue(value);
if (boolval.equals(BOOLEAN_TRUE)) {
rules.setPhaseLast(true);
} else if (boolval.equals(BOOLEAN_FALSE)) {
rules.setPhaseLast(false);
}
}
}
Iterator parameters = handler_element
.getChildrenWithName(new QName(TAG_PARAMETER));
try {
processParameters(parameters, handler, parent);
} catch (AxisFault axisFault) {
throw new DeploymentException(axisFault);
}
}
handler.setParent(parent);
return handler;
}
protected void processOperationModuleRefs(Iterator moduleRefs,
AxisOperation operation) throws DeploymentException {
try {
while (moduleRefs.hasNext()) {
OMElement moduleref = (OMElement) moduleRefs.next();
OMAttribute moduleRefAttribute = moduleref
.getAttribute(new QName(TAG_REFERENCE));
if (moduleRefAttribute != null) {
String refName = moduleRefAttribute.getAttributeValue();
if (axisConfig.getModule(refName) == null) {
throw new DeploymentException(Messages.getMessage(
DeploymentErrorMsgs.MODULE_NOT_FOUND, refName));
} else {
operation.addModule(refName);
}
}
}
} catch (AxisFault axisFault) {
throw new DeploymentException(Messages.getMessage(
DeploymentErrorMsgs.MODULE_NOT_FOUND, axisFault
.getMessage()), axisFault);
}
}
/**
* Gets the Parameter object from the OM.
*
* @param parameters <code>Parameter</code>
* @param parameterInclude <code>ParameterInclude</code>
* @param parent <code>ParameterInclude</code>
*/
protected void processParameters(Iterator parameters,
ParameterInclude parameterInclude,
ParameterInclude parent)
throws DeploymentException {
while (parameters.hasNext()) {
// this is to check whether some one has locked the parmeter at the
// top level
OMElement parameterElement = (OMElement) parameters.next();
Parameter parameter = new Parameter();
// setting parameterElement
parameter.setParameterElement(parameterElement);
// setting parameter Name
OMAttribute paramName = parameterElement.getAttribute(new QName(ATTRIBUTE_NAME));
if (paramName == null) {
throw new DeploymentException(Messages.getMessage(
DeploymentErrorMsgs.BAD_PARAMETER_ARGUMENT,
parameterElement.toString()));
}
parameter.setName(paramName.getAttributeValue());
// setting parameter Value (the child element of the parameter)
OMElement paramValue = parameterElement.getFirstElement();
if (paramValue != null) {
parameter.setValue(parameterElement);
parameter.setParameterType(Parameter.OM_PARAMETER);
} else {
String paratextValue = parameterElement.getText();
parameter.setValue(paratextValue);
parameter.setParameterType(Parameter.TEXT_PARAMETER);
}
// setting locking attribute
OMAttribute paramLocked = parameterElement.getAttribute(new QName(
ATTRIBUTE_LOCKED));
Parameter parentParam = null;
if (parent != null) {
parentParam = parent.getParameter(parameter.getName());
}
if (paramLocked != null) {
String lockedValue = paramLocked.getAttributeValue();
if (BOOLEAN_TRUE.equals(lockedValue)) {
// if the parameter is locked at some level parameter value
// replace by that
if ((parent != null)
&& parent.isParameterLocked(parameter.getName())) {
throw new DeploymentException(Messages.getMessage(
DeploymentErrorMsgs.CONFIG_NOT_FOUND, parameter
.getName()));
} else {
parameter.setLocked(true);
}
} else {
parameter.setLocked(false);
}
}
try {
if (parent != null) {
if ((parentParam == null)
|| !parent.isParameterLocked(parameter.getName())) {
parameterInclude.addParameter(parameter);
}
} else {
parameterInclude.addParameter(parameter);
}
} catch (AxisFault axisFault) {
throw new DeploymentException(axisFault);
}
}
}
/**
* Populate the AxisOperation with details from the actionMapping,
* outputActionMapping and faultActionMapping elements from the operation
* element.
*
* @param operation
* @param op_descrip
*/
protected void processActionMappings(OMElement operation,
AxisOperation op_descrip) {
Iterator mappingIterator = operation.getChildrenWithName(new QName(
Constants.ACTION_MAPPING));
ArrayList mappingList = new ArrayList();
while (mappingIterator.hasNext()) {
OMElement mappingElement = (OMElement) mappingIterator.next();
String inputActionString = mappingElement.getText().trim();
if (log.isTraceEnabled()) {
log.trace("Input Action Mapping found: " + inputActionString);
}
if (!"".equals(inputActionString)) {
mappingList.add(inputActionString);
} else {
if (log.isTraceEnabled()) {
log.trace("Zero length input action string found. Not added to mapping");
}
}
}
op_descrip.setWsamappingList(mappingList);
OMElement outputAction = operation.getFirstChildWithName(new QName(
Constants.OUTPUT_ACTION_MAPPING));
if ((outputAction != null) && (outputAction.getText() != null)) {
String outputActionString = outputAction.getText().trim();
if (log.isTraceEnabled()) {
log.trace("Output Action Mapping found: " + outputActionString);
}
op_descrip.setOutputAction(outputActionString);
}
Iterator faultActionsIterator = operation
.getChildrenWithName(new QName(Constants.FAULT_ACTION_MAPPING));
while (faultActionsIterator.hasNext()) {
OMElement faultMappingElement = (OMElement) faultActionsIterator
.next();
String faultActionString = faultMappingElement.getText().trim();
String faultActionName = faultMappingElement
.getAttributeValue(new QName(Constants.FAULT_ACTION_NAME));
if (faultActionName != null && faultActionString != null) {
if (log.isTraceEnabled()) {
log.trace("Fault Action Mapping found: " + faultActionName
+ ", " + faultActionString);
}
op_descrip.addFaultAction(faultActionName, faultActionString);
}
}
}
protected void processPolicyElements(int type, Iterator policyElements,
PolicyInclude policyInclude) {
while (policyElements.hasNext()) {
Policy p = PolicyEngine
.getPolicy((OMElement) policyElements.next());
policyInclude.addPolicyElement(type, p);
}
}
protected void processPolicyRefElements(int type,
Iterator policyRefElements,
PolicyInclude policyInclude) {
while (policyRefElements.hasNext()) {
PolicyReference policyReference = PolicyEngine
.getPolicyReference((OMElement) policyRefElements.next());
policyInclude.addPolicyRefElement(type, policyReference);
}
}
/**
* Gets the short file name. Short file name is the name before the dot.
*
* @param fileName
* @return Returns String.
*/
public static String getShortFileName(String fileName) {
char seperator = SEPARATOR_DOT;
String value;
int index = fileName.lastIndexOf(seperator);
if (index > 0) {
value = fileName.substring(0, index);
return value;
}
return fileName;
}
/**
* Gets the value of an attribute. eg xsd:anyVal --> anyVal
*
* @return Returns String.
*/
protected String getValue(String in) {
char seperator = SEPARATOR_COLON;
String value;
int index = in.indexOf(seperator);
if (index > 0) {
value = in.substring(index + 1, in.length());
return value;
}
return in;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?