001 /* 002 * Copyright 2009-2015 UnboundID Corp. 003 * All Rights Reserved. 004 */ 005 /* 006 * Copyright (C) 2015 UnboundID Corp. 007 * 008 * This program is free software; you can redistribute it and/or modify 009 * it under the terms of the GNU General Public License (GPLv2 only) 010 * or the terms of the GNU Lesser General Public License (LGPLv2.1 only) 011 * as published by the Free Software Foundation. 012 * 013 * This program is distributed in the hope that it will be useful, 014 * but WITHOUT ANY WARRANTY; without even the implied warranty of 015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 016 * GNU General Public License for more details. 017 * 018 * You should have received a copy of the GNU General Public License 019 * along with this program; if not, see <http://www.gnu.org/licenses>. 020 */ 021 package com.unboundid.ldap.sdk.unboundidds; 022 023 024 025 import com.unboundid.util.StaticUtils; 026 import com.unboundid.util.ThreadSafety; 027 import com.unboundid.util.ThreadSafetyLevel; 028 029 030 031 /** 032 * <BLOCKQUOTE> 033 * <B>NOTE:</B> This class is part of the Commercial Edition of the UnboundID 034 * LDAP SDK for Java. It is not available for use in applications that 035 * include only the Standard Edition of the LDAP SDK, and is not supported for 036 * use in conjunction with non-UnboundID products. 037 * </BLOCKQUOTE> 038 * This class provides information about the types of alert severities that may 039 * be included in alert entries. 040 */ 041 @ThreadSafety(level=ThreadSafetyLevel.COMPLETELY_THREADSAFE) 042 public enum AlertSeverity 043 { 044 /** 045 * The alert severity that indicates that the associated alert is 046 * informational. 047 */ 048 INFO("info"), 049 050 051 052 /** 053 * The alert severity that indicates that the associated alert indicates a 054 * warning has occurred. 055 */ 056 WARNING("warning"), 057 058 059 060 /** 061 * The alert severity that indicates that the associated alert indicates a 062 * non-fatal error has occurred. 063 */ 064 ERROR("error"), 065 066 067 068 /** 069 * The alert severity that indicates that the associated alert indicates a 070 * fatal error has occurred. 071 */ 072 FATAL("fatal"); 073 074 075 076 // The name for this alert severity. 077 private final String name; 078 079 080 081 /** 082 * Creates a new alert severity with the specified name. 083 * 084 * @param name The name for this alert severity. 085 */ 086 private AlertSeverity(final String name) 087 { 088 this.name = name; 089 } 090 091 092 093 /** 094 * Retrieves the name for this alert severity. 095 * 096 * @return The name for this alert severity. 097 */ 098 public String getName() 099 { 100 return name; 101 } 102 103 104 105 /** 106 * Retrieves the alert severity with the specified name. 107 * 108 * @param name The name of the alert severity to retrieve. 109 * 110 * @return The alert severity with the specified name, or {@code null} if 111 * there is no alert severity with the given name. 112 */ 113 public static AlertSeverity forName(final String name) 114 { 115 final String lowerName = StaticUtils.toLowerCase(name); 116 117 if (lowerName.equals("error")) 118 { 119 return ERROR; 120 } 121 else if (lowerName.equals("fatal")) 122 { 123 return FATAL; 124 } 125 else if (lowerName.equals("info")) 126 { 127 return INFO; 128 } 129 else if (lowerName.equals("warning")) 130 { 131 return WARNING; 132 } 133 else 134 { 135 return null; 136 } 137 } 138 139 140 141 /** 142 * Retrieves a string representation of this alert severity. 143 * 144 * @return A string representation of this alert severity. 145 */ 146 @Override() 147 public String toString() 148 { 149 return name; 150 } 151 }