Skip to content
This repository was archived by the owner on Jul 6, 2023. It is now read-only.

Commit eb3fec3

Browse files
committed
extracting paramValue class.
1 parent 95a41dd commit eb3fec3

File tree

5 files changed

+44
-20
lines changed

5 files changed

+44
-20
lines changed

cypher-shell/src/main/java/org/neo4j/shell/CypherShell.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import org.neo4j.shell.prettyprint.PrettyPrinter;
1111
import org.neo4j.shell.state.BoltResult;
1212
import org.neo4j.shell.state.BoltStateHandler;
13+
import org.neo4j.shell.state.ParamValue;
1314

1415
import javax.annotation.Nonnull;
1516
import java.util.AbstractMap;
@@ -27,7 +28,7 @@
2728
public class CypherShell implements StatementExecuter, Connector, TransactionHandler, VariableHolder {
2829
// Final space to catch newline
2930
protected static final Pattern cmdNamePattern = Pattern.compile("^\\s*(?<name>[^\\s]+)\\b(?<args>.*)\\s*$");
30-
protected final Map<String, AbstractMap.SimpleEntry<String, Object>> queryParams = new HashMap<>();
31+
protected final Map<String, ParamValue> queryParams = new HashMap<>();
3132
private final Logger logger;
3233
private final BoltStateHandler boltStateHandler;
3334
private final PrettyPrinter prettyPrinter;
@@ -158,7 +159,7 @@ public Optional set(@Nonnull String name, @Nonnull String valueString) throws Co
158159
final BoltResult result = setParamsAndValidate(name, valueString);
159160
String parameterName = CypherVariablesFormatter.unescapedCypherVariable(name);
160161
final Object value = result.getRecords().get(0).get(parameterName).asObject();
161-
queryParams.put(parameterName, new AbstractMap.SimpleEntry<>(valueString, value));
162+
queryParams.put(parameterName, new ParamValue(valueString, value));
162163
return Optional.ofNullable(value);
163164
}
164165

