Browse Source

Renamed model converter builder.

Oskar Wrobel 9 years ago
parent
commit
a36cb2abcb

+ 33 - 23
packages/ckeditor5-engine/src/conversion/model-converter-builder.js

@@ -20,7 +20,7 @@ import ViewContainerElement from '../view/containerelement.js';
  * Provides chainable, high-level API to easily build basic model-to-view converters that are appended to given
  * dispatchers. In many cases, this is the API that should be used to specify how abstract model elements and
  * attributes should be represented in the view (and then later in DOM). Instances of this class are created by
- * {@link engine.conversion.BuildModelConverterFor}.
+ * {@link engine.conversion.buildModelConverter}.
  *
  * If you need more complex converters, see {@link engine.conversion.ModelConversionDispatcher},
  * {@link engine.conversion.modelToView}, {@link engine.conversion.ModelConsumable}, {@link engine.conversion.Mapper}.
@@ -30,21 +30,21 @@ import ViewContainerElement from '../view/containerelement.js';
  * 1. Model element to view element converter. This is a converter that takes the model element and represents it
  * in the view.
  *
- *		BuildModelConverterFor( dispatcher ).fromElement( 'paragraph' ).toElement( 'p' );
- *		BuildModelConverterFor( dispatcher ).fromElement( 'image' ).toElement( 'img' );
+ *		buildModelConverter().for( dispatcher ).fromElement( 'paragraph' ).toElement( 'p' );
+ *		buildModelConverter().for( dispatcher ).fromElement( 'image' ).toElement( 'img' );
  *
  * 2. Model attribute to view attribute converter. This is a converter that operates on model element attributes
  * and converts them to view element attributes. It is suitable for elements like `image` (`src`, `title` attributes).
  *
- *		BuildModelConverterFor( dispatcher ).fromElement( 'image' ).toElement( 'img' );
- *		BuildModelConverterFor( dispatcher ).fromAttribute( 'src' ).toAttribute();
+ *		buildModelConverter().for( dispatcher ).fromElement( 'image' ).toElement( 'img' );
+ *		buildModelConverter().for( dispatcher ).fromAttribute( 'src' ).toAttribute();
  *
  * 3. Model attribute to view element converter. This is a converter that takes model attributes and represents them
  * as view elements. Elements created by this kind of converter are wrapping other view elements. Wrapped view nodes
  * correspond to model nodes had converter attribute. It is suitable for attributes like `bold`, where `bold` attribute
  * set on model text nodes is converter to `strong` view element.
  *
