private TypedClassOperation instantiateOperationTypes(TypedClassOperation operation){
  List<TypeVariable> typeParameters=operation.getTypeParameters();
  if (typeParameters.isEmpty()) {
    return operation;
  }
  Substitution<ReferenceType> substitution=selectSubstitution(typeParameters);
  if (substitution == null) {
    return null;
  }
  return operation.apply(substitution);
}

private TypedClassOperation instantiateOperationTypes ( TypedClassOperation operation ) { List < TypeVariable > typeParameters = operation . getTypeParameters ( ) ; if ( typeParameters . isEmpty ( ) ) { return operation ; } Substitution < ReferenceType > substitution = selectSubstitution ( typeParameters ) ; if ( substitution == null ) { return null ; } return operation . apply ( substitution ) ; }
selects an instantiation of the generic types of an operation , and returns a new operation with the types instantiated .
