org.xlcloud.rest.exception.ValidationException Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of rest-utils Show documentation
Show all versions of rest-utils Show documentation
This module is provides the common REST utils, mostly for server side of an application, like exceptions and interceptors.
The newest version!
/*
* Copyright 2012 AMG.lab, a Bull Group Company
*
* 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.xlcloud.rest.exception;
import javax.xml.bind.annotation.XmlAttribute;
import com.fasterxml.jackson.annotation.JsonIgnore;
/**
* Thrown to indicate that request does not contain required data, or data
* passed is invalid.
*
* @author Andrzej Stasiak, AMG.net
* @author Maciej Osyda, AMG.net
* @author Piotr Kulasek-Szwed, AMG.net
*/
public class ValidationException extends BaseException {
private static final long serialVersionUID = -2487294178600385367L;
private static final Integer STATUS = 400;
@Deprecated // For JAXB only.
public ValidationException() {}
public ValidationException(String message, ValidationFailureType validationFailure, String invalidField) {
super(STATUS, new ExceptionDetails(message, validationFailure, invalidField));
}
public ValidationException(String message, ValidationFailureType validationFailure) {
super(STATUS, new ExceptionDetails(message, validationFailure));
}
public ValidationException(String message) {
super(STATUS, new ExceptionDetails(message));
}
public enum ValidationFailureType {
AUTH_HEADER_FORMAT,
MISSING_HEADER,
REPOSITORY_NULL,
REPOSITORY_PROCESSING,
TEMPLATE_NAME_BLANK,
PORTS_OPEN_IN_SUBNET,
DELETE_DEFAULT_SUBNET,
PORT_NUMBER_FORMAT,
NO_REPOSITORY_SPECIFIED,
WRONG_PROJECT_STATUS,
PROJECT_CONTAINS_STACK,
NOT_MEMBER_OF_PROJECT,
LEASE_NOT_IN_PROJECT,
LEASE_DURATION,
INVALID_TEMPLATE,
INVALID_TEMPLATE_NO_RESOURCE_FOR_LAYER,
INVALID_TEMPLATE_UNMATCHED_PARAMETERS,
NO_PARAMETER_IN_TEMPLATE,
STACK_PARAMETER_NULL,
STACK_PARAMETER_INSTANCE_NULL,
STACK_PARAMETER_IMAGE_NULL,
STACK_PARAMETER_KEY_NULL,
LAYER_PARAMETER_NULL,
LAYER_PARAMETER_SUBNET_NULL,
LAYER_PARAMETER_INSTANCE_NULL,
LAYER_PARAMETER_IMAGE_NULL,
LAYER_PARAMETER_KEY_NULL,
WRONG_STACK_STATUS,
USER_NOT_IN_ACCOUNT,
GROUP_NAME_EMPTY,
GROUP_ID_NOT_EMPTY,
GROUP_NULL,
GROUP_NOT_IN_ACCOUNT,
USER_GROUP_DIFFERENT_ACCOUNT,
INVALID_JSON,
PROPERTY_NOT_RECOGNIZED,
CIDR_FORMAT,
CHEFFILE_FORMAT,
WRONG_APPLICATION_STATE,
PASSWORD_EMPTY,
PASSWORD_TOO_SHORT,
USER_NULL,
USER_NAME_EMPTY,
USER_PASSWORD_EMPTY,
USER_HAS_ID,
USER_WRONG_ACCOUNT_ID,
ACCOUNT_NULL,
ACCOUNT_NAME_EMPTY,
ACCOUNT_NAME_FORMAT,
ACCOUNT_HAS_ID,
LAYER_TEMPLATE_URL_EMPTY,
LAYER_TEMPLATE_URL_INVALID,
ACCOUNT_HAS_USERS,
ACCOUNT_HAS_PROJECTS,
NOT_MEMBER_OF_ACCOUNT,
CANNOT_BE_PLATFORM_ADMIN,
WRONG_XML_FIELD_NAME,
NOT_NUMERICAL_FIELD_VALUE,
PAGING_LIMIT_NOT_POSITIVE,
PAGING_OFFSET_NEGATIVE,
LEASE_NO_END_DATE,
LEASE_DURATION_AND_END_DATE,
CANNOT_REVOKE_USED_TOKEN,
ACCESS_TOKEN_NULL,
ACCESS_TOKEN_FORMAT,
IMAGE_DISK_CONTAINER_MISMATCH,
LAYER_BLUEPRINT_NOT_SEPARATE,
QUOTA_WRONG_TYPE,
QUOTA_NEGATIVE_LIMIT,
ID_EMPTY,
ID_NEGATIVE,
ID_BAD_FORMAT,
ENTITLEMENT_EMPTY_ACTIONS,
ENTITLEMENT_RESOURCE_FORMAT,
RESTRICTION_EMPTY_RESOURCES,
RESTRICTION_RESOURCE_EMPTY_ACTIONS,
EXPORT_AUTONOMOUS_LAYER_BLUEPRINT,
DELETE_DEPENDENT_LAYER_BLUEPRINT,
STACK_LAYERS_MODIFICATION_WITH_TEMPLATE,
STACK_NAME_FORMAT,
INSTANCE_NAME_FORMAT,
LAYER_NAME_FORMAT,
USER_NAME_FORMAT,
STACK_BLUEPRINT_NAME_FORMAT,
LAYER_BLUEPRINT_NAME_FORMAT,
PROJECT_NAME_FORMAT,
REPOSITORY_NAME_FORMAT,
COOKBOOK_NAME_EMPTY,
KEYPAIR_NAME_FORMAT,
SUBNET_NAME_FORMAT,
FIELD_VALUE_NOT_UNIQUE,
LEASE_REQUIREMENTS_MALFORMED,
LEASE_NOT_ACTIVE,
LEASE_DOES_NOT_EXIST,
// to be removed maybe?
GENERIC_IS_NULL,
GENERIC_IS_NOT_INSTANCE,
GENERIC_IS_BLANK,
GENERIC_IS_NOT_NULL,
GENERIC_NOT_EXPECTED_VALUE,
GENERIC_IS_EMPTY,
GENERIC_LIST_NOT_EMPTY
}
public static class ExceptionDetails extends ExceptionDetailsBase {
private static final long serialVersionUID = 1L;
@XmlAttribute
private ValidationFailureType validationFailure;
@XmlAttribute
private String invalidField;
@Deprecated // For JAXB only.
public ExceptionDetails() {}
public ExceptionDetails(String message, ValidationFailureType validationFailure, String invalidField) {
super(message);
this.validationFailure = validationFailure;
this.invalidField = invalidField;
}
public ExceptionDetails(String message, ValidationFailureType validationFailure) {
this(message, validationFailure, null);
}
public ExceptionDetails(String message) {
this(message, null, null);
}
public ValidationFailureType getValidationFailure() {
return validationFailure;
}
public void setValidationFailure(ValidationFailureType validationFailure) {
this.validationFailure = validationFailure;
}
public String getInvalidField() {
return invalidField;
}
public void setInvalidField(String invalidField) {
this.invalidField = invalidField;
}
@JsonIgnore
public String getDetails() {
return "type="+validationFailure+",field="+invalidField;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy