/** {@inheritDoc} */ protected void processChildElement(XMLObject parentSAMLObject, XMLObject childSAMLObject) throws UnmarshallingException { Status status = (Status) parentSAMLObject; if (childSAMLObject instanceof StatusCode) { status.setStatusCode((StatusCode) childSAMLObject); } else if (childSAMLObject instanceof StatusMessage) { status.setStatusMessage((StatusMessage) childSAMLObject); } else if (childSAMLObject instanceof StatusDetail) { status.setStatusDetail((StatusDetail) childSAMLObject); } else { super.processChildElement(parentSAMLObject, childSAMLObject); } } }
protected final Status newStatus(final QName codeValue, final String statusMessage) { final Status status = newSamlObject(Status.class); final StatusCode code = newSamlObject(StatusCode.class); code.setValue(codeValue); status.setStatusCode(code); if (statusMessage != null) { final StatusMessage message = newSamlObject(StatusMessage.class); message.setMessage(statusMessage); status.setStatusMessage(message); } return status; }
/** * Validates that given status has a status code. * * @param status status to validate * * @throws ValidationException thrown if the status does not have a status code */ protected void validateStatusCode(Status status) throws ValidationException { if (status.getStatusCode() == null) { throw new ValidationException("No StatusCode element present"); } } }