a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster/**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Copyright (c) 2006 Sun Microsystems Inc. All Rights Reserved
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * The contents of this file are subject to the terms
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * of the Common Development and Distribution License
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * (the License). You may not use this file except in
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * compliance with the License.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * You can obtain a copy of the License at
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * https://opensso.dev.java.net/public/CDDLv1.0.html or
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * opensso/legal/CDDLv1.0.txt
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * See the License for the specific language governing
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * permission and limitations under the License.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * When distributing Covered Code, include this CDDL
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Header Notice in each file and include the License file
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * at opensso/legal/CDDLv1.0.txt.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * If applicable, add the following below the CDDL Header,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * with the fields enclosed by brackets [] replaced by
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * your own identifying information:
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * "Portions Copyrighted [year] [name of copyright owner]"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * $Id: Status.java,v 1.2 2008/06/25 05:47:09 qcheng Exp $
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterpackage com.sun.identity.liberty.ws.common;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport javax.xml.namespace.QName;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster/**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * This class represents a common status object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * The following schema fragment specifies the expected content within the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>Status</code> object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <pre>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * &lt;complexType name="Status">
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * &lt;complexContent>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * &lt;sequence>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * &lt;element ref="Status" minOccurs="0"/>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * &lt;/sequence>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * &lt;attribute name="code" use="required" type="{http://www.w3.org/2001/XMLSchema}QName" />
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * &lt;attribute name="comment" type="{http://www.w3.org/2001/XMLSchema}string" />
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * &lt;attribute name="ref" type="{http://www.w3.org/2001/XMLSchema}IDREF" />
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * &lt;/restriction>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * &lt;/complexContent>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * &lt;/complexType>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * </pre>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @supported.all.api
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterpublic class Status {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private Status status;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private String ref;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private QName code;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private String comment;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private String ns = null;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private String nsPrefix = null;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Default constructor.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public Status() {}
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Constructor.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param ns Name space for the Status object
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param nsPrefix prefix used for the name space, for example,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>disco</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public Status(String ns, String nsPrefix) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster this.ns = ns;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster this.nsPrefix = nsPrefix;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Gets sub status.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return Status
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @see #setSubStatus(Status)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public Status getSubStatus() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return status;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets sub status. The sub status is used by a service to convey
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * second-level status information in addition to the status code.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param status Status to be set
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @see #getSubStatus()
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void setSubStatus(Status status) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster this.status = status;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Gets reference attribute.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return reference attribute.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @see #setRef(String)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public String getRef() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return ref;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets reference attribute.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param value reference to be set
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @see #getRef()
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void setRef(String value) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster this.ref = value;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Gets status code.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return status code.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @see #setCode(QName)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public QName getCode() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return code;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets status code.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param value status code to be set
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @see #getCode()
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void setCode(QName value) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster this.code = value;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Gets comment for the status.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return comment for the status.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @see #setComment(String)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public String getComment() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return comment;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets comment
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param comment String
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @see #getComment()
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void setComment(String comment) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster this.comment = comment;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns string format of the status.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return String
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public String toString() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster StringBuffer sb = new StringBuffer(500);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster sb.append("<");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((nsPrefix != null) && nsPrefix.length() != 0) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster sb.append(nsPrefix).append(":Status xmlns:").append(nsPrefix).
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster append("=\"");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster sb.append("Status xmlns=\"");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster // ns must be present
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster sb.append(ns).append("\"");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (code != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String localPart = code.getLocalPart();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((localPart != null) && localPart.length() != 0) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster sb.append(" code=\"");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String codeNS = code.getNamespaceURI();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((codeNS == null) || codeNS.length() == 0) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster sb.append(localPart).append("\"");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((ns != null) && ns.equals(codeNS)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((nsPrefix != null) && nsPrefix.length() != 0) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster sb.append(nsPrefix).append(":");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster sb.append(localPart).append("\"");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String codePrefix = code.getPrefix();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((codePrefix != null) && codePrefix.length() != 0) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster sb.append(codePrefix).append(":").
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster append(localPart).append("\" xmlns:").
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster append(codePrefix).append("=\"").
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster append(codeNS).append("\"");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((nsPrefix == null) || nsPrefix.length() == 0) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster sb.append("ns1:").append(localPart).
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster append("\" xmlns:").append("ns1=\"").
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster append(codeNS).append("\"");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster sb.append(localPart).append("\" xmlns=\"").
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster append(codeNS).append("\"");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((ref != null) && ref.length() != 0) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster sb.append(" ref=\"").append(ref).append("\"");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((comment != null) && comment.length() != 0) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster sb.append(" comment=\"").append(comment).append("\"");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster sb.append(">");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (status != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster status.toString();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((nsPrefix != null) && nsPrefix.length() != 0) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster sb.append("</").append(nsPrefix).append(":Status>");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster sb.append("</Status>");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return sb.toString();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster}