001 /* 002 * Copyright 2012-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.controls; 022 023 024 025 import com.unboundid.util.ThreadSafety; 026 import com.unboundid.util.ThreadSafetyLevel; 027 028 029 030 /** 031 * <BLOCKQUOTE> 032 * <B>NOTE:</B> This class is part of the Commercial Edition of the UnboundID 033 * LDAP SDK for Java. It is not available for use in applications that 034 * include only the Standard Edition of the LDAP SDK, and is not supported for 035 * use in conjunction with non-UnboundID products. 036 * </BLOCKQUOTE> 037 * This enum defines the set of operational update types that may be suppressed 038 * by the suppress operational attribute update request control. 039 */ 040 @ThreadSafety(level=ThreadSafetyLevel.COMPLETELY_THREADSAFE) 041 public enum SuppressType 042 { 043 /** 044 * The value that indicates that last access time updates should be 045 * suppressed. 046 */ 047 LAST_ACCESS_TIME(0), 048 049 050 051 /** 052 * The value that indicates that last login time updates should be suppressed. 053 */ 054 LAST_LOGIN_TIME(1), 055 056 057 058 /** 059 * The value that indicates that last login IP address updates should be 060 * suppressed. 061 */ 062 LAST_LOGIN_IP(2), 063 064 065 066 /** 067 * The value that indicates that lastmod updates (creatorsName, 068 * createTimestamp, modifiersName, modifyTimestamp) should be suppressed. 069 */ 070 LASTMOD(3); 071 072 073 074 // The integer value for this suppress type enum value. 075 private final int intValue; 076 077 078 079 /** 080 * Creates a new suppress type enum value with the provided information. 081 * 082 * @param intValue The integer value for this value, as will be used to 083 * indicate it in the request control. 084 */ 085 SuppressType(final int intValue) 086 { 087 this.intValue = intValue; 088 } 089 090 091 092 /** 093 * Retrieves the integer value for this suppress type value. 094 * 095 * @return The integer value for this suppress type value. 096 */ 097 public int intValue() 098 { 099 return intValue; 100 } 101 102 103 104 /** 105 * Retrieves the suppress type value for the provided integer value. 106 * 107 * @param intValue The integer value for the suppress type value to 108 retrieve. 109 * 110 * @return The suppress type value that corresponds to the provided integer 111 * value, or {@code null} if there is no corresponding suppress type 112 * value. 113 */ 114 public static SuppressType valueOf(final int intValue) 115 { 116 for (final SuppressType t : values()) 117 { 118 if (t.intValue == intValue) 119 { 120 return t; 121 } 122 } 123 124 return null; 125 } 126 }