Lots o' profile handler refactoring
[java-idp.git] / src / edu / internet2 / middleware / shibboleth / idp / profile / saml2 / ProfileResponseContext.java
1 /*
2  * Copyright [2007] [University Corporation for Advanced Internet Development, Inc.]
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package edu.internet2.middleware.shibboleth.idp.profile.saml2;
18
19 import org.joda.time.DateTime;
20 import org.opensaml.saml2.core.AttributeStatement;
21 import org.opensaml.saml2.core.Issuer;
22 import org.opensaml.saml2.core.SubjectQuery;
23
24 import edu.internet2.middleware.shibboleth.common.profile.ProfileRequest;
25
26 /**
27  * Contains contextual information used in processing profile responses.
28  */
29 public class ProfileResponseContext {
30
31     /** Profile request. */
32     private ProfileRequest request;
33
34     /** Profile request message. */
35     private SubjectQuery message;
36
37     /** Response issuer. */
38     private Issuer issuer;
39
40     /** Response destination. */
41     private String destination;
42
43     /** Provider id to retrieve relying party configuration. */
44     private String providerId;
45
46     /** Issue instant for the response. */
47     private DateTime issueInstant;
48
49     /** Response statement. */
50     private AttributeStatement attributeStatement;
51
52     /**
53      * Constructor.
54      * 
55      * @param r serlvet request
56      * @param m decoded profile request message
57      */
58     public ProfileResponseContext(ProfileRequest r, SubjectQuery m) {
59         request = r;
60         message = m;
61         providerId = m.getIssuer().getSPProvidedID();
62         issueInstant = new DateTime();
63     }
64
65     /**
66      * Gets the initiating profile request.
67      * 
68      * @return profile request
69      */
70     public ProfileRequest getRequest() {
71         return request;
72     }
73
74     /**
75      * Gets the decoded profile request message.
76      * 
77      * @return profile request message
78      */
79     public SubjectQuery getMessage() {
80         return message;
81     }
82
83     /**
84      * Gets the provider id.
85      * 
86      * @return provider id
87      */
88     public String getProviderId() {
89         return providerId;
90     }
91
92     /**
93      * Gets the issue instant for the response.
94      * 
95      * @return issue instant
96      */
97     public DateTime getIssueInstant() {
98         return issueInstant;
99     }
100
101     /**
102      * Sets an issuer associated with this response.
103      * 
104      * @param i to set
105      */
106     public void setIssuer(Issuer i) {
107         issuer = i;
108     }
109
110     /**
111      * Gets the issuer associated with this response.
112      * 
113      * @return issuer
114      */
115     public Issuer getIssuer() {
116         return issuer;
117     }
118
119     /**
120      * Sets a destination associated with this response.
121      * 
122      * @param d to set
123      */
124     public void setDestination(String d) {
125         destination = d;
126     }
127
128     /**
129      * Gets the destination associated with this response.
130      * 
131      * @return destination
132      */
133     public String getDestination() {
134         return destination;
135     }
136
137     /**
138      * Sets a attribute statement associated with this response.
139      * 
140      * @param s to sets
141      */
142     public void setAttributeStatement(AttributeStatement s) {
143         attributeStatement = s;
144     }
145
146     /**
147      * Gets the statement associated with this response.
148      * 
149      * @return response statement
150      */
151     public AttributeStatement getAttributeStatement() {
152         return attributeStatement;
153     }
154 }