code: protected void bindTypeReferences(BindingFactory factory, TypeReference interfaceType,
  			TypeReference implementationType, TypeReference customImplementationType) {
  		final IFileSystemAccess2 fileSystem = getSrc();
  		final TypeReference type;
  		if ((fileSystem.isFile(implementationType.getJavaPath()))
  				|| (fileSystem.isFile(customImplementationType.getXtendPath()))) {
  			type = customImplementationType;
  		} else {
  			type = implementationType;
  		}
  		factory.addfinalTypeToType(interfaceType, type);
  	}
docs: Binds the given references according to the standard policy.
  
  <p>If an custom implementation is defined, it is binded to. Otherwise, the default implementation
  is binded.
  
  @param factory the binding factory to use for creating the bindings.
  @param interfaceType the type to bind to an implementation type.
  @param implementationType the implementation to bind to the interface type.
  @param customImplementationType the custom implementation to bind to the interface type.