001 /*
002 * file CqDbSet.java
003 *
004 * Licensed Materials - Property of IBM
005 * Restricted Materials of IBM
006 *
007 * com.ibm.rational.wvcm.stp.cq.CqDbSet
008 *
009 * © Copyright IBM Corporation 2004, 2008. All Rights Reserved.
010 * Note to U.S. Government Users Restricted Rights: Use, duplication or
011 * disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
012 */
013 package com.ibm.rational.wvcm.stp.cq;
014
015 import static com.ibm.rational.wvcm.stpex.StpExBase.PROPERTY_NAMESPACE;
016
017 import javax.wvcm.ResourceList;
018 import javax.wvcm.WvcmException;
019 import javax.wvcm.PropertyNameList.PropertyName;
020
021 import com.ibm.rational.wvcm.stp.StpRepository;
022 import com.ibm.rational.wvcm.stpex.StpExEnumeration;
023 import com.ibm.rational.wvcm.stpex.StpExEnumerationBase;
024
025
026 /**
027 * A collection of user database resources. The user databases are known by
028 * simple names within a CqDbSet, and thus the CqDbSet is fundamentally useful for
029 * enumerating those database names.
030 * <p>
031 * The user-friendly specification for the location of a db-set has the form
032 * <pre>
033 * <b>cq.dbset:</b><i><db-set-name>
034 * </pre>
035 */
036 public interface CqDbSet
037 extends CqDb, StpRepository
038 {
039 /**
040 * A list of the user databases to which the current user has access. The
041 * list is the same as that returned by
042 * getCurrentUser().getSubscribedDatabases(), but can be computed much more
043 * efficiently.
044 */
045 PropertyName<ResourceList<CqUserDb>> ACCESSIBLE_DATABASES =
046 new PropertyName<ResourceList<CqUserDb>>(PROPERTY_NAMESPACE,
047 "accessible-databases");
048
049 /**
050 * Returns the value of the {@link #ACCESSIBLE_DATABASES} property as
051 * defined by this proxy.
052 *
053 * @return A list of the user databases that are in this DbSet. Will never
054 * be <b>null</b>, but may be empty.
055 *
056 * @throws WvcmException if this proxy does not define a value for the
057 * {@link #ACCESSIBLE_DATABASES} property.
058 */
059 ResourceList<CqUserDb> getAccessibleDatabases() throws WvcmException;
060
061 /** A list of the user databases that are in this DbSet */
062 PropertyName<ResourceList<CqUserDb>> USER_DATABASES =
063 new PropertyName<ResourceList<CqUserDb>>(PROPERTY_NAMESPACE, "user-databases");
064
065 /**
066 * Returns the value of the {@link #USER_DATABASES} property as defined by
067 * this proxy.
068 *
069 * @return A list of the user databases that are in this DbSet. Will never
070 * be <b>null</b>, but may be empty.
071 *
072 * @throws WvcmException if this proxy does not define a value for the
073 * {@link #USER_DATABASES} property.
074 */
075 ResourceList<CqUserDb> getUserDatabases() throws WvcmException;
076
077 /**
078 * Indicates whether the current authentication algorithm is ClearQuest
079 * first (then LDAP) or ClearQuest only (no LDAP).
080 */
081 PropertyName<AuthenticationAlgorithm> AUTHENTICATION_ALGORITHM =
082 new PropertyName<AuthenticationAlgorithm>(PROPERTY_NAMESPACE,
083 "authentication-algorithm");
084
085 /**
086 * Returns the value of the {@link #AUTHENTICATION_ALGORITHM AUTHENTICATION_ALGORITHM}
087 * property as defined by this proxy.
088 *
089 * @return The AuthenticationAlgorithm value. Will never be <b>null</b>.
090 *
091 * @throws WvcmException if this proxy does not define a value for the
092 * {@link #AUTHENTICATION_ALGORITHM AUTHENTICATION_ALGORITHM} property.
093 */
094 AuthenticationAlgorithm getAuthenticationAlgorithm() throws WvcmException;
095
096
097 /**
098 * Defines a new value for the
099 * {@link #AUTHENTICATION_ALGORITHM AUTHENTICATION_ALGORITHM} property of
100 * this proxy.
101 *
102 * @param value An AuthenticationAlgorithm object specifying the new value
103 * of the property. Must not be <b>null</b>.
104 */
105 void setAuthenticationAlgorithm(AuthenticationAlgorithm value);
106
107 /**
108 * AuthenticationAlgorithm constants specify which authentication search
109 * strategy is selected when a Rational ClearQuest user logs on.
110 */
111 enum AuthenticationAlgorithm implements StpExEnumeration
112 {
113 /**
114 * Authenticate using traditional Rational ClearQuest user
115 * authentication as the preference, and failing that, attempt to
116 * authenticate using LDAP authentication.
117 */
118 CLEAR_QUEST_FIRST,
119
120 /**
121 * Traditional Rational ClearQuest user authentication. Does not
122 * allow LDAP authentication. This is the default algorithm.
123 */
124 CLEAR_QUEST_ONLY;
125 }
126
127 /**
128 * Answers whether or not this database set, using the CqProvider of
129 * this proxy, provides user and group administration functions such as
130 * the creation of new users and groups and the modification of user and
131 * group properties.
132 */
133 static PropertyName<Boolean> IS_USER_ADMIN_ENABLED =
134 new PropertyName<Boolean>(PROPERTY_NAMESPACE, "is-user-admin-enabled");
135
136 /**
137 * Returns the value of the
138 * {@link #IS_USER_ADMIN_ENABLED IS_USER_ADMIN_ENABLED} property as
139 * defined by this proxy.
140 *
141 * @return <b>true</b> if user and group administration is supported by
142 * this database through this proxy's CqProvider; <b>false</b>
143 * otherwise.
144 *
145 * @throws WvcmException
146 * if this proxy does not define a value for the
147 * {@link #IS_USER_ADMIN_ENABLED IS_USER_ADMIN_ENABLED}
148 * property.
149 */
150 boolean getIsUserAdminEnabled() throws WvcmException;
151
152 }