diff options
Diffstat (limited to 'src/main/java/org/yaml/snakeyaml/nodes/ScalarNode.java')
-rw-r--r-- | src/main/java/org/yaml/snakeyaml/nodes/ScalarNode.java | 145 |
1 files changed, 95 insertions, 50 deletions
diff --git a/src/main/java/org/yaml/snakeyaml/nodes/ScalarNode.java b/src/main/java/org/yaml/snakeyaml/nodes/ScalarNode.java index 9120d0ee..61212df0 100644 --- a/src/main/java/org/yaml/snakeyaml/nodes/ScalarNode.java +++ b/src/main/java/org/yaml/snakeyaml/nodes/ScalarNode.java @@ -1,20 +1,19 @@ /** - * Copyright (c) 2008, http://www.snakeyaml.org + * Copyright (c) 2008, SnakeYAML * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. */ package org.yaml.snakeyaml.nodes; +import org.yaml.snakeyaml.DumperOptions; import org.yaml.snakeyaml.error.Mark; /** @@ -24,51 +23,97 @@ import org.yaml.snakeyaml.error.Mark; * </p> */ public class ScalarNode extends Node { - private Character style; - private String value; - public ScalarNode(Tag tag, String value, Mark startMark, Mark endMark, Character style) { - this(tag, true, value, startMark, endMark, style); - } + private final DumperOptions.ScalarStyle style; + private final String value; - public ScalarNode(Tag tag, boolean resolved, String value, Mark startMark, Mark endMark, - Character style) { - super(tag, startMark, endMark); - if (value == null) { - throw new NullPointerException("value in a Node is required."); - } - this.value = value; - this.style = style; - this.resolved = resolved; - } + public ScalarNode(Tag tag, String value, Mark startMark, Mark endMark, + DumperOptions.ScalarStyle style) { + this(tag, true, value, startMark, endMark, style); + } - /** - * Get scalar style of this node. - * - * @see org.yaml.snakeyaml.events.ScalarEvent - * @see <a href="http://yaml.org/spec/1.1/#id903915">Chapter 9. Scalar - * Styles</a> - */ - public Character getStyle() { - return style; + public ScalarNode(Tag tag, boolean resolved, String value, Mark startMark, Mark endMark, + DumperOptions.ScalarStyle style) { + super(tag, startMark, endMark); + if (value == null) { + throw new NullPointerException("value in a Node is required."); } - - @Override - public NodeId getNodeId() { - return NodeId.scalar; + this.value = value; + if (style == null) { + throw new NullPointerException("Scalar style must be provided."); } + this.style = style; + this.resolved = resolved; + } - /** - * Value of this scalar. - * - * @return Scalar's value. - */ - public String getValue() { - return value; - } + /* + * Existed in older versions but replaced with {@link DumperOptions.ScalarStyle}-based + * constructor. Restored in v1.22 for backwards compatibility. + * + * @deprecated Since restored in v1.22. Use {@link ScalarNode#ScalarNode(Tag, String, Mark, Mark, + * org.yaml.snakeyaml.DumperOptions.ScalarStyle) }. + */ + @Deprecated + public ScalarNode(Tag tag, String value, Mark startMark, Mark endMark, Character style) { + this(tag, value, startMark, endMark, DumperOptions.ScalarStyle.createStyle(style)); + } - public String toString() { - return "<" + this.getClass().getName() + " (tag=" + getTag() + ", value=" + getValue() - + ")>"; - } + /* + * Existed in older versions but replaced with {@link DumperOptions.ScalarStyle}-based + * constructor. Restored in v1.22 for backwards compatibility. + * + * @deprecated Since restored in v1.22. Use {@link ScalarNode#ScalarNode(Tag, boolean, String, + * Mark, Mark, org.yaml.snakeyaml.DumperOptions.ScalarStyle) }. + */ + @Deprecated + public ScalarNode(Tag tag, boolean resolved, String value, Mark startMark, Mark endMark, + Character style) { + this(tag, resolved, value, startMark, endMark, DumperOptions.ScalarStyle.createStyle(style)); + } + + /** + * Get scalar style of this node. + * + * @see org.yaml.snakeyaml.events.ScalarEvent + * @see <a href="http://yaml.org/spec/1.1/#id903915">Chapter 9. Scalar Styles</a> + * @return style of this scalar node + * @deprecated use getScalarStyle instead + */ + @Deprecated + public Character getStyle() { + return style.getChar(); + } + + /** + * Get scalar style of this node. + * + * @see org.yaml.snakeyaml.events.ScalarEvent + * @see <a href="http://yaml.org/spec/1.1/#id903915">Chapter 9. Scalar Styles</a> + * @return style of this scalar node + */ + public DumperOptions.ScalarStyle getScalarStyle() { + return style; + } + + @Override + public NodeId getNodeId() { + return NodeId.scalar; + } + + /** + * Value of this scalar. + * + * @return Scalar's value. + */ + public String getValue() { + return value; + } + + public String toString() { + return "<" + this.getClass().getName() + " (tag=" + getTag() + ", value=" + getValue() + ")>"; + } + + public boolean isPlain() { + return style == DumperOptions.ScalarStyle.PLAIN; + } } |