public TemplateModel create(Object object, ObjectWrapper wrapper) { return new NumberModel((Number) object, (BeansWrapper) wrapper); } };
public String getStringArg(Map<?, ?> args, String key) { Object o = args.get(key); if (o instanceof SimpleScalar) { return ((SimpleScalar) o).getAsString(); } else if (o instanceof StringModel) { return ((StringModel) o).getAsString(); } else if (o instanceof SimpleNumber) { return ((SimpleNumber) o).getAsNumber().toString(); } else if (o instanceof NumberModel) { return ((NumberModel) o).getAsNumber().toString(); } return null; }
public String getStringArg(Map<String, Object> args, String key) { Object o = args.get(key); if (o instanceof SimpleScalar) { return ((SimpleScalar) o).getAsString(); } else if (o instanceof StringModel) { return ((StringModel) o).getAsString(); } else if (o instanceof SimpleNumber) { return ((SimpleNumber) o).getAsNumber().toString(); } else if (o instanceof NumberModel) { return ((NumberModel) o).getAsNumber().toString(); } return null; }
public TemplateModel create(Object object, ObjectWrapper wrapper) { return new NumberModel((Number) object, (BeansWrapper) wrapper); } };
public String getStringArg(Map<?, ?> args, String key) { Object o = args.get(key); if (o instanceof SimpleScalar) { return ((SimpleScalar) o).getAsString(); } else if (o instanceof StringModel) { return ((StringModel) o).getAsString(); } else if (o instanceof SimpleNumber) { return ((SimpleNumber) o).getAsNumber().toString(); } else if (o instanceof NumberModel) { return ((NumberModel) o).getAsNumber().toString(); } return null; }
public TemplateModel create(Object object, ObjectWrapper wrapper) { return new NumberModel((Number)object, (BeansWrapper)wrapper); } };
private static Integer getInteger(Map<String, Object> args, String key) { if (args.containsKey(key)) { Object o = args.get(key); if (Debug.verboseOn()) Debug.logVerbose("Amount Object : " + o.getClass().getName(), module); // handle nulls better if (o == null) { return null; } if (o instanceof NumberModel) { NumberModel s = (NumberModel) o; return s.getAsNumber().intValue(); } if (o instanceof SimpleNumber) { SimpleNumber s = (SimpleNumber) o; return s.getAsNumber().intValue(); } if (o instanceof SimpleScalar) { SimpleScalar s = (SimpleScalar) o; return Integer.valueOf(s.getAsString()); } return Integer.valueOf(o.toString()); } return null; }
public TemplateModel create(Object object, ObjectWrapper wrapper) { return new NumberModel((Number) object, (BeansWrapper) wrapper); } };
private static Double getAmount(Map<String, Object> args, String key) { if (args.containsKey(key)) { Object o = args.get(key); if (Debug.verboseOn()) Debug.logVerbose("Amount Object : " + o.getClass().getName(), module); // handle nulls better if (o == null) { o = 0.00; } if (o instanceof NumberModel) { NumberModel s = (NumberModel) o; return s.getAsNumber().doubleValue(); } if (o instanceof SimpleNumber) { SimpleNumber s = (SimpleNumber) o; return s.getAsNumber().doubleValue(); } if (o instanceof SimpleScalar) { SimpleScalar s = (SimpleScalar) o; return Double.valueOf(s.getAsString()); } return Double.valueOf(o.toString()); } return 0.00; }
/** * Compares two strings using java rules. * <p> * {@inheritDoc} */ @SuppressWarnings("unchecked") public TemplateModel exec(List arguments) throws TemplateModelException { try { String first = ((TemplateScalarModel) arguments.get(0)).getAsString(); String second = ((TemplateScalarModel) arguments.get(1)).getAsString(); return new NumberModel(new Integer(first.compareTo(second)), wrapper); } catch (Exception ex) { throw new TemplateModelException("Could execute compareStrings method.", ex); } } }
@Override public Object exec(@SuppressWarnings("rawtypes") List arguments) throws TemplateModelException { if (arguments.size() < 2) throw new TemplateModelException(NAME + ": Expected 2 arguments, count and maximum count."); if (!(arguments.get(0) instanceof TemplateNumberModel)) throw new TemplateModelException(NAME + ": Both arguments must be numbers, but the first was " + arguments.get(0).getClass().getName()); if (!(arguments.get(1) instanceof TemplateNumberModel)) throw new TemplateModelException(NAME + ": Both arguments must be numbers, but the second was " + arguments.get(1).getClass().getName()); int count = ((TemplateNumberModel) arguments.get(0)).getAsNumber().intValue(); if (count < 1) return new SimpleNumber(0); int maximum = ((TemplateNumberModel) arguments.get(1)).getAsNumber().intValue(); if (maximum < 0) throw new TemplateModelException(NAME + "Maximum must be at least 0, " + maximum); if (count > maximum) { LOG.severe("Count " + count + " is larger than maximum " + maximum + ". Using the maximum as count."); count = maximum; } double ratio = ((double)count) / ((double)maximum + QUITE_A_LOT_FACTOR); // <0..1> // Map it to scale 1..1000. double ratio2 = 1.0d + ratio * (998d * (1-FLATTENER)); double log10 = Math.log10(ratio2) / 3D; // 0..2.999 => 0..0.999 //LOG.info(String.format("count: %d, max: %d, ratio %f, ratio2 %f, log10 %f", count, maximum, ratio, ratio2, log10)); return new NumberModel(Double.valueOf(log10), new DefaultObjectWrapper()); }
@Override public Object exec(@SuppressWarnings("rawtypes") List arguments) throws TemplateModelException { if (arguments.size() < 2) throw new TemplateModelException(NAME + ": Expected 2 arguments, count and maximum count."); if (!(arguments.get(0) instanceof TemplateNumberModel)) throw new TemplateModelException(NAME + ": Both arguments must be numbers, but the first was " + arguments.get(0).getClass().getName()); if (!(arguments.get(1) instanceof TemplateNumberModel)) throw new TemplateModelException(NAME + ": Both arguments must be numbers, but the second was " + arguments.get(1).getClass().getName()); int count = ((TemplateNumberModel) arguments.get(0)).getAsNumber().intValue(); if (count < 1) return new SimpleNumber(0); int maximum = ((TemplateNumberModel) arguments.get(1)).getAsNumber().intValue(); if (maximum < 0) throw new TemplateModelException(NAME + "Maximum must be at least 0, " + maximum); if (count > maximum) { LOG.severe("Count " + count + " is larger than maximum " + maximum + ". Using the maximum as count."); count = maximum; } double ratio = ((double)count) / ((double)maximum + QUITE_A_LOT_FACTOR); // <0..1> // Map it to scale 1..1000. double ratio2 = 1.0d + ratio * (998d * (1-FLATTENER)); double log10 = Math.log10(ratio2) / 3D; // 0..2.999 => 0..0.999 //LOG.info(String.format("count: %d, max: %d, ratio %f, ratio2 %f, log10 %f", count, maximum, ratio, ratio2, log10)); return new NumberModel(Double.valueOf(log10), new DefaultObjectWrapper()); }