001/**
002 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
003 *
004 * Copyright (c) 2007 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: ECPRequest.java,v 1.2 2008/06/25 05:47:46 qcheng Exp $
026 *
027 */
028
029package com.sun.identity.saml2.ecp;
030
031import com.sun.identity.saml2.assertion.Issuer;
032import com.sun.identity.saml2.protocol.IDPList;
033import com.sun.identity.saml2.common.SAML2Exception;
034
035/** 
036 *  The <code>ECPRequest</code> interface defines methods for properties
037 *  required by an ECP request.
038 *
039 *  @supported.all.api
040 */
041
042public interface ECPRequest {
043
044    /**
045     * Returns the value of the issuer attribute.
046     *
047     * @return the value of the issuer attribute
048     * @see #setIssuer(Issuer)
049     */
050    public Issuer getIssuer();
051
052    /**
053     * Sets the value of the issuer attribute.
054     *
055     * @param issuer the value of the issuer attribute to be set
056     * @throws SAML2Exception if the object is immutable
057     * @see #getIssuer
058     */
059    public void setIssuer(Issuer issuer) throws SAML2Exception;
060
061    /** 
062     * Returns the <code>IDPList</code> Object.
063     *
064     * @return the <code>IDPList</code> object.
065     * @see #setIDPList(IDPList)
066     */
067    public IDPList getIDPList();
068    
069    /** 
070     * Sets the <code>IDPList</code> Object.
071     *
072     * @param idpList the new <code>IDPList</code> object.
073     * @throws SAML2Exception if the object is immutable.
074     * @see #getIDPList
075     */
076    public void setIDPList(IDPList idpList) throws SAML2Exception;
077
078    /** 
079     * Returns value of <code>mustUnderstand</code> attribute.
080     *
081     * @return value of <code>mustUnderstand</code> attribute.
082     */
083    public Boolean isMustUnderstand();
084    
085    /** 
086     * Sets the value of the <code>mustUnderstand</code> attribute.
087     *
088     * @param mustUnderstand the value of <code>mustUnderstand</code>
089     *     attribute.
090     * @throws SAML2Exception if the object is immutable.
091     */
092    public void setMustUnderstand(Boolean mustUnderstand) throws SAML2Exception;
093
094    /**
095     * Returns value of <code>actor</code> attribute.
096     *
097     * @return value of <code>actor</code> attribute
098     */
099    public String getActor();
100
101    /**
102     * Sets the value of <code>actor</code> attribute.
103     *
104     * @param actor the value of <code>actor</code> attribute
105     * @throws SAML2Exception if the object is immutable.
106     */
107    public void setActor(String actor) throws SAML2Exception;
108
109    /** 
110     * Returns the <code>ProviderName</code> attribute value.
111     *
112     * @return value of the <code>ProviderName</code> attribute value.
113     * @see #setProviderName(String)
114     */
115    public String getProviderName();
116
117    /** 
118     * Sets the <code>ProviderName</code> attribute value.
119     *
120     * @param providerName value of the <code>ProviderName</code> attribute.
121     * @throws SAML2Exception if the object is immutable.
122     * @see #getProviderName
123     */
124    public void setProviderName(String providerName) throws SAML2Exception;
125
126    /** 
127     * Returns the value of the <code>isPassive</code> attribute.
128     *
129     * @return value of <code>isPassive</code> attribute.
130     */
131    public Boolean isPassive();
132
133    /** 
134     * Sets the value of the <code>IsPassive</code> attribute.
135     *
136     * @param isPassive value of <code>IsPassive</code> attribute.
137     * @throws SAML2Exception if the object is immutable.
138     */
139    public void setIsPassive(Boolean isPassive) throws SAML2Exception;
140
141    /** 
142     * Returns a String representation of this Object.
143     *
144     * @return a String representation of this Object.
145     * @throws SAML2Exception if cannot create String object.
146     */
147    public String toXMLString() throws SAML2Exception;
148    
149    /** 
150     * Returns a String representation of this Object.
151     *
152     * @param includeNSPrefix determines whether or not the namespace
153     *        qualifier is prepended to the Element when converted
154     * @param declareNS determines whether or not the namespace is declared
155     *        within the Element.
156     * @return the String representation of this Object.
157     * @throws SAML2Exception if cannot create String object.
158     **/
159    
160    public String toXMLString(boolean includeNSPrefix,boolean declareNS)
161           throws SAML2Exception;
162
163    /** 
164     * Makes this object immutable. 
165     *
166     */
167    public void makeImmutable() ;
168    
169    /** 
170     * Returns  true if object is mutable.
171     *
172     * @return true if object is mutable.
173     */
174    public boolean isMutable();
175}