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 * (C) 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 }