org.camunda.spin.impl.json.jackson.JacksonJsonLogger Maven / Gradle / Ivy
/* 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 org.camunda.spin.impl.json.jackson;
import org.camunda.spin.impl.logging.SpinLogger;
import org.camunda.spin.json.SpinJsonDataFormatException;
import org.camunda.spin.json.SpinJsonNode;
import org.camunda.spin.json.SpinJsonException;
import org.camunda.spin.json.SpinJsonPathException;
import org.camunda.spin.json.SpinJsonPropertyException;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.JsonNodeType;
import com.jayway.jsonpath.PathNotFoundException;
/**
* @author Thorben Lindhauer
* @author Stefan Hentschel
*/
public class JacksonJsonLogger extends SpinLogger {
public SpinJsonDataFormatException unableToParseInput(Exception e) {
return new SpinJsonDataFormatException(exceptionMessage("001", "Unable to parse input into json node"), e);
}
/**
* Exception handler if we are unable to parse a json value into a java representation
*
* @param expectedType Name of the expected Type
* @param type Type of the json node
* @return SpinJsonDataFormatException
*/
public SpinJsonDataFormatException unableToParseValue(String expectedType, JsonNodeType type) {
return new SpinJsonDataFormatException(exceptionMessage("002", "Expected '{}', got '{}'", expectedType, type.toString()));
}
public SpinJsonDataFormatException unableToWriteJsonNode(Exception cause) {
return new SpinJsonDataFormatException(exceptionMessage("003", "Unable to write json node"), cause);
}
public SpinJsonException unableToFindProperty(String propertyName) {
return new SpinJsonPropertyException(exceptionMessage("004", "Unable to find '{}'", propertyName));
}
public SpinJsonException unableToCreateNode(String objectType) {
return new SpinJsonPropertyException(exceptionMessage("005", "Unable to create node for object of type '{}'", objectType));
}
public SpinJsonException unableToDeserialize(JsonNode jsonNode, JavaType type, Exception cause) {
return new SpinJsonException(
exceptionMessage("006", "Cannot deserialize '{}...' to java type '{}'",
jsonNode.toString().substring(0, 10), type), cause);
}
public SpinJsonDataFormatException unableToConstructJavaType(String fromString, Exception cause) {
return new SpinJsonDataFormatException(
exceptionMessage("007", "Cannot construct java type from string '{}'", fromString), cause);
}
public SpinJsonDataFormatException unableToDetectCanonicalType(Object parameter) {
return new SpinJsonDataFormatException(exceptionMessage("008", "Cannot detect canonical data type for parameter '{}'", parameter));
}
public SpinJsonDataFormatException unableToMapInput(Object input, Exception cause) {
return new SpinJsonDataFormatException(exceptionMessage("009", "Unable to map object '{}' to json node", input), cause);
}
public SpinJsonException unableToModifyNode(String nodeName) {
return new SpinJsonException(exceptionMessage("010", "Unable to modify node of type '{}'. Node is not a list.", nodeName));
}
public SpinJsonException unableToGetIndex(String nodeName) {
return new SpinJsonException(exceptionMessage("011", "Unable to get index from '{}'. Node is not a list.", nodeName));
}
public IndexOutOfBoundsException indexOutOfBounds(Integer index, Integer size) {
return new IndexOutOfBoundsException(exceptionMessage("012", "Index is out of bound! Index: '{}', Size: '{}'", index, size));
}
public SpinJsonPathException unableToEvaluateJsonPathExpressionOnNode(SpinJsonNode node, Exception cause) {
return new SpinJsonPathException(
exceptionMessage("013", "Unable to evaluate JsonPath expression on element '{}'", node.getClass().getName()), cause);
}
public SpinJsonPathException unableToCompileJsonPathExpression(String expression, Exception cause) {
return new SpinJsonPathException(
exceptionMessage("014", "Unable to compile '{}'!", expression), cause);
}
public SpinJsonPathException unableToCastJsonPathResultTo(Class> castClass, Exception cause) {
return new SpinJsonPathException(
exceptionMessage("015", "Unable to cast JsonPath expression to '{}'", castClass.getName()), cause);
}
public PathNotFoundException unableToFindJsonPath(String path, String json) {
return new PathNotFoundException(exceptionMessage("016", "Unable to find json path '{}' on json node '{}'", path, json));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy