private void handleEndElementState(JavaMethod pJm, LocalJavaField pElement,
ParticleSG pParticle) throws SAXException {
if (pParticle.isElement()) {
ObjectSG oSG = pParticle.getObjectSG();
TypeSG childType = oSG.getTypeSG();
XsQName name = oSG.getName();
Object[] uriCondition;
if ("".equals(name.getNamespaceURI())) {
uriCondition = new Object[]{
getParamNamespaceURI(), " == null || ",
getParamNamespaceURI(), ".length() == 0"
};
} else {
uriCondition = new Object[]{
JavaSource.getQuoted(name.getNamespaceURI()), ".equals(",
getParamNamespaceURI(), ")"
};
}
pJm.addIf(uriCondition, " && ", JavaSource.getQuoted(name.getLocalName()),
".equals(", getParamLocalName(), ")");
JavaQName type;
TypedValue v = getParamResult();
if (childType.isComplex()) {
type = childType.getComplexTypeSG().getClassContext().getXMLInterfaceName();
} else {
v = createSimpleTypeConversion(pJm, childType, v, oSG.getName().toString());
type = null;
}
pParticle.getPropertySG().addValue(pJm, pElement, v, type);