/*
 *  Copyright 2013 Anyware Services
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */

/**
 * This class is the abstract class.
 * Each time a new kind of link is inserted in the richtext, it needs this class to display/edit it in the ribbon.
 * 
 * You need to implement the #edit, #getTypeName, #getTitle and #getDescription methods.
 */
Ext.define('Ametys.cms.editor.LinkHandler', {

	/**
	 * This method is in charge for editing the link
	 * @param {String} href The href value of the link
	 * @template
	 */
	edit: function (href)
	{
		throw new Error("#edit method is not implemented in " + this.self.getName());
	},

	/**
	 * @param {String} href The href value of the link
	 * @template
	 */
	getTypeName: function()
	{
		throw new Error("#getTypeName method is not implemented in " + this.self.getName());
	},

	/**
	 * @param {String} href The href value of the link
	 * @template
	 */
	getTitle: function(href)
	{
		throw new Error("#getTitle method is not implemented in " + this.self.getName());
	},
	
	/**
	 * @param {String} href The href value of the link
	 * @template
	 */
	getDescription: function(href)
	{
		throw new Error("#getDescription method is not implemented in " + this.self.getName());
	}
});