public int getDateType() { return ((TemplateDateModel) model).getDateType(); }
DateFormatter(TemplateDateModel dateModel, Environment env) throws TemplateException { this.dateModel = dateModel; this.env = env; final int dateType = dateModel.getDateType(); this.defaultFormat = dateType == TemplateDateModel.UNKNOWN ? null // Lazy unknown type error in getAsString() : env.getTemplateDateFormat( dateType, EvalUtil.modelToDate(dateModel, target).getClass(), target, true); }
TemplateDateFormat getTemplateDateFormat(TemplateDateModel tdm, Expression tdmSourceExpr, boolean useTempModelExc) throws TemplateModelException, TemplateException { Date date = EvalUtil.modelToDate(tdm, tdmSourceExpr); TemplateDateFormat format = getTemplateDateFormat( tdm.getDateType(), date.getClass(), tdmSourceExpr, useTempModelExc); return format; }
private TemplateDateModel toTemplateDateModel(Object date) throws _TemplateModelException { if (date instanceof Date) { return new SimpleDate((Date) date, dateType); } else { TemplateDateModel tm = (TemplateDateModel) date; if (tm.getDateType() != dateType) { throw new _TemplateModelException("The result of the parsing was of the wrong date type."); } return tm; } }
@Override TemplateModel _eval(Environment env) throws TemplateException { TemplateModel tm = target.eval(env); target.assertNonNull(tm, env); return (tm instanceof TemplateDateModel) && ((TemplateDateModel) tm).getDateType() == dateType ? TemplateBooleanModel.TRUE : TemplateBooleanModel.FALSE; } }
@Override TemplateModel _eval(Environment env) throws TemplateException { TemplateModel model = target.eval(env); if (model instanceof TemplateDateModel) { TemplateDateModel tdm = (TemplateDateModel) model; return calculateResult(EvalUtil.modelToDate(tdm, target), tdm.getDateType(), env); } else { throw newNonDateException(env, model, target); } }
@Override TemplateModel _eval(Environment env) throws TemplateException { TemplateModel model = target.eval(env); if (model instanceof TemplateDateModel) { TemplateDateModel tdm = (TemplateDateModel) model; int tdmDateType = tdm.getDateType(); if (tdmDateType != TemplateDateModel.UNKNOWN) { return tdm; } return new SimpleDate(EvalUtil.modelToDate(tdm, target), dateType); } else { throw BuiltInForDate.newNonDateException(env, model, target); } }
/** * @param blamedDateSourceExp * The blamed expression if an error occurs; only used for error messages. * @param blamedFormatterExp * The blamed expression if an error occurs; only used for error messages. */ String formatDateToPlainText(TemplateDateModel tdm, String formatString, Expression blamedDateSourceExp, Expression blamedFormatterExp, boolean useTempModelExc) throws TemplateException { Date date = EvalUtil.modelToDate(tdm, blamedDateSourceExp); TemplateDateFormat format = getTemplateDateFormat( formatString, tdm.getDateType(), date.getClass(), blamedDateSourceExp, blamedFormatterExp, useTempModelExc); try { return EvalUtil.assertFormatResultNotNull(format.formatToPlainText(tdm)); } catch (TemplateValueFormatException e) { throw _MessageUtil.newCantFormatDateException(format, blamedDateSourceExp, e, useTempModelExc); } }
@Override TemplateModel _eval(Environment env) throws TemplateException { TemplateModel model = target.eval(env); if (model instanceof TemplateDateModel) { TemplateDateModel dmodel = (TemplateDateModel) model; int dtype = dmodel.getDateType(); // Any date model can be coerced into its own type if (dateType == dtype) { return model; } // unknown and datetime can be coerced into any date type if (dtype == TemplateDateModel.UNKNOWN || dtype == TemplateDateModel.DATETIME) { return new SimpleDate(dmodel.getAsDate(), dateType); } throw new _MiscTemplateException(this, "Cannot convert ", TemplateDateModel.TYPE_NAMES.get(dtype), " to ", TemplateDateModel.TYPE_NAMES.get(dateType)); } // Otherwise, interpret as a string and attempt // to parse it into a date. String s = target.evalAndCoerceToPlainText(env); return new DateParser(s, env); }
public String getAsString() throws TemplateModelException { if (cachedValue == null) { if (defaultFormat == null) { if (dateModel.getDateType() == TemplateDateModel.UNKNOWN) { throw _MessageUtil.newCantFormatUnknownTypeDateException(target, null); } else { throw new BugException(); } } try { cachedValue = EvalUtil.assertFormatResultNotNull(defaultFormat.formatToPlainText(dateModel)); } catch (TemplateValueFormatException e) { try { throw _MessageUtil.newCantFormatDateException(defaultFormat, target, e, true); } catch (TemplateException e2) { // `e` should always be a TemplateModelException here, but to be sure: throw _CoreAPI.ensureIsTemplateModelException("Failed to format date/time/datetime", e2); } } } return cachedValue; }
TemplateDateModel rightDateModel = (TemplateDateModel) rightValue; int leftDateType = leftDateModel.getDateType(); int rightDateType = rightDateModel.getDateType();
DateFormatter(TemplateDateModel dateModel, Environment env) throws TemplateException { this.dateModel = dateModel; this.env = env; final int dateType = dateModel.getDateType(); this.defaultFormat = dateType == TemplateDateModel.UNKNOWN ? null // Lazy unknown type error in getAsString() : env.getTemplateDateFormat( dateType, EvalUtil.modelToDate(dateModel, target).getClass(), target, true); }
DateFormatter(TemplateDateModel dateModel, Environment env) throws TemplateException { this.dateModel = dateModel; this.env = env; final int dateType = dateModel.getDateType(); this.defaultFormat = dateType == TemplateDateModel.UNKNOWN ? null // Lazy unknown type error in getAsString() : env.getTemplateDateFormat( dateType, EvalUtil.modelToDate(dateModel, target).getClass(), target, true); }
TemplateDateFormat getTemplateDateFormat(TemplateDateModel tdm, Expression tdmSourceExpr, boolean useTempModelExc) throws TemplateModelException, TemplateException { Date date = EvalUtil.modelToDate(tdm, tdmSourceExpr); TemplateDateFormat format = getTemplateDateFormat( tdm.getDateType(), date.getClass(), tdmSourceExpr, useTempModelExc); return format; }
TemplateDateFormat getTemplateDateFormat(TemplateDateModel tdm, Expression tdmSourceExpr, boolean useTempModelExc) throws TemplateModelException, TemplateException { Date date = EvalUtil.modelToDate(tdm, tdmSourceExpr); TemplateDateFormat format = getTemplateDateFormat( tdm.getDateType(), date.getClass(), tdmSourceExpr, useTempModelExc); return format; }
@Override TemplateModel _eval(Environment env) throws TemplateException { TemplateModel tm = target.eval(env); target.assertNonNull(tm, env); return (tm instanceof TemplateDateModel) && ((TemplateDateModel) tm).getDateType() == dateType ? TemplateBooleanModel.TRUE : TemplateBooleanModel.FALSE; } }
private TemplateDateModel toTemplateDateModel(Object date) throws _TemplateModelException { if (date instanceof Date) { return new SimpleDate((Date) date, dateType); } else { TemplateDateModel tm = (TemplateDateModel) date; if (tm.getDateType() != dateType) { throw new _TemplateModelException("The result of the parsing was of the wrong date type."); } return tm; } }
private TemplateDateModel toTemplateDateModel(Object date) throws _TemplateModelException { if (date instanceof Date) { return new SimpleDate((Date) date, dateType); } else { TemplateDateModel tm = (TemplateDateModel) date; if (tm.getDateType() != dateType) { throw new _TemplateModelException("The result of the parsing was of the wrong date type."); } return tm; } }
@Override TemplateModel _eval(Environment env) throws TemplateException { TemplateModel model = target.eval(env); if (model instanceof TemplateDateModel) { TemplateDateModel tdm = (TemplateDateModel) model; return calculateResult(EvalUtil.modelToDate(tdm, target), tdm.getDateType(), env); } else { throw newNonDateException(env, model, target); } }
@Override TemplateModel _eval(Environment env) throws TemplateException { TemplateModel model = target.eval(env); if (model instanceof TemplateDateModel) { TemplateDateModel tdm = (TemplateDateModel) model; return calculateResult(EvalUtil.modelToDate(tdm, target), tdm.getDateType(), env); } else { throw newNonDateException(env, model, target); } }