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-2013 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