From 3b254acfb9626e8712c7123ea03b201da3be3257 Mon Sep 17 00:00:00 2001
From: Markus Alexander Kuppe <tlaplus.net@lemmster.de>
Date: Mon, 10 Feb 2020 13:47:36 -0800
Subject: [PATCH] Add method to print an unquoted StringValue.

[Refactor][TLC]
---
 tlatools/src/tlc2/value/IValue.java           | 3 +++
 tlatools/src/tlc2/value/impl/StringValue.java | 6 ++++++
 tlatools/src/tlc2/value/impl/Value.java       | 6 ++++++
 3 files changed, 15 insertions(+)

diff --git a/tlatools/src/tlc2/value/IValue.java b/tlatools/src/tlc2/value/IValue.java
index c96815423..30e7a4add 100644
--- a/tlatools/src/tlc2/value/IValue.java
+++ b/tlatools/src/tlc2/value/IValue.java
@@ -119,6 +119,8 @@ public interface IValue extends Comparable<Object> {
 
 	String toString(String delim);
 	
+	String toUnquotedString();
+
 	default boolean isAtom() {
 		if (this instanceof ModelValue || this instanceof IntValue || this instanceof StringValue
 				|| this instanceof BoolValue) {
@@ -133,4 +135,5 @@ public interface IValue extends Comparable<Object> {
 	default boolean mutates() {
 		return true;
 	}
+
 }
\ No newline at end of file
diff --git a/tlatools/src/tlc2/value/impl/StringValue.java b/tlatools/src/tlc2/value/impl/StringValue.java
index 38b4dd090..5e3e20321 100644
--- a/tlatools/src/tlc2/value/impl/StringValue.java
+++ b/tlatools/src/tlc2/value/impl/StringValue.java
@@ -280,6 +280,12 @@ public class StringValue extends Value {
     }
   }
 
+  /* Same as toString. */
+  @Override
+  public final String toUnquotedString() {
+	  return PrintVersion(this.val.toString());
+  }
+
 	public static IValue createFrom(final IValueInputStream vos) throws IOException {
 		final UniqueString str = UniqueString.read(vos.getInputStream());
 		final IValue res = new StringValue(str);
diff --git a/tlatools/src/tlc2/value/impl/Value.java b/tlatools/src/tlc2/value/impl/Value.java
index ab6741f63..f03c21f96 100644
--- a/tlatools/src/tlc2/value/impl/Value.java
+++ b/tlatools/src/tlc2/value/impl/Value.java
@@ -316,6 +316,12 @@ public abstract class Value implements ValueConstants, Serializable, IValue {
 	  return toStringImpl("", false);
   }
 
+  /* Same as toString. */
+  @Override
+  public String toUnquotedString() {
+	  return toString();
+  }
+
   @Override
   public final String toString(final String delim) {
 	  return toStringImpl(delim, true);
-- 
GitLab