code: private void buildMappings(final CronDefinition from, final CronDefinition to) {
          final Map<CronFieldName, FieldDefinition> sourceFieldDefinitions = getFieldDefinitions(from);
          final Map<CronFieldName, FieldDefinition> destFieldDefinitions = getFieldDefinitions(to);
          boolean startedDestMapping = false;
          boolean startedSourceMapping = false;
          for (final CronFieldName name : CronFieldName.values()) {
              final FieldDefinition destinationFieldDefinition = destFieldDefinitions.get(name);
              final FieldDefinition sourceFieldDefinition = sourceFieldDefinitions.get(name);
              if (destinationFieldDefinition != null) {
                  startedDestMapping = true;
              }
              if (sourceFieldDefinition != null) {
                  startedSourceMapping = true;
              }
              if (startedDestMapping && destinationFieldDefinition == null) {
                  break;
              }
              //destination has fields before source definition starts. We default them to zero.
              if (!startedSourceMapping && destinationFieldDefinition != null) {
                  mappings.put(name, returnOnZeroExpression(name));
              }
              //destination has fields after source definition was processed. We default them to always.
              if (startedSourceMapping && sourceFieldDefinition == null && destinationFieldDefinition != null) {
                  mappings.put(name, returnAlwaysExpression(name));
              }
              if (sourceFieldDefinition == null || destinationFieldDefinition == null) {
                  continue;
              }
              if (CronFieldName.DAY_OF_WEEK.equals(name)) {
                  mappings.put(name, dayOfWeekMapping((DayOfWeekFieldDefinition) sourceFieldDefinition, (DayOfWeekFieldDefinition) destinationFieldDefinition));
              } else if (CronFieldName.DAY_OF_MONTH.equals(name)) {
                  mappings.put(name, dayOfMonthMapping(sourceFieldDefinition, destinationFieldDefinition));
              } else {
                  mappings.put(name, returnSameExpression());
              }
          }
      }
docs: Builds functions that map the fields from source CronDefinition to target.
  
  @param from - source CronDefinition
  @param to   - target CronDefinition