}
// resolve datetime
if (DatetimeMethodEnum.isDateTimeMethod(chainElement.getName()) && (!matchingMethod || methodTarget == Calendar.class || methodTarget == Date.class)) {
DatetimeMethodEnum datetimeMethod = DatetimeMethodEnum.fromName(chainElement.getName());
ExprDotEvalDTMethodDesc datetimeImpl = ExprDotEvalDTFactory.validateMake(validationContext.getStreamTypeService(), chainSpecStack, datetimeMethod, chainElement.getName(), currentInputType, chainElement.getParameters(), inputDesc);
currentInputType = datetimeImpl.getReturnType();
if (currentInputType == null) {
throw new IllegalStateException("Date-time method '" + chainElement.getName() + "' has not returned type information");
}
methodEvals.add(datetimeImpl.getEval());
filterAnalyzerDesc = datetimeImpl.getIntervalFilterDesc();
continue;
}
// try to resolve as property if the last method returned a type
if (currentInputType.getSingleEventEventType() != null) {