test_class.file: shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/algorithm/sharding/inline/InlineExpressionParserTest.java
test_class.identifier: InlineExpressionParserTest
test_case.body: @Test
      public void assertEvaluateForComplex() {
          List<String> expected = new InlineExpressionParser("t_${['new','old']}_order_${1..2}, t_config").splitAndEvaluate();
          assertThat(expected.size(), is(5));
          assertThat(expected, hasItems("t_new_order_1", "t_new_order_2", "t_old_order_1", "t_old_order_2", "t_config"));
      }
test_case.class_method_signature: InlineExpressionParserTest.assertEvaluateForComplex()
test_case.full_signature: @Test public void assertEvaluateForComplex()
test_case.identifier: assertEvaluateForComplex
test_case.invocations: splitAndEvaluate assertThat size is assertThat hasItems
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void assertEvaluateForComplex()
focal_class.declarator: SPLITTER = ','
focal_class.modifier: private static final
focal_class.original_string: private static final char SPLITTER = ',';
focal_class.type: char
focal_class.var_name: SPLITTER
focal_class.declarator: SCRIPTS = new ConcurrentHashMap<>()
focal_class.modifier: private static final
focal_class.original_string: private static final Map<String, Script> SCRIPTS = new ConcurrentHashMap<>();
focal_class.type: Map<String, Script>
focal_class.var_name: SCRIPTS
focal_class.declarator: SHELL = new GroovyShell()
focal_class.modifier: private static final
focal_class.original_string: private static final GroovyShell SHELL = new GroovyShell();
focal_class.type: GroovyShell
focal_class.var_name: SHELL
focal_class.declarator: inlineExpression
focal_class.modifier: private final
focal_class.original_string: private final String inlineExpression;
focal_class.type: String
focal_class.var_name: inlineExpression
focal_class.file: shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/algorithm/sharding/inline/InlineExpressionParser.java
focal_class.identifier: InlineExpressionParser
focal_class.class_method_signature: InlineExpressionParser.handlePlaceHolder(final String inlineExpression)
focal_class.full_signature: public static String handlePlaceHolder(final String inlineExpression)
focal_class.identifier: handlePlaceHolder
focal_class.modifiers: public static
focal_class.parameters: (final String inlineExpression)
focal_class.return: String
focal_class.signature: String handlePlaceHolder(final String inlineExpression)
focal_class.class_method_signature: InlineExpressionParser.splitAndEvaluate()
focal_class.full_signature: public List<String> splitAndEvaluate()
focal_class.identifier: splitAndEvaluate
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: List<String>
focal_class.signature: List<String> splitAndEvaluate()
focal_class.class_method_signature: InlineExpressionParser.evaluateClosure()
focal_class.full_signature: public Closure<?> evaluateClosure()
focal_class.identifier: evaluateClosure
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Closure<?>
focal_class.signature: Closure<?> evaluateClosure()
focal_class.class_method_signature: InlineExpressionParser.evaluate(final List<String> inlineExpressions)
focal_class.full_signature: private List<Object> evaluate(final List<String> inlineExpressions)
focal_class.identifier: evaluate
focal_class.modifiers: private
focal_class.parameters: (final List<String> inlineExpressions)
focal_class.return: List<Object>
focal_class.signature: List<Object> evaluate(final List<String> inlineExpressions)
focal_class.class_method_signature: InlineExpressionParser.evaluate(final String expression)
focal_class.full_signature: private Object evaluate(final String expression)
focal_class.identifier: evaluate
focal_class.modifiers: private
focal_class.parameters: (final String expression)
focal_class.return: Object
focal_class.signature: Object evaluate(final String expression)
focal_class.class_method_signature: InlineExpressionParser.split()
focal_class.full_signature: private List<String> split()
focal_class.identifier: split
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: List<String>
focal_class.signature: List<String> split()
focal_class.class_method_signature: InlineExpressionParser.flatten(final List<Object> segments)
focal_class.full_signature: private List<String> flatten(final List<Object> segments)
focal_class.identifier: flatten
focal_class.modifiers: private
focal_class.parameters: (final List<Object> segments)
focal_class.return: List<String>
focal_class.signature: List<String> flatten(final List<Object> segments)
focal_class.class_method_signature: InlineExpressionParser.assemblyCartesianSegments(final GString segment)
focal_class.full_signature: private List<String> assemblyCartesianSegments(final GString segment)
focal_class.identifier: assemblyCartesianSegments
focal_class.modifiers: private
focal_class.parameters: (final GString segment)
focal_class.return: List<String>
focal_class.signature: List<String> assemblyCartesianSegments(final GString segment)
focal_class.class_method_signature: InlineExpressionParser.getCartesianValues(final GString segment)
focal_class.full_signature: @SuppressWarnings("unchecked") private Set<List<String>> getCartesianValues(final GString segment)
focal_class.identifier: getCartesianValues
focal_class.modifiers: @SuppressWarnings("unchecked") private
focal_class.parameters: (final GString segment)
focal_class.return: Set<List<String>>
focal_class.signature: Set<List<String>> getCartesianValues(final GString segment)
focal_class.class_method_signature: InlineExpressionParser.assemblySegment(final List<String> cartesianValue, final GString segment)
focal_class.full_signature: private String assemblySegment(final List<String> cartesianValue, final GString segment)
focal_class.identifier: assemblySegment
focal_class.modifiers: private
focal_class.parameters: (final List<String> cartesianValue, final GString segment)
focal_class.return: String
focal_class.signature: String assemblySegment(final List<String> cartesianValue, final GString segment)
focal_method.body: public List<String> splitAndEvaluate() {
          return Strings.isNullOrEmpty(inlineExpression) ? Collections.emptyList() : flatten(evaluate(split()));
      }
focal_method.class_method_signature: InlineExpressionParser.splitAndEvaluate()
focal_method.full_signature: public List<String> splitAndEvaluate()
focal_method.identifier: splitAndEvaluate
focal_method.invocations: isNullOrEmpty emptyList flatten evaluate split
focal_method.modifiers: public
focal_method.parameters: ()
focal_method.return: List<String>
focal_method.signature: List<String> splitAndEvaluate()