aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/yaml/snakeyaml/nodes/ScalarNode.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/yaml/snakeyaml/nodes/ScalarNode.java')
-rw-r--r--src/main/java/org/yaml/snakeyaml/nodes/ScalarNode.java145
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;
+ }
}