throw unknownElement(navigator);
}
}
private PageNode unmarshalNode(StaxNavigator<Element> navigator) throws StaxNavException {
PageNode node = new PageNode();
I18NString labels = new I18NString();
ArrayList<PageNode> children = new ArrayList<PageNode>();
Element current = navigator.child();
while (current != null) {
switch (navigator.getName()) {
case URI: // For backwards compatibility
current = navigator.sibling();
break;
case NAME:
node.setName(navigator.getContent());
current = navigator.sibling();
break;
case LABEL:
labels.add(Utils.parseLocalizedString(navigator));
current = navigator.sibling();
break;
case ICON:
node.setIcon(navigator.getContent());
current = navigator.sibling();
break;
case START_PUBLICATION_DATE:
node.setStartPublicationDate(navigator.parseContent(ValueType.DATE_TIME));
current = navigator.sibling();
break;
case END_PUBLICATION_DATE:
node.setEndPublicationDate(navigator.parseContent(ValueType.DATE_TIME));
current = navigator.sibling();
break;
case VISIBILITY:
node.setVisibility(navigator.parseContent(ValueType.get(Visibility.class)));
current = navigator.sibling();
break;
case PAGE_REFERENCE:
node.setPageReference(navigator.getContent());
current = navigator.sibling();
break;
case NODE:
PageNode child = unmarshalNode(navigator.fork());
children.add(child);
current = navigator.sibling();
break;
case UNKNOWN:
throw unknownElement(navigator);