001 /* 002 * file CqDynamicChoiceList.java 003 * 004 * Licensed Materials - Property of IBM 005 * Restricted Materials of IBM 006 * 007 * com.ibm.rational.wvcm.stp.cq.CqDynamicChoiceList 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 014 package com.ibm.rational.wvcm.stp.cq; 015 016 import static com.ibm.rational.wvcm.stpex.StpExBase.PROPERTY_NAMESPACE; 017 018 import java.util.List; 019 020 import javax.wvcm.WvcmException; 021 import javax.wvcm.PropertyNameList.PropertyName; 022 023 import com.ibm.rational.wvcm.stp.StpResource; 024 import com.ibm.rational.wvcm.stpex.StpExBase; 025 026 /** 027 * A proxy for a ClearQuest dynamic choice list. 028 * * <p> 029 * The user-friendly specification for the location of a dynamic choice list has the form 030 * <pre> 031 * <b>cq.choicelist:</b><i><choice-list-name></i>@<i><db-set></i>/<i><user-db></i> 032 * </pre> 033 */ 034 public interface CqDynamicChoiceList 035 extends CqContextResource { 036 037 /** The list of choices in this dynamic choice list */ 038 public static final PropertyName<List<String>> MEMBER_LIST = 039 new PropertyName<List<String>>(PROPERTY_NAMESPACE, "member-list"); 040 041 /** 042 * Returns the value of the {@link #MEMBER_LIST MEMBER_LIST} property as 043 * defined by this proxy. If this property was set in the proxy via 044 * {@link #setMemberList(List, List)}, only the list of additions will be 045 * returned 046 * 047 * @return A list of Strings each representing one member of the choice list 048 * 049 * @throws WvcmException if this proxy does not define a value for the 050 * {@link #MEMBER_LIST MEMBER_LIST} property. 051 */ 052 public List<String> getMemberList() throws WvcmException; 053 054 /** 055 * Defines values for the {@link #MEMBER_LIST MEMBER_LIST} property of this 056 * proxy. 057 * 058 * @param choices A list of Strings specifying the members of this dynamic 059 * choice list. This list becomes the entire new content of the 060 * dynamic choice list. In a highly collaborative environment, 061 * updating the list in this fashion is discouraged. Use 062 * {@link #setMemberList(List, List)} instead. 063 */ 064 public void setMemberList(List<String> choices); 065 066 /** 067 * Establishes the values to be added to and/or deleted from the MEMBER_LIST 068 * property when that property is updated from this proxy (via 069 * doWriteProperties or any other "do" method of this interface). 070 * 071 * @param additions The list of String values that must be in the 072 * MEMBER_LIST property after it has been updated from this 073 * proxy. Thus, it is OK for a value in this list to already be a 074 * member of the property value. This list may be empty or null 075 * if no values are to be added to the property. A value may not 076 * appear in both this list and the deletions list. 077 * 078 * @param deletions The list of String values that must not be in the 079 * MEMBER_LIST property after it has been updated from this 080 * proxy. Thus, it is OK for a value in this list to not be a 081 * current member of the property value. This list may be empty 082 * or null if no values are to be deleted from the property. A 083 * value may not appear in both this list and the additions list. 084 */ 085 void setMemberList(List<String> additions, 086 List<String> deletions); 087 }