in lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/AtomDeserializer.java [847:919]
private ODataError error(final XMLEventReader reader, final StartElement start) throws XMLStreamException {
final ODataError error = new ODataError();
error.setDetails(new ArrayList<ODataErrorDetail>(0));
ODataErrorDetail errorDetail = null;
boolean setCode = false;
boolean codeSet = false;
boolean setMessage = false;
boolean messageSet = false;
boolean setTarget = false;
boolean targetSet = false;
boolean isDetails = false;
boolean foundEndElement = false;
while (reader.hasNext() && !foundEndElement) {
final XMLEvent event = reader.nextEvent();
if (event.isStartElement()) {
if (errorCodeQName.equals(event.asStartElement().getName())) {
setCode = true;
} else if (errorMessageQName.equals(event.asStartElement().getName())) {
setMessage = true;
} else if (errorTargetQName.equals(event.asStartElement().getName())) {
setTarget = true;
} else if (errorDetailQName.equals(event.asStartElement().getName())){
isDetails = true;
errorDetail = new ODataErrorDetail();
}
}
if (event.isCharacters() && !event.asCharacters().isWhiteSpace()) {
if (setCode && !codeSet) {
error.setCode(event.asCharacters().getData());
setCode = false;
codeSet = true;
}
if (setMessage && !messageSet) {
error.setMessage(event.asCharacters().getData());
setMessage = false;
messageSet = true;
}
if (setTarget && !targetSet) {
error.setTarget(event.asCharacters().getData());
setTarget = false;
targetSet = true;
}
// DETAIL Error
if(setCode && isDetails){
errorDetail.setCode(event.asCharacters().getData());
setCode = false;
}
if(setMessage && isDetails){
errorDetail.setMessage(event.asCharacters().getData());
setMessage = false;
}
if(setTarget && isDetails){
errorDetail.setTarget(event.asCharacters().getData());
setTarget = false;
}
}
if(event.isEndElement() && errorDetailQName.equals(event.asEndElement().getName())){
isDetails = false;
error.getDetails().add(errorDetail);
}
if (event.isEndElement() && start.getName().equals(event.asEndElement().getName())) {
foundEndElement = true;
}
}
return error;
}