class DateUtil extends AbstractCaller {

    public static <T extends Temporal> T modifyTemporal(T source, String modifyPattern) {
        List<DateModificator> modificators = DateModificator.parse(modifyPattern);

        for (DateModificator dateModificator : modificators) {
            source = dateModificator.modify(source);
        }

        return source;
    }

}