/*******************************************************************************
* Copyright (c) 2000, 2011 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
* Sebastian Davids: sdavids@gmx.de - see bug 25376
*******************************************************************************/
package org.jkiss.dbeaver.ui.editors.sql.templates;
import org.eclipse.jface.text.templates.GlobalTemplateVariables;
import org.eclipse.jface.text.templates.TemplateContextType;
import org.jkiss.dbeaver.model.struct.rdb.DBSCatalog;
import org.jkiss.dbeaver.model.struct.rdb.DBSSchema;
public abstract class SQLContextTypeAbstract extends TemplateContextType {
protected SQLContextTypeAbstract(String id, String name)
{
super(id, name);
addGlobalResolvers();
addDatabaseProposals();
}
private void addGlobalResolvers() {
addResolver(new GlobalTemplateVariables.Cursor());
addResolver(new GlobalTemplateVariables.WordSelection());
addResolver(new GlobalTemplateVariables.LineSelection());
addResolver(new GlobalTemplateVariables.Dollar());
addResolver(new GlobalTemplateVariables.Date());
addResolver(new GlobalTemplateVariables.Year());
addResolver(new GlobalTemplateVariables.Time());
addResolver(new GlobalTemplateVariables.User());
}
private void addDatabaseProposals()
{
addResolver(new SQLEntityResolver());
addResolver(new SQLContainerResolver<>(
SQLContainerResolver.VAR_NAME_SCHEMA, "Schema", DBSSchema.class));
addResolver(new SQLContainerResolver<>(
SQLContainerResolver.VAR_NAME_CATALOG, "Catalog", DBSCatalog.class));
addResolver(new SQLAttributeResolver());
addResolver(new SQLDataTypeResolver());
}
@Override
public String toString()
{
return getId() + " [" + getName() + "]";
}
@Override
public int hashCode()
{
return getId().hashCode() + getName().hashCode();
}
}