/*
* Copyright 2010-2011 Nabeel Mukhtar
*
* Licensed 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 com.google.code.linkedinapi.schema.xpp;
import java.io.IOException;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlSerializer;
/**
* The Class DomUtils.
*
* @author Nabeel Mukhtar
* @version 1.0
*/
public class XppUtils {
/**
* Sets the element value to node.
*
* @param node the node
* @param elementName the element name
* @param elementValue the element value
*/
public static void setElementValueToNode(XmlSerializer serializer, String elementName, Object elementValue) throws IOException {
if (elementValue != null) {
serializer.startTag(null, elementName).text(elementValue.toString()).endTag(null, elementName);
}
}
/**
* Sets the element value.
*
* @param node the node
* @param elementValue the element value
*/
public static void setElementValue(XmlSerializer serializer, Object elementValue) throws IOException {
if (elementValue != null) {
serializer.text(elementValue.toString());
}
}
/**
* Sets the attribute value to node.
*
* @param node the node
* @param attributeName the attribute name
* @param attributeValue the attribute value
*/
public static void setAttributeValueToNode(XmlSerializer serializer, String attributeName, Object attributeValue) throws IOException {
if (attributeValue != null) {
serializer.attribute(null, attributeName, String.valueOf(attributeValue));
}
}
/**
* Gets the element value from node.
*
* @param node the node
* @param valueName the value name
*
* @return the element value from node
* @throws IOException
* @throws XmlPullParserException
*/
public static String getElementValueFromNode(XmlPullParser node) throws XmlPullParserException, IOException {
return node.nextText();
}
/**
* Gets the element value as long from node.
*
* @param node the node
* @param valueName the value name
*
* @return the element value as long from node
* @throws XmlPullParserException
*/
public static Long getElementValueAsLongFromNode(XmlPullParser node) throws IOException, XmlPullParserException {
String value = node.nextText();
if (isNullOrEmpty(value)) {
return null;
} else {
return Long.valueOf(value);
}
}
/**
* Gets the attribute value from node.
*
* @param node the node
* @param attributeName the attribute name
*
* @return the attribute value from node
*/
public static String getAttributeValueFromNode(XmlPullParser node, String attributeName) {
return node.getAttributeValue(null, attributeName);
}
/**
* Gets the attribute value as long from node.
*
* @param node the node
* @param attributeName the attribute name
*
* @return the attribute value as long from node
*/
public static Long getAttributeValueAsLongFromNode(XmlPullParser node, String attributeName) {
String attribute = node.getAttributeValue(null, attributeName);
if (isNullOrEmpty(attribute)) {
return null;
} else {
return Long.valueOf(attribute);
}
}
public static void skipSubTree(XmlPullParser parser) throws XmlPullParserException, IOException {
parser.require(XmlPullParser.START_TAG, null, null);
int level = 1;
while (level > 0) {
int eventType = parser.next();
if (eventType == XmlPullParser.END_TAG) {
--level;
} else if (eventType == XmlPullParser.START_TAG) {
++level;
}
}
}
/**
* Checks if is null or empty.
*
* @param string the string
*
* @return true, if is null or empty
*/
private static boolean isNullOrEmpty(String string) {
return (string == null || string.length() == 0);
}
}