@@ -183,7 +184,7 @@ public Map<String, Object> getAll() {
183184

184185
@Nonnull
185186
@Override
186-
public Map<String, AbstractMap.SimpleEntry<String, Object>> getAllAsUserInput() {
187+
public Map<String, ParamValue> getAllAsUserInput() {
187188
return queryParams;
188189
}
189190

cypher-shell/src/main/java/org/neo4j/shell/VariableHolder.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package org.neo4j.shell;
22

33
import org.neo4j.shell.exception.CommandException;
4+
import org.neo4j.shell.state.ParamValue;
45

56
import javax.annotation.Nonnull;
6-
import java.util.AbstractMap;
77
import java.util.Map;
88
import java.util.Optional;
99

@@ -28,5 +28,5 @@ public interface VariableHolder {
2828
* @return map of all currently set variables and their values corresponding to the user valueString
2929
*/
3030
@Nonnull
31-
Map<String, AbstractMap.SimpleEntry<String, Object>> getAllAsUserInput();
31+
Map<String, ParamValue> getAllAsUserInput();
3232
}

cypher-shell/src/main/java/org/neo4j/shell/commands/Params.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ private void listParam(@Nonnull String name) throws CommandException {
8181
if (!this.variableHolder.getAllAsUserInput().containsKey(parameterName)) {
8282
throw new CommandException("Unknown parameter: " + name);
8383
}
84-
listParam(name.length(), name, this.variableHolder.getAllAsUserInput().get(parameterName).getKey());
84+
listParam(name.length(), name, this.variableHolder.getAllAsUserInput().get(parameterName).getValueAsString());
8585
}
8686

8787
private void listParam(int leftColWidth, @Nonnull String key, @Nonnull Object value) {
@@ -93,6 +93,6 @@ private void listAllParams() {
9393

9494
int leftColWidth = keys.stream().map((s) -> escape(s).length()).reduce(0, Math::max);
9595

96-
keys.forEach(key -> listParam(leftColWidth, escape(key), variableHolder.getAllAsUserInput().get(key).getKey()));
96+
keys.forEach(key -> listParam(leftColWidth, escape(key), variableHolder.getAllAsUserInput().get(key).getValueAsString()));
9797
}
9898
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package org.neo4j.shell.state;
2+
3+
/**
4+
* Handles queryparams value and user inputString
5+
*/
6+
public class ParamValue {
7+
private final String valueAsString;
8+
private final Object value;
9+
10+
public ParamValue(String valueAsString, Object value) {
11+
this.valueAsString = valueAsString;
12+
this.value = value;
13+
}
14+
15+
public Object getValue() {
16+
return value;
17+
}
18+
19+
public String getValueAsString() {
20+
return valueAsString;
21+
}
22+
}

cypher-shell/src/test/java/org/neo4j/shell/commands/ParamsTest.java

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import org.neo4j.shell.VariableHolder;
88
import org.neo4j.shell.exception.CommandException;
99
import org.neo4j.shell.log.Logger;
10+
import org.neo4j.shell.state.ParamValue;
1011

1112
import java.util.AbstractMap;
1213
import java.util.HashMap;
@@ -22,7 +23,7 @@ public class ParamsTest {
2223
@Rule
2324
public final ExpectedException thrown = ExpectedException.none();
2425

25-
private HashMap<String, AbstractMap.SimpleEntry<String, Object>> vars;
26+
private HashMap<String, ParamValue> vars;
2627
private Logger logger;
2728
private Params cmd;
2829

@@ -55,7 +56,7 @@ public void runCommand() throws CommandException {
5556
// given
5657
String var = "var";
5758
int value = 9;
58-
vars.put(var, new AbstractMap.SimpleEntry<>(String.valueOf(value), value));
59+
vars.put(var, new ParamValue(String.valueOf(value), value));
5960
// when
6061
cmd.execute("");
6162
// then
@@ -66,8 +67,8 @@ public void runCommand() throws CommandException {
6667
@Test
6768
public void runCommandAlignment() throws CommandException {
6869
// given
69-
vars.put("var", new AbstractMap.SimpleEntry<>(String.valueOf(9), 9));
70-
vars.put("param", new AbstractMap.SimpleEntry<>(String.valueOf(99999), 99999));
70+
vars.put("var", new ParamValue(String.valueOf(9), 9));
71+
vars.put("param", new ParamValue(String.valueOf(99999), 99999));
7172
// when
7273
cmd.execute("");
7374
// then
@@ -79,8 +80,8 @@ public void runCommandAlignment() throws CommandException {
7980
@Test
8081
public void runCommandWithArg() throws CommandException {
8182
// given
82-
vars.put("var", new AbstractMap.SimpleEntry<>(String.valueOf(9), 9));
83-
vars.put("param", new AbstractMap.SimpleEntry<>(String.valueOf(9999), 9999));
83+
vars.put("var", new ParamValue(String.valueOf(9), 9));
84+
vars.put("param", new ParamValue(String.valueOf(9999), 9999));
8485
// when
8586
cmd.execute("var");
8687
// then
@@ -91,8 +92,8 @@ public void runCommandWithArg() throws CommandException {
9192
@Test
9293
public void runCommandWithArgWithExtraSpace() throws CommandException {
9394
// given
94-
vars.put("var", new AbstractMap.SimpleEntry<>(String.valueOf(9), 9));
95-
vars.put("param", new AbstractMap.SimpleEntry<>(String.valueOf(9999), 9999));
95+
vars.put("var", new ParamValue(String.valueOf(9), 9));
96+
vars.put("param", new ParamValue(String.valueOf(9999), 9999));
9697
// when
9798
cmd.execute(" var");
9899
// then
@@ -103,8 +104,8 @@ public void runCommandWithArgWithExtraSpace() throws CommandException {
103104
@Test
104105
public void runCommandWithArgWithBackticks() throws CommandException {
105106
// given
106-
vars.put("var", new AbstractMap.SimpleEntry<>(String.valueOf(9), 9));
107-
vars.put("param", new AbstractMap.SimpleEntry<>(String.valueOf(9999), 9999));
107+
vars.put("var", new ParamValue(String.valueOf(9), 9));
108+
vars.put("param", new ParamValue(String.valueOf(9999), 9999));
108109
// when
109110
cmd.execute("`var`");
110111
// then
@@ -115,8 +116,8 @@ public void runCommandWithArgWithBackticks() throws CommandException {
115116
@Test
116117
public void runCommandWithSpecialCharacters() throws CommandException {
117118
// given
118-
vars.put("var `", new AbstractMap.SimpleEntry<>(String.valueOf(9), 9));
119-
vars.put("param", new AbstractMap.SimpleEntry<>(String.valueOf(9999), 9999));
119+
vars.put("var `", new ParamValue(String.valueOf(9), 9));
120+
vars.put("param", new ParamValue(String.valueOf(9999), 9999));
120121
// when
121122
cmd.execute("`var ```");
122123
// then
@@ -130,7 +131,7 @@ public void runCommandWithUnknownArg() throws CommandException {
130131
thrown.expect(CommandException.class);
131132
thrown.expectMessage(containsString("Unknown parameter: bob"));
132133
// given
133-
vars.put("var", new AbstractMap.SimpleEntry<>(String.valueOf(9), 9));
134+
vars.put("var", new ParamValue(String.valueOf(9), 9));
134135
// when
135136
cmd.execute("bob");
136137
}

0 commit comments

Comments
 (0)