}
private Node composeNode(Node parent) {
recursiveNodes.add(parent);
if (parser.checkEvent(Event.ID.Alias)) {
AliasEvent event = (AliasEvent) parser.getEvent();
String anchor = event.getAnchor();
if (!anchors.containsKey(anchor)) {
throw new ComposerException(null, null, "found undefined alias " + anchor,
event.getStartMark());
}
Node result = anchors.get(anchor);
if (recursiveNodes.remove(result)) {
result.setTwoStepsConstruction(true);
}
return result;
}
NodeEvent event = (NodeEvent) parser.peekEvent();
String anchor = null;
anchor = event.getAnchor();
if (anchor != null && anchors.containsKey(anchor)) {
throw new ComposerException("found duplicate anchor " + anchor + "; first occurence",
this.anchors.get(anchor).getStartMark(), "second occurence",
event.getStartMark());
}
Node node = null;
if (parser.checkEvent(Event.ID.Scalar)) {
node = composeScalarNode(anchor);
} else if (parser.checkEvent(Event.ID.SequenceStart)) {