public PasswordPolicy unmarshall(StaxUnmarshallerContext context) throws Exception { PasswordPolicy passwordPolicy = new PasswordPolicy(); int originalDepth = context.getCurrentDepth(); int targetDepth = originalDepth + 1; if (context.isStartOfDocument()) targetDepth += 1; while (true) { XMLEvent xmlEvent = context.nextEvent(); if (xmlEvent.isEndDocument()) return passwordPolicy; if (xmlEvent.isAttribute() || xmlEvent.isStartElement()) { if (context.testExpression("MinimumPasswordLength", targetDepth)) { passwordPolicy.setMinimumPasswordLength( IntegerStaxUnmarshaller.getInstance().unmarshall(context)); continue; } if (context.testExpression("RequireSymbols", targetDepth)) { passwordPolicy.setRequireSymbols( BooleanStaxUnmarshaller.getInstance().unmarshall(context)); continue; } if (context.testExpression("RequireNumbers", targetDepth)) { passwordPolicy.setRequireNumbers( BooleanStaxUnmarshaller.getInstance().unmarshall(context)); continue; } if (context.testExpression("RequireUppercaseCharacters", targetDepth)) { passwordPolicy.setRequireUppercaseCharacters( BooleanStaxUnmarshaller.getInstance().unmarshall(context)); continue; } if (context.testExpression("RequireLowercaseCharacters", targetDepth)) { passwordPolicy.setRequireLowercaseCharacters( BooleanStaxUnmarshaller.getInstance().unmarshall(context)); continue; } if (context.testExpression("AllowUsersToChangePassword", targetDepth)) { passwordPolicy.setAllowUsersToChangePassword( BooleanStaxUnmarshaller.getInstance().unmarshall(context)); continue; } if (context.testExpression("ExpirePasswords", targetDepth)) { passwordPolicy.setExpirePasswords( BooleanStaxUnmarshaller.getInstance().unmarshall(context)); continue; } if (context.testExpression("MaxPasswordAge", targetDepth)) { passwordPolicy.setMaxPasswordAge( IntegerStaxUnmarshaller.getInstance().unmarshall(context)); continue; } if (context.testExpression("PasswordReusePrevention", targetDepth)) { passwordPolicy.setPasswordReusePrevention( IntegerStaxUnmarshaller.getInstance().unmarshall(context)); continue; } if (context.testExpression("HardExpiry", targetDepth)) { passwordPolicy.setHardExpiry(BooleanStaxUnmarshaller.getInstance().unmarshall(context)); continue; } } else if (xmlEvent.isEndElement()) { if (context.getCurrentDepth() < originalDepth) { return passwordPolicy; } } } }