001/**
002 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
003 *
004 * Copyright (c) 2005 Sun Microsystems Inc. All Rights Reserved
005 *
006 * The contents of this file are subject to the terms
007 * of the Common Development and Distribution License
008 * (the License). You may not use this file except in
009 * compliance with the License.
010 *
011 * You can obtain a copy of the License at
012 * https://opensso.dev.java.net/public/CDDLv1.0.html or
013 * opensso/legal/CDDLv1.0.txt
014 * See the License for the specific language governing
015 * permission and limitations under the License.
016 *
017 * When distributing Covered Code, include this CDDL
018 * Header Notice in each file and include the License file
019 * at opensso/legal/CDDLv1.0.txt.
020 * If applicable, add the following below the CDDL Header,
021 * with the fields enclosed by brackets [] replaced by
022 * your own identifying information:
023 * "Portions Copyrighted [year] [name of copyright owner]"
024 *
025 * $Id: AMAssignableDynamicGroup.java,v 1.5 2008/06/25 05:41:19 qcheng Exp $
026 *
027 */
028
029package com.iplanet.am.sdk;
030
031import java.util.Set;
032
033
034import com.iplanet.sso.SSOException;
035
036/**
037 * <p>
038 * The <code>AMAssignableDynamicGroup</code> interface provides methods to
039 * manage assignable dynamic group. <code>AMAssignableDynamicGroup</code>
040 * objects can be obtained by using <code>AMStoreConnection</code>. A handle
041 * to this object can be obtained by using the DN of the object.
042 * 
043 * <pre>
044 * AMStoreConnection amsc = new AMStoreConnection(ssotoken);
045 * if (amsc.doesEntryExist(aDN)) {
046 *     AMAssignableDynamicGroup adg = amsc.getAssignableDynamicGroup(aDN);
047 * }
048 * </pre>
049 *
050 * @deprecated  As of Sun Java System Access Manager 7.1.
051 * @supported.all.api
052 */
053
054public interface AMAssignableDynamicGroup extends AMGroup {
055    /**
056     * Adds users to the assignable dynamic group.
057     * 
058     * @param users
059     *            The set of user distinguished names to be added to the
060     *            assignable dynamic group.
061     * @throws AMException
062     *             if an error is encountered when trying to access/retrieve
063     *             data from the data store.
064     * @throws SSOException
065     *             if the single sign on token is no longer valid.
066     */
067    public void addUsers(Set users) throws AMException, SSOException;
068
069    /**
070     * Removes users from the assignable dynamic group.
071     * 
072     * @param users
073     *            The set of user distinguished names to be removed from the
074     *            assignable dynamic group.
075     * @throws AMException
076     *             if an error is encountered when trying to access/retrieve
077     *             data from the data store.
078     * @throws SSOException
079     *             if the single sign on token is no longer valid.
080     */
081    public void removeUsers(Set users) throws AMException, SSOException;
082
083    /**
084     * Returns true if the assignable dynamic group is subscribable.
085     * 
086     * @return true if the assignable dynamic group is subscribable.
087     * @throws AMException
088     *             if an error is encountered when trying to access/retrieve
089     *             data from the data store.
090     * @throws SSOException
091     *             if the single sign on token is no longer valid.
092     */
093    public boolean isSubscribable() throws AMException, SSOException;
094
095    /**
096     * Sets subscribe-ability of the assignable dynamic group.
097     * 
098     * @param subscribable
099     *            true if the assignable dynamic group is subscribable.
100     * @throws AMException
101     *             if an error is encountered when trying to access/retrieve
102     *             data from the data store.
103     * @throws SSOException
104     *             if the single sign on token is no longer valid.
105     */
106    public void setSubscribable(boolean subscribable) throws AMException,
107            SSOException;
108}