- *		BuildModelConverterFor( dispatcher ).fromAttribute( 'bold' ).toElement( 'strong' );
+ *		buildModelConverter().for( dispatcher ).fromAttribute( 'bold' ).toElement( 'strong' );
  *
  * It is possible to provide various different parameters for {@link engine.conversion.ModelConverterBuilder#toElement}
  * and {@link engine.conversion.ModelConverterBuilder#toAttribute} methods. See their descriptions to learn more.
@@ -68,14 +68,14 @@ class ModelConverterBuilder {
 	 * @param {Array.<engine.conversion.ModelConversionDispatcher>} dispatchers Dispatchers to which converters will
 	 * be attached.
 	 */
-	constructor( dispatchers ) {
+	constructor() {
 		/**
 		 * Dispatchers to which converters will be attached.
 		 *
 		 * @type {Array.<engine.conversion.ModelConversionDispatcher>}
 		 * @private
 		 */
-		this._dispatchers = dispatchers;
+		this._dispatchers = [];
 
 		/**
 		 * Contains data about registered "from" query.
@@ -87,6 +87,18 @@ class ModelConverterBuilder {
 	}
 
 	/**
+	 * Set one or more dispatchers which the built converter will be attached to.
+	 *
+	 * @chainable
+	 * @param {...engine.conversion.ModelConversionDispatcher} dispatchers One or more dispatchers.
+	 */
+	for( ...dispatchers ) {
+		this._dispatchers = dispatchers;
+
+		return this;
+	}
+
+	/**
 	 * Registers what model element should be converted.
 	 *
 	 * @chainable
@@ -130,8 +142,8 @@ class ModelConverterBuilder {
 	 * prevent node merging, i.e.: `<span class="bold"><span class="theme">foo</span><span>` vs `<span class="bold theme">foo</span>`.
 	 * If you want to prevent merging, just set different priority for both converters.
 	 *
-	 *		BuildModelConverterFor( dispatcher ).fromAttribute( 'bold' ).withPriority( 2 ).toElement( 'strong' );
-	 *		BuildModelConverterFor( dispatcher ).fromAttribute( 'italic' ).withPriority( 3 ).toElement( 'em' );
+	 *		buildModelConverter().for( dispatcher ).fromAttribute( 'bold' ).withPriority( 2 ).toElement( 'strong' );
+	 *		buildModelConverter().for( dispatcher ).fromAttribute( 'italic' ).withPriority( 3 ).toElement( 'em' );
 	 *
 	 * @chainable
 	 * @param {Number} priority Converter priority.
@@ -152,15 +164,15 @@ class ModelConverterBuilder {
 	 * proper type of view element: {@link engine.view.ViewContainerElement ViewContainerElement} if you convert
 	 * from element or {@link engine.view.ViewAttributeElement ViewAttributeElement} if you convert from attribute.
 	 *
-	 *		BuildModelConverterFor( dispatcher ).fromElement( 'paragraph' ).toElement( 'p' );
+	 *		buildModelConverter().for( dispatcher ).fromElement( 'paragraph' ).toElement( 'p' );
 	 *
-	 *		BuildModelConverterFor( dispatcher ).fromElement( 'image' ).toElement( new ViewContainerElement( 'img' ) );
+	 *		buildModelConverter().for( dispatcher ).fromElement( 'image' ).toElement( new ViewContainerElement( 'img' ) );
 	 *
-	 *		BuildModelConverterFor( dispatcher )
+	 *		buildModelConverter().for( dispatcher )
 	 *			.fromElement( 'header' )
 	 *			.toElement( ( data ) => new ViewContainerElement( 'h' + data.item.getAttribute( 'level' ) ) );
 	 *
-	 *		BuildModelConverterFor( dispatcher ).fromAttribute( 'bold' ).toElement( new ViewAttributeElement( 'strong' ) );
+	 *		buildModelConverter().for( dispatcher ).fromAttribute( 'bold' ).toElement( new ViewAttributeElement( 'strong' ) );
 	 *
 	 * Creator function will be passed different values depending whether conversion is from element or from attribute:
 	 *
@@ -210,13 +222,13 @@ class ModelConverterBuilder {
 	 * This function will be passed model attribute value and model attribute key as first two parameters and then
 	 * all dispatcher's {engine.conversion.ModelConversionDispatcher#event:changeAttribute changeAttribute event} parameters.
 	 *
-	 *		BuildModelConverterFor( dispatcher ).fromAttribute( 'class' ).toAttribute( '' );
+	 *		buildModelConverter().for( dispatcher ).fromAttribute( 'class' ).toAttribute( '' );
 	 *
-	 *		BuildModelConverterFor( dispatcher ).fromAttribute( 'linkTitle' ).toAttribute( 'title' );
+	 *		buildModelConverter().for( dispatcher ).fromAttribute( 'linkTitle' ).toAttribute( 'title' );
 	 *
-	 *		BuildModelConverterFor( dispatcher ).fromAttribute( 'highlighted' ).toAttribute( 'style', 'background:yellow' );
+	 *		buildModelConverter().for( dispatcher ).fromAttribute( 'highlighted' ).toAttribute( 'style', 'background:yellow' );
 	 *
-	 *		BuildModelConverterFor( dispatcher )
+	 *		buildModelConverter().for( dispatcher )
 	 *			.fromAttribute( 'theme' )
 	 *			.toAttribute( ( value ) => ( { key: 'class', value: value + '-theme' } ) );
 	 *
@@ -270,11 +282,9 @@ class ModelConverterBuilder {
  * model-to-view converters and attach them to provided dispatchers. The method returns an instance of
  * {@link engine.conversion.ModelConverterBuilder}.
  *
- * @external engine.conversion.BuildModelConverterFor
+ * @external engine.conversion.buildModelConverter
  * @memberOf engine.conversion
- * @param {...engine.conversion.ModelConversionDispatcher} dispatchers One or more dispatchers which
- * the built converter will be attached to.
  */
-export default function BuildModelConverterFor( ...dispatchers ) {
-	return new ModelConverterBuilder( dispatchers );
+export default function buildModelConverter() {
+	return new ModelConverterBuilder();
 }

+ 1 - 1
packages/ckeditor5-engine/src/datacontroller.js

@@ -70,7 +70,7 @@ export default class DataController {
 		 *
 		 * Or use {@link engine.conversion.ModelConverterBuilder}:
 		 *
-		 *		BuildModelConverterFor( data.modelToView ).fromAttribute( 'bold' ).toElement( 'b' );
+		 *		buildModelConverter().for( data.modelToView ).fromAttribute( 'bold' ).toElement( 'b' );
 		 *
 		 * @readonly
 		 * @member {engine.conversion.ModelConversionDispatcher} engine.DataController#modelToView

+ 1 - 1
packages/ckeditor5-engine/src/editingcontroller.js

@@ -64,7 +64,7 @@ export default class EditingController {
 		 *
 		 * Or use {@link engine.conversion.ModelConverterBuilder}:
 		 *
-		 *		BuildModelConverterFor( editing.modelToView ).fromAttribute( 'bold' ).toElement( 'b' );
+		 *		buildModelConverter().for( editing.modelToView ).fromAttribute( 'bold' ).toElement( 'b' );
 		 *
 		 * @readonly
 		 * @member {engine.conversion.ModelConversionDispatcher} engine.EditingController#modelToView

+ 19 - 19
packages/ckeditor5-engine/tests/conversion/model-converter-builder.js

@@ -5,7 +5,7 @@
 
 /* bender-tags: conversion */
 
-import BuildModelConverterFor from '/ckeditor5/engine/conversion/model-converter-builder.js';
+import buildModelConverter from '/ckeditor5/engine/conversion/buildmodelconverter.js';
 
 import ModelDocument from '/ckeditor5/engine/model/document.js';
 import ModelElement from '/ckeditor5/engine/model/element.js';
@@ -92,7 +92,7 @@ describe( 'Model converter builder', () => {
 
 	describe( 'model element to view element conversion', () => {
 		it( 'using passed view element name', () => {
-			BuildModelConverterFor( dispatcher ).fromElement( 'paragraph' ).toElement( 'p' );
+			buildModelConverter().for( dispatcher ).fromElement( 'paragraph' ).toElement( 'p' );
 
 			let modelElement = new ModelElement( 'paragraph', null, new ModelText( 'foobar' ) );
 			modelRoot.appendChildren( modelElement );
@@ -103,7 +103,7 @@ describe( 'Model converter builder', () => {
 		} );
 
 		it( 'using passed view element', () => {
-			BuildModelConverterFor( dispatcher ).fromElement( 'image' ).toElement( new ViewContainerElement( 'img' ) );
+			buildModelConverter().for( dispatcher ).fromElement( 'image' ).toElement( new ViewContainerElement( 'img' ) );
 
 			let modelElement = new ModelElement( 'image' );
 			modelRoot.appendChildren( modelElement );
@@ -114,7 +114,7 @@ describe( 'Model converter builder', () => {
 		} );
 
 		it( 'using passed creator function', () => {
-			BuildModelConverterFor( dispatcher )
+			buildModelConverter().for( dispatcher )
 				.fromElement( 'header' )
 				.toElement( ( data ) => new ViewContainerElement( 'h' + data.item.getAttribute( 'level' ) ) );
 
@@ -129,11 +129,11 @@ describe( 'Model converter builder', () => {
 
 	describe( 'model attribute to view element conversion', () => {
 		beforeEach( () => {
-			BuildModelConverterFor( dispatcher ).fromElement( 'paragraph' ).toElement( 'p' );
+			buildModelConverter().for( dispatcher ).fromElement( 'paragraph' ).toElement( 'p' );
 		} );
 
 		it( 'using passed view element name', () => {
-			BuildModelConverterFor( dispatcher ).fromAttribute( 'bold' ).toElement( 'strong' );
+			buildModelConverter().for( dispatcher ).fromAttribute( 'bold' ).toElement( 'strong' );
 
 			let modelElement = new ModelText( 'foo', { bold: true } );
 			modelRoot.appendChildren( modelElement );
@@ -150,7 +150,7 @@ describe( 'Model converter builder', () => {
 		} );
 
 		it( 'using passed view element', () => {
-			BuildModelConverterFor( dispatcher ).fromAttribute( 'bold' ).toElement( new ViewAttributeElement( 'strong' ) );
+			buildModelConverter().for( dispatcher ).fromAttribute( 'bold' ).toElement( new ViewAttributeElement( 'strong' ) );
 
 			let modelElement = new ModelText( 'foo', { bold: true } );
 			modelRoot.appendChildren( modelElement );
@@ -167,7 +167,7 @@ describe( 'Model converter builder', () => {
 		} );
 
 		it( 'using passed creator function', () => {
-			BuildModelConverterFor( dispatcher ).fromAttribute( 'italic' ).toElement( ( value ) => new ViewAttributeElement( value ) );
+			buildModelConverter().for( dispatcher ).fromAttribute( 'italic' ).toElement( ( value ) => new ViewAttributeElement( value ) );
 
 			let modelElement = new ModelText( 'foo', { italic: 'em' } );
 			modelRoot.appendChildren( modelElement );
@@ -195,7 +195,7 @@ describe( 'Model converter builder', () => {
 			dispatcher.on( 'selection', convertCollapsedSelection() );
 
 			// Model converter builder should add selection converter.
-			BuildModelConverterFor( dispatcher ).fromAttribute( 'italic' ).toElement( ( value ) => new ViewAttributeElement( value ) );
+			buildModelConverter().for( dispatcher ).fromAttribute( 'italic' ).toElement( ( value ) => new ViewAttributeElement( value ) );
 
 			modelRoot.appendChildren( new ModelText( 'foo', { italic: 'em' } ) );
 
@@ -255,11 +255,11 @@ describe( 'Model converter builder', () => {
 
 	describe( 'model attribute to view attribute conversion', () => {
 		beforeEach( () => {
-			BuildModelConverterFor( dispatcher ).fromElement( 'paragraph' ).toElement( 'p' );
+			buildModelConverter().for( dispatcher ).fromElement( 'paragraph' ).toElement( 'p' );
 		} );
 
 		it( 'using default 1-to-1 conversion', () => {
-			BuildModelConverterFor( dispatcher ).fromAttribute( 'class' ).toAttribute();
+			buildModelConverter().for( dispatcher ).fromAttribute( 'class' ).toAttribute();
 
 			let modelElement = new ModelElement( 'paragraph', { class: 'myClass' }, new ModelText( 'foobar' ) );
 			modelRoot.appendChildren( modelElement );
@@ -280,7 +280,7 @@ describe( 'Model converter builder', () => {
 		} );
 
 		it( 'using passed attribute key', () => {
-			BuildModelConverterFor( dispatcher ).fromAttribute( 'theme' ).toAttribute( 'class' );
+			buildModelConverter().for( dispatcher ).fromAttribute( 'theme' ).toAttribute( 'class' );
 
 			let modelElement = new ModelElement( 'paragraph', { theme: 'abc' }, new ModelText( 'foobar' ) );
 			modelRoot.appendChildren( modelElement );
@@ -301,7 +301,7 @@ describe( 'Model converter builder', () => {
 		} );
 
 		it( 'using passed attribute key and value', () => {
-			BuildModelConverterFor( dispatcher ).fromAttribute( 'highlighted' ).toAttribute( 'style', 'background:yellow' );
+			buildModelConverter().for( dispatcher ).fromAttribute( 'highlighted' ).toAttribute( 'style', 'background:yellow' );
 
 			let modelElement = new ModelElement( 'paragraph', { 'highlighted': true }, new ModelText( 'foobar' ) );
 			modelRoot.appendChildren( modelElement );
@@ -317,7 +317,7 @@ describe( 'Model converter builder', () => {
 		} );
 
 		it( 'using passed attribute creator function', () => {
-			BuildModelConverterFor( dispatcher )
+			buildModelConverter().for( dispatcher )
 				.fromAttribute( 'theme' )
 				.toAttribute( ( value ) => ( { key: 'class', value: value + '-theme' } ) );
 
@@ -342,8 +342,8 @@ describe( 'Model converter builder', () => {
 
 	describe( 'withPriority', () => {
 		it( 'should change default converters priority', () => {
-			BuildModelConverterFor( dispatcher ).fromElement( 'custom' ).toElement( 'custom' );
-			BuildModelConverterFor( dispatcher ).fromElement( 'custom' ).withPriority( 0 ).toElement( 'other' );
+			buildModelConverter().for( dispatcher ).fromElement( 'custom' ).toElement( 'custom' );
+			buildModelConverter().for( dispatcher ).fromElement( 'custom' ).withPriority( 0 ).toElement( 'other' );
 
 			let modelElement = new ModelElement( 'custom', null, new ModelText( 'foobar' ) );
 			modelRoot.appendChildren( modelElement );
@@ -355,11 +355,11 @@ describe( 'Model converter builder', () => {
 	} );
 
 	it( 'should do nothing on model element to view attribute conversion', () => {
-		BuildModelConverterFor( dispatcher ).fromElement( 'div' ).toElement( 'div' );
+		buildModelConverter().for( dispatcher ).fromElement( 'div' ).toElement( 'div' );
 		// Should do nothing:
-		BuildModelConverterFor( dispatcher ).fromElement( 'paragraph' ).toAttribute( 'paragraph', true );
+		buildModelConverter().for( dispatcher ).fromElement( 'paragraph' ).toAttribute( 'paragraph', true );
 		// If above would do something this one would not be fired:
-		BuildModelConverterFor( dispatcher ).fromElement( 'paragraph' ).toElement( 'p' );
+		buildModelConverter().for( dispatcher ).fromElement( 'paragraph' ).toElement( 'p' );
 
 		let modelElement = new ModelElement( 'div', null, new ModelElement( 'paragraph', null, new ModelText( 'foobar' ) ) );
 		modelRoot.appendChildren( modelElement );

+ 9 - 9
packages/ckeditor5-engine/tests/datacontroller.js

@@ -10,7 +10,7 @@ import DataController from '/ckeditor5/engine/datacontroller.js';
 import HtmlDataProcessor from '/ckeditor5/engine/dataprocessor/htmldataprocessor.js';
 
 import BuildViewConverterFor  from '/ckeditor5/engine/conversion/view-converter-builder.js';
-import BuildModelConverterFor  from '/ckeditor5/engine/conversion/model-converter-builder.js';
+import buildModelConverter  from '/ckeditor5/engine/conversion/buildmodelconverter.js';
 
 import { getData, setData, stringify } from '/tests/engine/_utils/model.js';
 
@@ -139,7 +139,7 @@ describe( 'DataController', () => {
 			modelDocument.schema.registerItem( 'paragraph', '$block' );
 			setData( modelDocument, '<paragraph>foo</paragraph>' );
 
-			BuildModelConverterFor( data.modelToView ).fromElement( 'paragraph' ).toElement( 'p' );
+			buildModelConverter().for( data.modelToView ).fromElement( 'paragraph' ).toElement( 'p' );
 
 			expect( data.get() ).to.equal( '<p>foo</p>' );
 		} );
@@ -148,7 +148,7 @@ describe( 'DataController', () => {
 			modelDocument.schema.registerItem( 'paragraph', '$block' );
 			setData( modelDocument, '<paragraph></paragraph>' );
 
-			BuildModelConverterFor( data.modelToView ).fromElement( 'paragraph' ).toElement( 'p' );
+			buildModelConverter().for( data.modelToView ).fromElement( 'paragraph' ).toElement( 'p' );
 
 			expect( data.get() ).to.equal( '<p>&nbsp;</p>' );
 		} );
@@ -157,7 +157,7 @@ describe( 'DataController', () => {
 			modelDocument.schema.registerItem( 'paragraph', '$block' );
 			setData( modelDocument, '<paragraph>foo</paragraph><paragraph>bar</paragraph>' );
 
-			BuildModelConverterFor( data.modelToView ).fromElement( 'paragraph' ).toElement( 'p' );
+			buildModelConverter().for( data.modelToView ).fromElement( 'paragraph' ).toElement( 'p' );
 
 			expect( data.get() ).to.equal( '<p>foo</p><p>bar</p>' );
 		} );
@@ -172,7 +172,7 @@ describe( 'DataController', () => {
 			modelDocument.schema.registerItem( 'paragraph', '$block' );
 			setData( modelDocument, '<paragraph>foo<$text bold=true>bar</$text></paragraph>' );
 
-			BuildModelConverterFor( data.modelToView ).fromElement( 'paragraph' ).toElement( 'p' );
+			buildModelConverter().for( data.modelToView ).fromElement( 'paragraph' ).toElement( 'p' );
 
 			expect( data.get() ).to.equal( '<p>foobar</p>' );
 		} );
@@ -181,8 +181,8 @@ describe( 'DataController', () => {
 			modelDocument.schema.registerItem( 'paragraph', '$block' );
 			setData( modelDocument, '<paragraph>foo<$text bold=true>bar</$text></paragraph>' );
 
-			BuildModelConverterFor( data.modelToView ).fromElement( 'paragraph' ).toElement( 'p' );
-			BuildModelConverterFor( data.modelToView ).fromAttribute( 'bold' ).toElement( 'b' );
+			buildModelConverter().for( data.modelToView ).fromElement( 'paragraph' ).toElement( 'p' );
+			buildModelConverter().for( data.modelToView ).fromAttribute( 'bold' ).toElement( 'b' );
 
 			expect( data.get() ).to.equal( '<p>foo<b>bar</b></p>' );
 		} );
@@ -192,8 +192,8 @@ describe( 'DataController', () => {
 			setData( modelDocument, '<paragraph>foo</paragraph>', { rootName: 'main' } );
 			setData( modelDocument, 'Bar', { rootName: 'title' } );
 
-			BuildModelConverterFor( data.modelToView ).fromElement( 'paragraph' ).toElement( 'p' );
-			BuildModelConverterFor( data.modelToView ).fromAttribute( 'bold' ).toElement( 'b' );
+			buildModelConverter().for( data.modelToView ).fromElement( 'paragraph' ).toElement( 'p' );
+			buildModelConverter().for( data.modelToView ).fromAttribute( 'bold' ).toElement( 'b' );
 
 			expect( data.get() ).to.equal( '<p>foo</p>' );
 			expect( data.get( 'main' ) ).to.equal( '<p>foo</p>' );

+ 2 - 2
packages/ckeditor5-engine/tests/editingcontroller.js

@@ -11,7 +11,7 @@ import ViewDocument from '/ckeditor5/engine/view/document.js';
 
 import Mapper from '/ckeditor5/engine/conversion/mapper.js';
 import ModelConversionDispatcher from '/ckeditor5/engine/conversion/modelconversiondispatcher.js';
-import BuildModelConverterFor from '/ckeditor5/engine/conversion/model-converter-builder.js';
+import buildModelConverter from '/ckeditor5/engine/conversion/buildmodelconverter.js';
 
 import ModelDocument from '/ckeditor5/engine/model/document.js';
 import ModelPosition from '/ckeditor5/engine/model/position.js';
@@ -114,7 +114,7 @@ describe( 'EditingController', () => {
 			viewRoot = editing.createRoot( domRoot );
 
 			model.schema.registerItem( 'paragraph', '$block' );
-			BuildModelConverterFor( editing.modelToView ).fromElement( 'paragraph' ).toElement( 'p' );
+			buildModelConverter().for( editing.modelToView ).fromElement( 'paragraph' ).toElement( 'p' );
 		} );
 
 		beforeEach( () => {

+ 2 - 2
packages/ckeditor5-engine/tests/manual/editingcontroller.js

@@ -9,7 +9,7 @@ import ModelRange from '/ckeditor5/engine/model/range.js';
 
 import { setData } from '/tests/engine/_utils/model.js';
 
-import BuildModelConverterFor from '/ckeditor5/engine/conversion/model-converter-builder.js';
+import buildModelConverter from '/ckeditor5/engine/conversion/buildmodelconverter.js';
 
 const model = new Document();
 model.createRoot();
@@ -18,7 +18,7 @@ const editing = new EditingController( model );
 editing.createRoot( document.getElementById( 'editor' ) );
 
 model.schema.registerItem( 'paragraph', '$block' );
-BuildModelConverterFor( editing.modelToView ).fromElement( 'paragraph' ).toElement( 'p' );
+buildModelConverter().for( editing.modelToView ).fromElement( 'paragraph' ).toElement( 'p' );
 
 setData( model,
 	'<paragraph>foo</paragraph>' +

+ 2 - 2
packages/ckeditor5-engine/tests/tickets/475/475.js

@@ -12,7 +12,7 @@ import Position from '/ckeditor5/engine/model/position.js';
 import Range from '/ckeditor5/engine/model/range.js';
 import LivePosition from '/ckeditor5/engine/model/liveposition.js';
 
-import BuildModelConverterFor from '/ckeditor5/engine/conversion/model-converter-builder.js';
+import buildModelConverter from '/ckeditor5/engine/conversion/buildmodelconverter.js';
 import BuildViewConverterFor from '/ckeditor5/engine/conversion/view-converter-builder.js';
 
 import AttributeElement from '/ckeditor5/engine/view/attributeelement.js';
@@ -27,7 +27,7 @@ export default class Link extends Feature {
 		editor.document.schema.allow( { name: '$inline', attributes: [ 'link' ] } );
 
 		// Build converter from model to view for data and editing pipelines.
-		BuildModelConverterFor( data.modelToView, editing.modelToView )
+		buildModelConverter().for( data.modelToView, editing.modelToView )
 			.fromAttribute( 'link' )
 			.toElement( ( href ) => new AttributeElement( 'a', { href } ) );