createMapping method

Mapping<S, T> createMapping(
  1. Mapper mapper
)

Implementation

Mapping<S,T> createMapping(Mapper mapper) {
  var result = createOperations(mapper);

  // validate

  for ( var intermediateResult in intermediateResultDefinitions)
    if ( intermediateResult.missing > 0) {
      throw MapperException("${ intermediateResult.typeDescriptor.type} misses ${intermediateResult.missing} arguments");
    }

  return Mapping<S,T>(
      mapper: mapper,
      definition: this,
      operations: result.operations,
      typeDescriptor: TypeDescriptor.forType(targetClass),
      constructor: result.constructor,
      stackSize: result.stackSize,
      intermediateResultDefinitions: intermediateResultDefinitions,
      finalizer: collectFinalizer());
}