/** * Overrides the {@link Resolver#resolve(NodeId, String, boolean)} * method so that all implicit scalar non-{@code null} YAML node * values are resolved as {@link Tag#STR}. * * @param kind the kind of YAML node being processed; may be {@code * null} * * @param value the value of the node; may be {@code null} * * @param implicit whether the typing is implicit or explicit * * @return a {@link Tag} instance representing the YAML node type * * @see Resolver#resolve(NodeId, String, boolean) */ @Override public final Tag resolve(final NodeId kind, final String value, final boolean implicit) { final Tag returnValue; if (implicit && kind != null && value != null && NodeId.scalar.equals(kind) && !value.isEmpty()) { returnValue = Tag.STR; } else { returnValue = super.resolve(kind, value, implicit); } return returnValue; }
public static List<String> getStringValues(Node sequenceNode, String filename) { requireNodeInstanceOf(SequenceNode.class, sequenceNode, filename, "The provided node must be a sequence but it is a " + sequenceNode.getNodeId().name()); List<Node> valueNodes = ((SequenceNode)sequenceNode).getValue(); List<String> values = new ArrayList<>(valueNodes.size()); for (Node node: valueNodes) { requireNodeInstanceOf(ScalarNode.class, node, filename, "The value should be a string but it is a " + node.getNodeId().name()); values.add(((ScalarNode)node).getValue()); } return values; }
/** * Overrides the {@link Resolver#resolve(NodeId, String, boolean)} * method so that all implicit scalar non-{@code null} YAML node * values are resolved as {@link Tag#STR}. * * @param kind the kind of YAML node being processed; may be {@code * null} * * @param value the value of the node; may be {@code null} * * @param implicit whether the typing is implicit or explicit * * @return a {@link Tag} instance representing the YAML node type * * @see Resolver#resolve(NodeId, String, boolean) */ @Override public final Tag resolve(final NodeId kind, final String value, final boolean implicit) { final Tag returnValue; if (implicit && kind != null && value != null && NodeId.scalar.equals(kind) && !value.isEmpty()) { returnValue = Tag.STR; } else { returnValue = super.resolve(kind, value, implicit); } return returnValue; }
public static MappingNode getValueAsMappingNode(NodeTuple tuple, String filename) { Node valueNode = tuple.getValueNode(); requireNodeInstanceOf(MappingNode.class, valueNode, filename, "The value should be a map but it is a " + valueNode.getNodeId().name()); return ((MappingNode)valueNode); }
private String validateScalar(Node node) { if (node.isTwoStepsConstruction()) { throw new TagException("'"+node.getTag()+"' cannot be recursive.", node.getStartMark()); } if (!node.getNodeId().equals(NodeId.scalar)) { throw new TagException("'"+node.getTag()+"' must be a string.", node.getStartMark()); } return ((ScalarNode) node).getValue().toString(); } }
public static SequenceNode getValueAsSequenceNode(NodeTuple tuple, String filename) { Node valueNode = tuple.getValueNode(); requireNodeInstanceOf(SequenceNode.class, valueNode, filename, "The value should be a sequence but it is a " + valueNode.getNodeId().name()); return ((SequenceNode)valueNode); }
public static String getKeyAsString(NodeTuple tuple, String filename) { Node keyNode = tuple.getKeyNode(); requireNodeInstanceOf(ScalarNode.class, keyNode, filename, "The key should be a string but it is a " + keyNode.getNodeId().name()); return ((ScalarNode)keyNode).getValue(); }
public static String getValueAsString(NodeTuple tuple, String filename) { Node valueNode = tuple.getValueNode(); requireNodeInstanceOf(ScalarNode.class, valueNode, filename, "The value should be a string but it is a " + valueNode.getNodeId().name()); return ((ScalarNode)valueNode).getValue(); }