/**
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright (c) 2006 Sun Microsystems Inc. All Rights Reserved
*
* The contents of this file are subject to the terms
* of the Common Development and Distribution License
* (the License). You may not use this file except in
* compliance with the License.
*
* You can obtain a copy of the License at
* See the License for the specific language governing
* permission and limitations under the License.
*
* When distributing Covered Code, include this CDDL
* Header Notice in each file and include the License file
* at opensso/legal/CDDLv1.0.txt.
* If applicable, add the following below the CDDL Header,
* with the fields enclosed by brackets [] replaced by
* your own identifying information:
* "Portions Copyrighted [year] [name of copyright owner]"
*
* $Id: ObligationImpl.java,v 1.3 2008/11/10 22:57:06 veiming Exp $
*
*/
/**
* The <code>Obligation</code> element is a container of
* one or more <code>AttributeAssignment</code>s issuded by
* authorization authority.
* @supported.all.api
*
* <p>
* <pre>
*
* <xs:element name="Obligation" type="xacml:ObligationType"/>
* <xs:complexType name="ObligationType">
* <xs:sequence>
* <xs:element ref="xacml:AttributeAssignment" minOccurs="0"
* maxOccurs="unbounded"/>
* </xs:sequence>
* <xs:attribute name="ObligationId" type="xs:anyURI"
* use="required"/>
* <xs:attribute name="FulfillOn" type="xacml:EffectType"
* use="required"/>
* </xs:complexType>
* </xs:element>
* </pre>
*/
// AttributeAssignment rquires AttributeId and DataType
private boolean mutable = true;
/**
* Default constructor
*/
public ObligationImpl() {
}
/**
* This constructor is used to build <code>Obligation</code> object
* from an XML string.
*
* @param xml a <code>String</code> representation of
* <code>Obligation</code> object
* @exception XACMLException if it could not process the XML string
*/
} else {
"ObligationImpl.processElement(): invalid XML input");
"errorObtainingElement"));
}
}
/**
* This constructor is used to build <code>ObligationImpl</code> object
* from a block of existing XML that has already been built into a DOM.
*
* @param element DOM tree for <code>Request</code> object
* @exception XACML2Exception if it could not process the Element
*/
}
"ObligationImpl.processElement(): invalid root element");
"invalid_element"));
}
// First check that we're really parsing an Obligation
"ObligationImpl.processElement(): invalid root element");
"invalid_element"));
}
try {
.getNodeValue());
} catch (Exception e) {
"attribute_not_uri"));
}
if (obligationId == null) {
"attribute_missing"));
}
try {
.getNodeValue();
} catch (Exception e) {
"error_parsing_attribute"));
}
// now we get the AttributeAssignment(s)
// AttributeAssignment requires AttributeId and DataType
if (attributeAssignments == null) {
attributeAssignments = new ArrayList();
}
// aa should have attributes AtributeId, DataType
throw new XACMLException(
"missing_attribute"));
}
throw new XACMLException(
"missing_attribute"));
}
} else {
throw new XACMLException(
"missing_element"));
}
}
}
}
/**
* Returns the ObligationId of this <code>Obligation</code>
* @return the <code>URI</code> representing ObligationId of this
* <code>Obligation</code>
*/
return obligationId;
}
/**
* Sets the ObligationId of the <code>Obligation</code>
* @param obligationId <code>URI</code> representing the ObligationId.
* @exception XACMLException if the object is immutable
*/
throws XACMLException {
this.obligationId = obligationId;
}
/**
* Returns the FullFillOn effect type of this obligation
* @return the FullFillOn effect type of this obligation
*/
return fulfillOn;
}
/**
* Sets the FullFillOn effect type of this obligation
*
* @param fulfillOn FullFillOn effect type of this obligation
*/
throws XACMLException {
}
/**
* Returns XML elements corresponding to
* <code>AttributeAssignment</code> elements for this obligation.
*
* @return the XML elements corresponding to
* <code>AttributeAssignment</code> elements for this obligation.
*/
return attributeAssignments;
}
/**
* Sets XML elements corresponding to
* <code>AttributeAssignment</code> elements for this obligation.
*
* @param attributeAssignments XML elements corresponding to
* <code>AttributeAssignment</code> elements for this obligation.
*/
throws XACMLException {
if (attributeAssignments == null) {
return;
}
throw new XACMLException(
"not_xml_element"));
}
throw new XACMLException(
"missing_attribute"));
}
throw new XACMLException(
"missing_attribute"));
}
}
}
/**
* Returns a string representation of this object
* @param includeNSPrefix Determines whether or not the namespace qualifier
* is prepended to the Element when converted
* @param declareNS Determines whether or not the namespace is declared
* within the Element.
* @return a string representation
* @exception XACMLException if conversion fails for any reason
*/
throws XACMLException {
if (includeNSPrefix) {
}
if (declareNS) {
}
if(declareNS) {
}
if (obligationId != null) {
}
}
int length = 0;
if (attributeAssignments != null) {
for (int i = 0; i < length; i++) {
}
}
}
/**
* Returns a string representation of this object
*
* @return a string representation
* @exception XACMLException if conversion fails for any reason
*/
return toXMLString(true, true);
}
/**
* Makes this object immutable
*/
public void makeImmutable() {
mutable = false;
}
/**
* Checks if this object is mutable
*
* @return <code>true</code> if the object is mutable,
* <code>false</code> otherwise
*/
public boolean isMutable() {
return mutable;
}
}