public static final String ENABLE_AUDIT = "EnableAudit";
@Override
public Object parse(XMLEventReader xmlEventReader) throws ParsingException {
PicketLinkType picketLinkType = new PicketLinkType();
StartElement startElement = StaxParserUtil.getNextStartElement(xmlEventReader);
StaxParserUtil.validate(startElement, PICKETLINK);
// parse and set the root element attributes.
QName attributeQName = new QName("", ENABLE_AUDIT);
Attribute attribute = startElement.getAttributeByName(attributeQName);
if (attribute != null) {
picketLinkType.setEnableAudit(Boolean.parseBoolean(StaxParserUtil.getAttributeValue(attribute)));
}
startElement = StaxParserUtil.peekNextStartElement(xmlEventReader);
String tag = StaxParserUtil.getStartElementName(startElement);
while (xmlEventReader.hasNext()) {
if (SAMLConfigParser.IDP.equals(tag)) {
SAMLConfigParser samlConfigParser = new SAMLConfigParser();
ProviderType idp = (ProviderType) samlConfigParser.parse(xmlEventReader);
picketLinkType.setIdpOrSP(idp);
} else if (SAMLConfigParser.SP.equals(tag)) {
SAMLConfigParser samlConfigParser = new SAMLConfigParser();
ProviderType sp = (ProviderType) samlConfigParser.parse(xmlEventReader);
picketLinkType.setIdpOrSP(sp);
} else if (SAMLConfigParser.HANDLERS.equals(tag)) {
SAMLConfigParser samlConfigParser = new SAMLConfigParser();
Handlers handlers = (Handlers) samlConfigParser.parse(xmlEventReader);
picketLinkType.setHandlers(handlers);
} else if (STSConfigParser.ROOT_ELEMENT.equals(tag)) {
STSConfigParser samlConfigParser = new STSConfigParser();
STSType sts = (STSType) samlConfigParser.parse(xmlEventReader);
picketLinkType.setStsType(sts);
}
startElement = StaxParserUtil.peekNextStartElement(xmlEventReader);
if (startElement == null)
break;
tag = StaxParserUtil.getStartElementName(startElement);