/*******************************************************************************
* Copyright (c) 2006-2010 eBay Inc. All Rights Reserved.
* 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
*******************************************************************************/
package org.ebayopensource.turmeric.runtime.tests.service1.errors;
import java.util.HashMap;
import java.util.Map;
/**
* ErrorSubcategory is used to group System errors into more specific categories. These enums also
* used as sub domain for SOA core runtime errors.
*
* @author wdeng
*
*/
@SuppressWarnings("serial")
public enum ErrorSubcategory {
/**
* Miscellaneous system-level error.
*/
SYSTEM ("System"),
/**
* Application-level error.
*/
APPLICATION ("Application"),
/**
* System error in service or other configuration.
*/
CONFIG ("Config"),
/**
* System markdown error.
*/
MARKDOWN ("Markdown"),
/**
* Request error in the inbound data.
*/
INBOUND_DATA ("Inbound_Data"),
/**
* Request error in inbound meta-data (such as HTTP headers).
*/
INBOUND_META_DATA ("Inbound_Meta_Data"),
/**
* Request error in outbound meta-data (such as URL or HTTP headers).
*/
OUTBOUND_DATA ("Outbound_Data"),
/**
* Error in outbound data.
*/
OUTBOUND_META_DATA ("Outbound_Meta_Data"),
/**
* Error in inbound transport operation.
*/
TRANSPORT_RECEIVE ("Comm_Recv"),
/**
* Error in outbound transport operation.
*/
TRANSPORT_SEND ("Comm_Send"),
/**
* Security related error
*/
SECURITY ("Security"),
/**
* Request timeout error.
*/
TIMEOUT ("Timeout"),
/*
* Security related sub categories.
*/
/**
* Security Authentication error
*/
AUTHN ("Authentication"),
/**
* Security Authorization error
*/
AUTHZ ("Authorization"),
/**
* Security Policy error
*/
POLICY ("Policy"),
/**
* Security Group membership error
*/
GROUPMEMBERSHIP ("GroupMembership"),
/**
* Security Blacklist error
*/
BLACKLIST ("BlackList"),
/**
* Security WhiteList error
*/
WHITELIST ("WhiteList"),
/**
* Security PolicyEnforcement error
*/
POLICYENFORCEMENT ("PolicyEnforcement"),
/**
* Rate Limiting error
*/
RL ("RateLimiter"),
/**
* Rate Limiting error
*/
CACHE_POLICY ("CachePolicy"),
/**
* Security Miscellaneous error
*/
MISC ("Miscellaneous");
private String name;
ErrorSubcategory(String name) {
this.name = name;
}
/**
* Returns the <code>String</code> name for the subcategory.
* This method is introduced to translate the enum to a meaningful string
* which can be used in logging and monitoring.
*
* @return string name of the enum
*/
public String getName() {
return name;
}
/**
* Had to be replaced in the long run
*/
public static final Map<String, ErrorSubcategory> NAMETOERRORSUBCATEGORY =
new HashMap<String, ErrorSubcategory>(){{
put("System", ErrorSubcategory.SYSTEM);
put("Application", ErrorSubcategory.APPLICATION);
put("Config", ErrorSubcategory.CONFIG);
put("Markdown", ErrorSubcategory.MARKDOWN);
put("Inbound_Data", ErrorSubcategory.INBOUND_DATA);
put("Inbound_Meta_Data", ErrorSubcategory.INBOUND_META_DATA);
put("Outbound_Data", ErrorSubcategory.OUTBOUND_DATA);
put("Outbound_Meta_Data", ErrorSubcategory.OUTBOUND_META_DATA);
put("Comm_Recv", ErrorSubcategory.TRANSPORT_RECEIVE);
put("Comm_Send", ErrorSubcategory.TRANSPORT_SEND);
put("Security", ErrorSubcategory.SECURITY);
put("Timeout", ErrorSubcategory.TIMEOUT);
put("Authentication", ErrorSubcategory.AUTHN);
put("Authorization", ErrorSubcategory.AUTHZ);
put("Policy", ErrorSubcategory.POLICY);
put("GroupMembership", ErrorSubcategory.GROUPMEMBERSHIP);
put("BlackList", ErrorSubcategory.BLACKLIST);
put("WhiteList", ErrorSubcategory.WHITELIST);
put("PolicyEnforcement", ErrorSubcategory.POLICYENFORCEMENT);
put("RateLimiter", ErrorSubcategory.RL);
put("CachePolicy", ErrorSubcategory.CACHE_POLICY);
put("Miscellaneous", ErrorSubcategory.MISC);
}};
}