@Override public boolean equals(Object other) { if (other == null || !(other instanceof NumberData)) { return false; } if (other instanceof IntegerData) { return value == ((IntegerData) other).getValue(); } else { return super.equals(other); } }
/** * Gets a IntegerData instance for the given value. * @param value The desired value. * @return A IntegerData instance with the given value. */ public static IntegerData forValue(int value) { switch (value) { case -1: return MINUS_ONE; case 0: return ZERO; case 1: return ONE; case 2: return TWO; case 3: return THREE; case 4: return FOUR; case 5: return FIVE; case 6: return SIX; case 7: return SEVEN; case 8: return EIGHT; case 9: return NINE; case 10: return TEN; default: return new IntegerData(value); } }
/** * Private helper to convert an integer result. * * @param i The integer to convert. */ private SoyValue convertResult(long i) { return IntegerData.forValue(i); }
@Override protected void visitForNode(ForNode node) { List<Integer> rangeArgValues = Lists.newArrayList(); for (ExprNode rangeArg : node.getRangeArgs()) { SoyData rangeArgValue = eval(rangeArg); if (!(rangeArgValue instanceof IntegerData)) { throw new RenderException( "In 'for' command " + node.toSourceString() + ", the expression \"" + rangeArg.toSourceString() + "\" does not resolve to an integer."); } rangeArgValues.add(((IntegerData) rangeArgValue).getValue()); } int increment = (rangeArgValues.size() == 3) ? rangeArgValues.remove(2) : 1 /* default */; int init = (rangeArgValues.size() == 2) ? rangeArgValues.remove(0) : 0 /* default */; int limit = rangeArgValues.get(0); String localVarName = node.getVarName(); Map<String, SoyData> newEnvFrame = Maps.newHashMap(); env.push(newEnvFrame); for (int i = init; i < limit; i += increment) { newEnvFrame.put(localVarName, IntegerData.forValue(i)); visitChildren(node); } env.pop(); }
public static NumberData $$round( NumberData valueData, @Nullable IntegerData numDigitsAfterPtData) { int numDigitsAfterPt = (numDigitsAfterPtData != null) ? numDigitsAfterPtData.integerValue() : 0 /* default */; if (numDigitsAfterPt == 0) { if (valueData instanceof IntegerData) { return valueData; } else { return IntegerData.forValue((int) Math.round(valueData.numberValue())); } } else if (numDigitsAfterPt > 0) { double value = valueData.numberValue(); double shift = Math.pow(10, numDigitsAfterPt); return FloatData.forValue(Math.round(value * shift) / shift); } else { double value = valueData.numberValue(); double shift = Math.pow(10, -numDigitsAfterPt); return IntegerData.forValue((int) (Math.round(value / shift) * shift)); } }
/** * Gets the integer index out of a SoyValue key, or throws SoyDataException if the key is not an * integer. * * @param key The SoyValue key. * @return The index. */ private int getIntegerIndex(SoyValue key) { try { return ((IntegerData) key).integerValue(); } catch (ClassCastException cce) { try { // TODO: Remove this old bad behavior after existing code is compliant. return Integer.parseInt(key.coerceToString()); } catch (NumberFormatException nfe) { throw new SoyDataException( "SoyList accessed with non-integer key (got key type " + key.getClass().getName() + ")."); } } } }
/** Returns the plural case variable value. */ private static long getPlural(Map<String, Object> placeholders, String pluralVarName) { IntegerData pluralValue = (IntegerData) placeholders.get(pluralVarName); if (pluralValue == null) { throw new IllegalArgumentException("No value provided for plural: '" + pluralVarName + "'"); } return pluralValue.longValue(); }
@Override public String coerceToString() { return toString(); }
/** * Gets the integer index out of a SoyValue key, or throws SoyDataException if the key is not an * integer. * * @param key The SoyValue key. * @return The index. */ private int getIntegerIndex(SoyValue key) { try { return ((IntegerData) key).integerValue(); } catch (ClassCastException cce) { try { // TODO: Remove this old bad behavior after existing code is compliant. return Integer.parseInt(key.coerceToString()); } catch (NumberFormatException nfe) { throw new SoyDataException( "SoyList accessed with non-integer key (got key type " + key.getClass().getName() + ")."); } } } }
/** Returns the plural case variable value. */ private long getPlural(String pluralVarName) { IntegerData pluralValue = (IntegerData) placeholders.get(pluralVarName); if (pluralValue == null) { throw new IllegalArgumentException("No value provided for plural: '" + pluralVarName + "'"); } return pluralValue.longValue(); } }
@Override public String coerceToString() { return toString(); }
/** * Private helper to convert an integer result. * @param i The integer to convert. */ private SoyData convertResult(int i) { return IntegerData.forValue(i); }
); } else if (data instanceof IntegerData) { return ((IntegerData) data).getValue(); } else if (data instanceof BooleanData) { return ((BooleanData) data).getValue();
return new IntegerData(value);
/** * Returns the smallest (closest to negative infinity) integer value that is greater than or equal * to the argument. */ public static long ceil(SoyValue arg) { if (arg instanceof IntegerData) { return ((IntegerData) arg).longValue(); } else { return (long) Math.ceil(arg.floatValue()); } }
/** * Private helper to convert an integer result. * * @param i The integer to convert. */ private SoyValue convertResult(long i) { return IntegerData.forValue(i); }
return ((IntegerData) data).getValue();
return new IntegerData(value);
/** * Returns the largest (closest to positive infinity) integer value that is less than or equal to * the argument. */ public static long floor(SoyValue arg) { if (arg instanceof IntegerData) { return ((IntegerData) arg).longValue(); } else { return (long) Math.floor(arg.floatValue()); } }
/** * Converts an int value to a SoyData (specifically an IntegerData). * @param value The int value to convert. */ public static SoyData toSoyData(int value) { return IntegerData.forValue(value); }