001 /* 002 * CDDL HEADER START 003 * 004 * The contents of this file are subject to the terms of the 005 * Common Development and Distribution License, Version 1.0 only 006 * (the "License"). You may not use this file except in compliance 007 * with the License. 008 * 009 * You can obtain a copy of the license at 010 * trunk/ds/resource/legal-notices/cddl.txt 011 * or http://www.opensource.org/licenses/cddl1.php. 012 * See the License for the specific language governing permissions 013 * and limitations under the License. 014 * 015 * When distributing Covered Code, include this CDDL HEADER in each 016 * file and include the License file at 017 * trunk/ds/resource/legal-notices/cddl.txt. If applicable, 018 * add the following below this CDDL HEADER, with the fields enclosed 019 * by brackets "[]" replaced with your own identifying information: 020 * Portions Copyright [yyyy] [name of copyright owner] 021 * 022 * CDDL HEADER END 023 * 024 * 025 * Portions Copyright 2007-2014 UnboundID Corp. 026 * Portions Copyright 2006-2008 Sun Microsystems, Inc. 027 */ 028 package com.unboundid.directory.sdk.ds.types; 029 030 031 032 import java.util.List; 033 import java.util.Map; 034 035 import com.unboundid.directory.sdk.common.types.Entry; 036 import com.unboundid.util.ThreadSafety; 037 import com.unboundid.util.ThreadSafetyLevel; 038 039 040 /** 041 * This class defines a data type for storing information associated 042 * with an account status notification. 043 */ 044 @ThreadSafety(level= ThreadSafetyLevel.INTERFACE_THREADSAFE) 045 public interface AccountStatusNotification 046 { 047 /** 048 * Retrieves the notification type for this account status notification. 049 * 050 * @return The notification type for this account status notification. 051 */ 052 AccountStatusNotificationType getNotificationType(); 053 054 055 056 /** 057 * Retrieves the DN of the user entry to which this notification applies. 058 * 059 * @return The DN of the user entry to which this notification applies. 060 */ 061 String getUserDN(); 062 063 064 065 /** 066 * Retrieves the user entry for whom this notification applies. 067 * 068 * @return The user entry for whom this notification applies. 069 */ 070 Entry getUserEntry(); 071 072 073 074 /** 075 * Retrieves a message that provides additional information for this account 076 * status notification. 077 * 078 * @return A message that provides additional information for this account 079 * status notification. 080 */ 081 String getMessage(); 082 083 084 085 /** 086 * Retrieves a set of properties that may provide additional information for 087 * this account status notification. 088 * 089 * @return A set of properties that may provide additional information for 090 * this account status notification. 091 */ 092 Map<AccountStatusNotificationProperty,List<String>> 093 getNotificationProperties(); 094 095 096 097 /** 098 * Retrieves the set of values for the specified account status notification 099 * property. 100 * 101 * @param property The account status notification property for which to 102 * retrieve the associated values. 103 * 104 * @return The set of values for the specified account status notification 105 * property, or {@code null} if the specified property is not defined 106 * for this account status notification. 107 */ 108 List<String> getNotificationProperty( 109 final AccountStatusNotificationProperty property); 110 111 112 113 /** 114 * Retrieves a string representation of this account status notification. 115 * 116 * @return A string representation of this account status notification. 117 */ 118 String toString(); 119 } 120