blob: 85a5b550e1bcf809787633caebb4869980315d40 [file] [log] [blame]
package org.apache.synapse.synapseobject;
import org.apache.axis2.om.OMElement;
import javax.xml.namespace.QName;
import java.util.Iterator;
import java.util.ArrayList;
/**
* Created by IntelliJ IDEA.
* User: Vikas
* Date: Feb 7, 2006
* Time: 10:05:56 AM
* To change this template use File | Settings | File Templates.
*/
public class OMUtil {
public static OMElement getOMElementWithAttributeName(OMElement omElement, String attribName) {
OMElement result = null;
if (hasAtributeWithName(omElement, attribName))
{
return omElement;
}
else{
Iterator elementItr = omElement.getChildElements();
while(elementItr.hasNext()){
OMElement element = (OMElement)elementItr.next();
result = getOMElementWithAttributeName(element,attribName);
if(result!=null)
{
break;
}
}
}
return result;
}
public static OMElement[] getOMElementsWithAttributeName(OMElement omElement, String attribName) {
ArrayList resultArray = new ArrayList();
resultArray = getOMElementsWithAttributeName(omElement, attribName, resultArray);
int length = resultArray.size();
OMElement[] result = new OMElement[length];
for(int i=0;i<length;i++){
result[i] = (OMElement)resultArray.get(i);
}
return result;
}
private static ArrayList getOMElementsWithAttributeName(OMElement omElement, String attribName, ArrayList resultArray) {
if (hasAtributeWithName(omElement, attribName))
{
resultArray.add(omElement);
}
else{
Iterator elementItr = omElement.getChildElements();
while(elementItr.hasNext()){
OMElement element = (OMElement)elementItr.next();
resultArray = getOMElementsWithAttributeName(element,attribName, resultArray);
}
}
return resultArray;
}
public static boolean hasAtributeWithName(OMElement omElement, String attribName) {
if (omElement.getNamespace()!= null) {
if ((omElement.getAttributeValue(new QName(omElement.getNamespace().getName(), attribName))) != null) {
return true;
}
} else if ((omElement.getAttributeValue(new QName(attribName))) != null) {
return true;
}
return false;
}
// THE METHODS USED FOR GETTING OMElements BASED ON THE ATTRIBUTE NAME & VALUE
public static OMElement getOMElementWithAttribute(OMElement omElement, String attribName, String attribValue) {
OMElement result = null;
if (hasAtribute(omElement, attribName, attribValue))
{
return omElement;
}
else{
Iterator elementItr = omElement.getChildElements();
while(elementItr.hasNext()){
OMElement element = (OMElement)elementItr.next();
result = getOMElementWithAttributeName(element,attribName);
if(result!=null)
{
break;
}
}
}
return result;
}
public static OMElement[] getOMElementsWithAttribute(OMElement omElement, String attribName, String attribValue) {
ArrayList resultArray = new ArrayList();
resultArray = getOMElementsWithAttribute(omElement, attribName, attribValue, resultArray);
int length = resultArray.size();
OMElement[] result = new OMElement[length];
for(int i=0;i<length;i++){
result[i] = (OMElement)resultArray.get(i);
}
return result;
}
private static ArrayList getOMElementsWithAttribute(OMElement omElement, String attribName, String attribValue, ArrayList resultArray) {
if (hasAtribute(omElement, attribName, attribValue))
{
resultArray.add(omElement);
}
else{
Iterator elementItr = omElement.getChildElements();
while(elementItr.hasNext()){
OMElement element = (OMElement)elementItr.next();
resultArray = getOMElementsWithAttribute(element,attribName, attribValue, resultArray);
}
}
return resultArray;
}
public static boolean hasAtribute(OMElement omElement, String attribName, String attribValue) {
if (omElement.getNamespace()!= null) {
if (omElement.getAttributeValue(new QName(omElement.getNamespace().getName(), attribName))!=null) {
if(omElement.getAttributeValue(new QName(omElement.getNamespace().getName(), attribName)).equals(attribValue))
return true;
}
} else if(omElement.getAttributeValue(new QName(attribName))!=null) {
if(omElement.getAttributeValue(new QName(attribName)).equals(attribValue))
return true;
}
return false;
}
}