* If no resolution is possible, the resolve method must return null. * <p> * When resolving time fields, the map will be altered and null returned. * When resolving date fields, the date is normally returned from the method, * with the map altered to remove the resolved fields. However, it would also * be acceptable for the date fields to be resolved into other {@code ChronoField} * instances that can produce a date, such as {@code EPOCH_DAY}. * <p> * Not all {@code TemporalAccessor} implementations are accepted as return values. * Implementations that call this method must accept {@code ChronoLocalDate}, * {@code ChronoLocalDateTime}, {@code ChronoZonedDateTime} and {@code LocalTime}. * <p> * The default implementation must return null. * * @param FieldValues $fieldValues the map of fields to values, which can be updated, not null * @param TemporalAccessor $partialTemporal the partially complete temporal to query for zone and * chronology; querying for other things is undefined and not recommended, not null * @param ResolverStyle $resolverStyle the requested type of resolve, not null * @return TemporalAccessor the resolved temporal object; null if resolving only * changed the map, or no resolve occurred * @throws ArithmeticException if numeric overflow occurs * @throws DateTimeException if resolving results in an error. This must not be thrown * by querying a field on the temporal without first checking if it is supported */ public function resolve(FieldValues $fieldValues, TemporalAccessor $partialTemporal, ResolverStyle $resolverStyle) { return null; } } ChronoField::init();