private String assemblySegment(final List<String> cartesianValue, final GString segment) { StringBuilder result = new StringBuilder(); for (int i = 0; i < segment.getStrings().length; i++) { result.append(segment.getStrings()[i]); if (i < cartesianValue.size()) { result.append(cartesianValue.get(i)); } } return result.toString(); } }
private int calcInitialCapacity() { String[] strings = getStrings(); int initialCapacity = 0; for (String string : strings) { initialCapacity += string.length(); } initialCapacity += values.length * Math.max(initialCapacity / strings.length, 8); return Math.max((int) (initialCapacity * 1.2), 16); }
public GString plus(GString that) { Object[] values = getValues(); return new GStringImpl(appendValues(values, that.getValues()), appendStrings(getStrings(), that.getStrings(), values.length)); }
String[] strings = gstring.getStrings(); if (strings.length <= 0) { throw new IllegalArgumentException("No SQL specified in GString: " + gstring);
@Override public Writer writeTo(Writer out) throws IOException { String[] s = getStrings(); int numberOfValues = values.length; for (int i = 0, size = s.length; i < size; i++) { out.write(s[i]); if (i < numberOfValues) { final Object value = values[i]; if (value instanceof Closure) { final Closure c = (Closure) value; int maximumNumberOfParameters = c.getMaximumNumberOfParameters(); if (maximumNumberOfParameters == 0) { InvokerHelper.write(out, c.call()); } else if (maximumNumberOfParameters == 1) { c.call(out); } else { throw new GroovyRuntimeException("Trying to evaluate a GString containing a Closure taking " + maximumNumberOfParameters + " parameters"); } } else { InvokerHelper.write(out, value); } } } return out; }
@Override public void build(final GroovyObject builder) { final String[] s = getStrings(); final int numberOfValues = values.length; for (int i = 0, size = s.length; i < size; i++) { builder.getProperty(MKP); builder.invokeMethod(YIELD, new Object[]{ s[i] }); if (i < numberOfValues) { builder.getProperty(MKP); builder.invokeMethod(YIELD, new Object[]{ values[i] }); } } }
public void testAppendString2() { DummyGString a = new DummyGString(new Object[]{"James"}, new String[]{"Hello "}); GString result = a.plus(" how are you?"); System.out.println("Strings: " + InvokerHelper.toString(result.getStrings())); System.out.println("Values: " + InvokerHelper.toString(result.getValues())); assertEquals("Hello James how are you?", result.toString()); }
private String assemblySegment(final List<String> cartesianValue, final GString segment) { StringBuilder result = new StringBuilder(); for (int i = 0; i < segment.getStrings().length; i++) { result.append(segment.getStrings()[i]); if (i < cartesianValue.size()) { result.append(cartesianValue.get(i)); } } return result.toString(); } }
private String assemblySegment(final List<String> cartesianValue, final GString segment) { StringBuilder result = new StringBuilder(); for (int i = 0; i < segment.getStrings().length; i++) { result.append(segment.getStrings()[i]); if (i < cartesianValue.size()) { result.append(cartesianValue.get(i)); } } return result.toString(); }
public GString plus(GString that) { List stringList = new ArrayList(); List valueList = new ArrayList(); stringList.addAll(Arrays.asList(getStrings())); valueList.addAll(Arrays.asList(getValues())); List thatStrings = Arrays.asList(that.getStrings()); if (stringList.size() > valueList.size()) { thatStrings = new ArrayList(thatStrings); // merge onto end of previous GString to avoid an empty bridging value String s = (String) stringList.get(stringList.size() - 1); s += thatStrings.get(0); thatStrings.remove(0); stringList.set(stringList.size() - 1, s); } stringList.addAll(thatStrings); valueList.addAll(Arrays.asList(that.getValues())); final String[] newStrings = new String[stringList.size()]; stringList.toArray(newStrings); Object[] newValues = valueList.toArray(); return new GString(newValues) { public String[] getStrings() { return newStrings; } }; }
public GString plus(GString that) { List<String> stringList = new ArrayList<String>(); List<Object> valueList = new ArrayList<Object>(); stringList.addAll(Arrays.asList(getStrings())); valueList.addAll(Arrays.asList(getValues())); List<String> thatStrings = Arrays.asList(that.getStrings()); if (stringList.size() > valueList.size()) { thatStrings = new ArrayList<String>(thatStrings); // merge onto end of previous GString to avoid an empty bridging value String s = stringList.get(stringList.size() - 1); s += thatStrings.get(0); thatStrings.remove(0); stringList.set(stringList.size() - 1, s); } stringList.addAll(thatStrings); valueList.addAll(Arrays.asList(that.getValues())); final String[] newStrings = new String[stringList.size()]; stringList.toArray(newStrings); Object[] newValues = valueList.toArray(); return new GString(newValues) { public String[] getStrings() { return newStrings; } }; }
public GString plus(GString that) { List stringList = new ArrayList(); List valueList = new ArrayList(); stringList.addAll(Arrays.asList(getStrings())); valueList.addAll(Arrays.asList(getValues())); List thatStrings = Arrays.asList(that.getStrings()); if (stringList.size() > valueList.size()) { thatStrings = new ArrayList(thatStrings); // merge onto end of previous GString to avoid an empty bridging value String s = (String) stringList.get(stringList.size() - 1); s += thatStrings.get(0); thatStrings.remove(0); stringList.set(stringList.size() - 1, s); } stringList.addAll(thatStrings); valueList.addAll(Arrays.asList(that.getValues())); final String[] newStrings = new String[stringList.size()]; stringList.toArray(newStrings); Object[] newValues = valueList.toArray(); return new GString(newValues) { public String[] getStrings() { return newStrings; } }; }
public GString plus(GString that) { List stringList = new ArrayList(); List valueList = new ArrayList(); stringList.addAll(Arrays.asList(getStrings())); valueList.addAll(Arrays.asList(getValues())); List thatStrings = Arrays.asList(that.getStrings()); if (stringList.size() > valueList.size()) { thatStrings = new ArrayList(thatStrings); // merge onto end of previous GString to avoid an empty bridging value String s = (String) stringList.get(stringList.size() - 1); s += thatStrings.get(0); thatStrings.remove(0); stringList.set(stringList.size() - 1, s); } stringList.addAll(thatStrings); valueList.addAll(Arrays.asList(that.getValues())); final String[] newStrings = new String[stringList.size()]; stringList.toArray(newStrings); Object[] newValues = valueList.toArray(); return new GString(newValues) { public String[] getStrings() { return newStrings; } }; }
public void build(final GroovyObject builder) { final String[] s = getStrings(); final int numberOfValues = values.length; for (int i = 0, size = s.length; i < size; i++) { builder.getProperty("mkp"); builder.invokeMethod("yield", new Object[]{s[i]}); if (i < numberOfValues) { builder.getProperty("mkp"); builder.invokeMethod("yield", new Object[]{values[i]}); } } }
public void build(final GroovyObject builder) { final String[] s = getStrings(); final int numberOfValues = values.length; for (int i = 0, size = s.length; i < size; i++) { builder.getProperty("mkp"); builder.invokeMethod("yield", new Object[]{s[i]}); if (i < numberOfValues) { builder.getProperty("mkp"); builder.invokeMethod("yield", new Object[]{values[i]}); } } }
public void build(final GroovyObject builder) { final String[] s = getStrings(); final int numberOfValues = values.length; for (int i = 0, size = s.length; i < size; i++) { builder.getProperty("mkp"); builder.invokeMethod("yield", new Object[]{s[i]}); if (i < numberOfValues) { builder.getProperty("mkp"); builder.invokeMethod("yield", new Object[]{values[i]}); } } }
public void build(final GroovyObject builder) { final String[] s = getStrings(); final int numberOfValues = values.length; for (int i = 0, size = s.length; i < size; i++) { builder.getProperty("mkp"); builder.invokeMethod("yield", new Object[]{s[i]}); if (i < numberOfValues) { builder.getProperty("mkp"); builder.invokeMethod("yield", new Object[]{values[i]}); } } }
public Writer writeTo(Writer out) throws IOException { String[] s = getStrings(); int numberOfValues = values.length; for (int i = 0, size = s.length; i < size; i++) { out.write(s[i]); if (i < numberOfValues) { final Object value = values[i]; if (value instanceof Closure) { final Closure c = (Closure)value; if (c.getMaximumNumberOfParameters() == 0) { InvokerHelper.write(out, c.call(null)); } else if (c.getMaximumNumberOfParameters() == 1) { c.call(new Object[]{out}); } else { throw new GroovyRuntimeException("Trying to evaluate a GString containing a Closure taking " + c.getMaximumNumberOfParameters() + " parameters"); } } else { InvokerHelper.write(out, value); } } } return out; }
public Writer writeTo(Writer out) throws IOException { String[] s = getStrings(); int numberOfValues = values.length; for (int i = 0, size = s.length; i < size; i++) { out.write(s[i]); if (i < numberOfValues) { final Object value = values[i]; if (value instanceof Closure) { final Closure c = (Closure)value; if (c.getMaximumNumberOfParameters() == 0) { InvokerHelper.write(out, c.call(null)); } else if (c.getMaximumNumberOfParameters() == 1) { c.call(new Object[]{out}); } else { throw new GroovyRuntimeException("Trying to evaluate a GString containing a Closure taking " + c.getMaximumNumberOfParameters() + " parameters"); } } else { InvokerHelper.write(out, value); } } } return out; }
public Writer writeTo(Writer out) throws IOException { String[] s = getStrings(); int numberOfValues = values.length; for (int i = 0, size = s.length; i < size; i++) { out.write(s[i]); if (i < numberOfValues) { final Object value = values[i]; if (value instanceof Closure) { final Closure c = (Closure)value; if (c.getMaximumNumberOfParameters() == 0) { InvokerHelper.write(out, c.call(null)); } else if (c.getMaximumNumberOfParameters() == 1) { c.call(new Object[]{out}); } else { throw new GroovyRuntimeException("Trying to evaluate a GString containing a Closure taking " + c.getMaximumNumberOfParameters() + " parameters"); } } else { InvokerHelper.write(out, value); } } } return out; }