/** * Hook to allow derived classes to override behavior associated with * extracting params from a GString. * * @param gstring a GString containing the SQL query with embedded params * @return extracts the parameters from the expression as a List * @see #expand(Object) */ protected List<Object> getParameters(GString gstring) { return new ArrayList<Object>(Arrays.asList(gstring.getValues())); }
@SuppressWarnings("unchecked") private Set<List<String>> getCartesianValues(final GString segment) { List<Set<String>> result = new ArrayList<>(segment.getValues().length); for (Object each : segment.getValues()) { if (null == each) { continue; } if (each instanceof Collection) { result.add(Sets.newLinkedHashSet(Collections2.transform((Collection<Object>) each, new Function<Object, String>() { @Override public String apply(final Object input) { return input.toString(); } }))); } else { result.add(Sets.newHashSet(each.toString())); } } return Sets.cartesianProduct(result); }
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()); }
/** * Hook to allow derived classes to override behavior associated with * extracting params from a GString. * * @param gstring a GString containing the SQL query with embedded params * @return extracts the parameters from the expression as a List * @see #expand(Object) */ protected List<Object> getParameters(GString gstring) { return new ArrayList<Object>(Arrays.asList(gstring.getValues())); }
/** * Hook to allow derived classes to override behavior associated with * extracting params from a GString. * * @param gstring a GString containing the SQL query with embedded params * @return extracts the parameters from the expression as a List * @see #expand(Object) */ protected List<Object> getParameters(GString gstring) { return new ArrayList<Object>(Arrays.asList(gstring.getValues())); }
/** * Hook to allow derived classes to override behavior associated with * extracting params from a GString. * * @param gstring a GString containing the SQL query with embedded params * @return extracts the parameters from the expression as a List */ protected List getParameters(GString gstring) { return new ArrayList<Object>(Arrays.asList(gstring.getValues())); }
/** * @param gstring a GString containing the SQL query with embedded params * @return extracts the parameters from the expression as a List */ protected List getParameters(GString gstring) { return new ArrayList(Arrays.asList(gstring.getValues())); }
/** * Hook to allow derived classes to override behavior associated with * extracting params from a GString. * * @param gstring a GString containing the SQL query with embedded params * @return extracts the parameters from the expression as a List * @see #expand(Object) */ protected List<Object> getParameters(GString gstring) { return new ArrayList<Object>(Arrays.asList(gstring.getValues())); }
public GString plus(String that) { String[] currentStrings = getStrings(); String[] newStrings = null; Object[] newValues = null; boolean appendToLastString = currentStrings.length > getValues().length; if (appendToLastString) { newStrings = new String[currentStrings.length]; } else { newStrings = new String[currentStrings.length + 1]; } newValues = new Object[getValues().length]; int lastIndex = currentStrings.length; System.arraycopy(currentStrings, 0, newStrings, 0, lastIndex); System.arraycopy(getValues(), 0, newValues, 0, getValues().length); if (appendToLastString) { newStrings[lastIndex - 1] += that; } else { newStrings[lastIndex] = that; } final String[] finalStrings = newStrings; return new GString(newValues) { public String[] getStrings() { return finalStrings; } }; }
public GString plus(String that) { String[] currentStrings = getStrings(); String[] newStrings; Object[] newValues; boolean appendToLastString = currentStrings.length > getValues().length; if (appendToLastString) { newStrings = new String[currentStrings.length]; } else { newStrings = new String[currentStrings.length + 1]; } newValues = new Object[getValues().length]; int lastIndex = currentStrings.length; System.arraycopy(currentStrings, 0, newStrings, 0, lastIndex); System.arraycopy(getValues(), 0, newValues, 0, getValues().length); if (appendToLastString) { newStrings[lastIndex - 1] += that; } else { newStrings[lastIndex] = that; } final String[] finalStrings = newStrings; return new GString(newValues) { public String[] getStrings() { return finalStrings; } }; }
@SuppressWarnings("unchecked") private Set<List<String>> getCartesianValues(final GString segment) { List<Set<String>> result = new ArrayList<>(segment.getValues().length); for (Object each : segment.getValues()) { if (null == each) { continue; } if (each instanceof Collection) { result.add(Sets.newLinkedHashSet(Collections2.transform((Collection<Object>) each, new Function<Object, String>() { @Override public String apply(final Object input) { return input.toString(); } }))); } else { result.add(Sets.newHashSet(each.toString())); } } return Sets.cartesianProduct(result); }
@SuppressWarnings("unchecked") private Set<List<String>> getCartesianValues(final GString segment) { List<Set<String>> result = new ArrayList<>(segment.getValues().length); for (Object each : segment.getValues()) { if (null == each) { continue; } if (each instanceof Collection) { result.add(Sets.newHashSet(Collections2.transform((Collection<Object>) each, new Function<Object, String>() { @Override public String apply(final Object input) { return input.toString(); } }))); } else { result.add(Sets.newHashSet(each.toString())); } } return Sets.cartesianProduct(result); } }
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 final void print(Object o) { try { if (o instanceof Text) { write((Text)o); } else if (o instanceof GString) { GString gs = (GString)o; Object[] values = gs.getValues(); for (int i = 0;i < values.length;i++) { values[i] = format(values[i]); } write(o.toString()); } else { write(toString(o)); } } catch (IOException ignore) { } }
public final void print(Object o) throws IOException { if (o instanceof GString) { GString gs = (GString)o; Object[] values = gs.getValues(); for (int i = 0;i < values.length;i++) { values[i] = format(values[i]); } renderContext.getPrinter().provide(Chunk.create(o.toString())); } else { renderContext.getPrinter().provide(Chunk.create(toString(o))); } } }
public final void print(Object o) throws IOException { if (o instanceof GString) { GString gs = (GString)o; Object[] values = gs.getValues(); for (int i = 0;i < values.length;i++) { values[i] = format(values[i]); } renderContext.getPrinter().provide(Chunk.create(o.toString())); } else { renderContext.getPrinter().provide(Chunk.create(toString(o))); } } }