blob: 0278a82711758ac46fbe1fb92816930e43e62984 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.apache.olingo.server.api.deserializer;
import org.apache.olingo.server.api.ODataTranslatedException;
/** Exception thrown by deserializers. */
public class DeserializerException extends ODataTranslatedException {
private static final long serialVersionUID = 6341270437497060906L;
/** Keys for exception texts in the resource bundle. */
public static enum MessageKeys implements MessageKey {
NOT_IMPLEMENTED,
IO_EXCEPTION,
//TODO: create texts for the following message keys:
/** parameter: format */ UNSUPPORTED_FORMAT,
JSON_SYNTAX_EXCEPTION,
/** parameter: propertyName */ INVALID_NULL_PROPERTY,
/** parameter: keyName */ UNKOWN_CONTENT,
/** parameter: propertyName */ INVALID_VALUE_FOR_PROPERTY,
/** parameter: propertyName */ INVALID_JSON_TYPE_FOR_PROPERTY,
VALUE_ARRAY_NOT_PRESENT,
VALUE_TAG_MUST_BE_AN_ARRAY,
INVALID_ENTITY,
/** parameter: navigationPropertyName */INVALID_VALUE_FOR_NAVIGATION_PROPERTY,
DUPLICATE_PROPERTY,
DUPLICATE_JSON_PROPERTY,
/** parameters: primitiveTypeName, propertyName */ UNKNOWN_PRIMITIVE_TYPE,
/** parameter: navigationPropertyName */NAVIGATION_PROPERTY_NOT_FOUND,
/** parameter: annotationName */INVALID_ANNOTATION_TYPE,
/** parameter: annotationName */INVALID_NULL_ANNOTATION;
@Override
public String getKey() {
return name();
}
}
/**
* Creates deserializer exception.
* @param developmentMessage message text as fallback and for debugging purposes
* @param messageKey one of the {@link MessageKeys} for the exception text in the resource bundle
* @param parameters parameters for the exception text
*/
public DeserializerException(final String developmentMessage,
final MessageKey messageKey, final String... parameters) {
super(developmentMessage, messageKey, parameters);
}
/**
* Creates deserializer exception.
* @param developmentMessage message text as fallback and for debugging purposes
* @param cause the cause of this exception
* @param messageKey one of the {@link MessageKeys} for the exception text in the resource bundle
* @param parameters parameters for the exception text
*/
public DeserializerException(final String developmentMessage, final Throwable cause,
final MessageKey messageKey, final String... parameters) {
super(developmentMessage, cause, messageKey, parameters);
}
@Override
protected String getBundleName() {
return DEFAULT_SERVER_BUNDLE_NAME;
}
}