
org.ow2.petals.binding.rest.utils.HttpStatusBuilder Maven / Gradle / Ivy
/**
* Copyright (c) 2018-2020 Linagora
*
* This program/library is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 2.1 of the License, or (at your
* option) any later version.
*
* This program/library is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
* for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program/library; If not, see http://www.gnu.org/licenses/
* for the GNU Lesser General Public License version 2.1.
*/
package org.ow2.petals.binding.rest.utils;
import org.ow2.petals.component.framework.api.exception.PEtALSCDKException;
import org.w3c.dom.Element;
/**
*
* Build a HTTP code from an XML configuration.
*
*
* The HTTP code is expected as an attribute of a XML element.
*
*
* @author Christophe DENEUX
*
*/
public class HttpStatusBuilder {
private HttpStatusBuilder() {
// Utility class --> No constructor
}
public static int build(final Element ownerElt, final String attrName) throws PEtALSCDKException {
final String ownerName = ownerElt.getLocalName();
final String httpCodeStr = ownerElt.getAttribute(attrName);
if (httpCodeStr == null || httpCodeStr.trim().isEmpty()) {
throw new PEtALSCDKException(
String.format("Attribute '%s' is required on element '%s'", attrName, ownerName));
} else {
try {
return Integer.parseInt(httpCodeStr);
} catch (final NumberFormatException e) {
throw new PEtALSCDKException(
String.format("The value '%s' of attribute '%s' of element '%s' must be an integer value.",
httpCodeStr, attrName, ownerName));
}
}
// TODO: Improve error management when HTTP code is unknown
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy