01: /*
02: * The contents of this file are subject to the terms
03: * of the Common Development and Distribution License
04: * (the "License"). You may not use this file except
05: * in compliance with the License.
06: *
07: * You can obtain a copy of the license at
08: * https://jwsdp.dev.java.net/CDDLv1.0.html
09: * See the License for the specific language governing
10: * permissions and limitations under the License.
11: *
12: * When distributing Covered Code, include this CDDL
13: * HEADER in each file and include the License file at
14: * https://jwsdp.dev.java.net/CDDLv1.0.html If applicable,
15: * add the following below this CDDL HEADER, with the
16: * fields enclosed by brackets "[]" replaced with your
17: * own identifying information: Portions Copyright [yyyy]
18: * [name of copyright owner]
19: */
20: /*
21: * $Id: Evidence.java,v 1.5 2007/01/08 16:05:56 shyam_rao Exp $
22: */
23:
24: /*
25: * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
26: * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
27: */
28:
29: package com.sun.xml.wss.saml.assertion.saml11.jaxb10;
30:
31: import com.sun.xml.wss.saml.SAMLException;
32: import com.sun.xml.bind.util.ListImpl;
33:
34: import com.sun.xml.wss.logging.LogDomainConstants;
35: import com.sun.xml.wss.saml.internal.saml11.jaxb10.impl.EvidenceTypeImpl;
36: import com.sun.xml.wss.saml.util.SAMLJAXBUtil;
37: import java.util.List;
38: import java.util.logging.Logger;
39:
40: import javax.xml.bind.JAXBContext;
41:
42: /**
43: * The <code>Evidence</code> element specifies an assertion either by
44: * reference or by value. An assertion is specified by reference to the value of
45: * the assertion's <code>AssertionIDReference</code> element.
46: * An assertion is specified by value by including the entire
47: * <code>Assertion</code> object
48: */
49: public class Evidence extends
50: com.sun.xml.wss.saml.internal.saml11.jaxb10.impl.EvidenceImpl
51: implements com.sun.xml.wss.saml.Evidence {
52:
53: protected static final Logger log = Logger.getLogger(
54: LogDomainConstants.WSS_API_DOMAIN,
55: LogDomainConstants.WSS_API_DOMAIN_BUNDLE);
56:
57: /**
58: * Constructs an <code>Evidence</code> object from a block of existing XML
59: * that has already been built into a DOM.
60: *
61: * @param assertionSpecifierElement A <code>org.w3c.dom.Element</code>
62: * representing DOM tree for <code>Evidence</code> object.
63: * @exception SAMLException if it could not process the Element properly,
64: * implying that there is an error in the sender or in the
65: * element definition.
66: */
67: public static EvidenceTypeImpl fromElement(
68: org.w3c.dom.Element element) throws SAMLException {
69: try {
70: JAXBContext jc = SAMLJAXBUtil.getJAXBContext();
71: javax.xml.bind.Unmarshaller u = jc.createUnmarshaller();
72: return (EvidenceTypeImpl) u.unmarshal(element);
73: } catch (Exception ex) {
74: throw new SAMLException(ex.getMessage());
75: }
76: }
77:
78: private void setAssertionIDReferenceOrAssertion(List evidence) {
79: this ._AssertionIDReferenceOrAssertion = new ListImpl(evidence);
80: }
81:
82: /**
83: * Constructs an Evidence from a Set of <code>Assertion</code> and
84: * <code>AssertionIDReference</code> objects.
85: *
86: * @param assertionIDRef Set of <code>AssertionIDReference</code> objects.
87: * @param assertion Set of <code>Assertion</code> objects.
88: * @exception SAMLException if either Set is empty or has invalid object.
89: */
90: public Evidence(List assertionIDRef, List assertion) {
91:
92: if (assertionIDRef != null)
93: setAssertionIDReferenceOrAssertion(assertionIDRef);
94: else if (assertion != null)
95: setAssertionIDReferenceOrAssertion(assertion);
96: }
97: }
|