/** * Copyright (c) 2014 Codetrails GmbH. * 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: * Johannes Dorn - initial API and implementation. */ package org.eclipse.recommenders.internal.snipmatch.rcp.completion; import static org.eclipse.recommenders.internal.snipmatch.rcp.Constants.SNIPMATCH_CONTEXT_ID; import org.eclipse.jdt.internal.corext.template.java.ElementTypeResolver; import org.eclipse.jdt.internal.corext.template.java.ExceptionVariableNameResolver; import org.eclipse.jdt.internal.corext.template.java.FieldResolver; import org.eclipse.jdt.internal.corext.template.java.ImportsResolver; import org.eclipse.jdt.internal.corext.template.java.JavaContextType; import org.eclipse.jdt.internal.corext.template.java.LinkResolver; import org.eclipse.jdt.internal.corext.template.java.LocalVarResolver; import org.eclipse.jdt.internal.corext.template.java.NameResolver; import org.eclipse.jdt.internal.corext.template.java.StaticImportResolver; import org.eclipse.jdt.internal.corext.template.java.TypeResolver; import org.eclipse.jdt.internal.corext.template.java.TypeVariableResolver; import org.eclipse.jdt.internal.corext.template.java.VarResolver; import org.eclipse.jface.text.templates.TemplateContextType; @SuppressWarnings("restriction") public class JavaTemplateContextType { private static class Holder { static final TemplateContextType INSTANCE = createContextType(); } public static TemplateContextType getInstance() { return Holder.INSTANCE; } private static TemplateContextType createContextType() { JavaContextType contextType = new JavaContextType(); contextType.setId(SNIPMATCH_CONTEXT_ID); contextType.initializeContextTypeResolvers(); ImportsResolver importResolver = new ImportsResolver(); importResolver.setType("import"); //$NON-NLS-1$ contextType.addResolver(importResolver); StaticImportResolver staticImportResolver = new StaticImportResolver(); staticImportResolver.setType("importStatic"); //$NON-NLS-1$ contextType.addResolver(staticImportResolver); VarResolver varResolver = new VarResolver(); varResolver.setType("var"); //$NON-NLS-1$ contextType.addResolver(varResolver); LocalVarResolver localVarResolver = new LocalVarResolver(); localVarResolver.setType("localVar"); //$NON-NLS-1$ contextType.addResolver(localVarResolver); FieldResolver fieldResolver = new FieldResolver(); fieldResolver.setType("field"); //$NON-NLS-1$ contextType.addResolver(fieldResolver); TypeResolver typeResolver = new TypeResolver(); typeResolver.setType("newType"); //$NON-NLS-1$ contextType.addResolver(typeResolver); LinkResolver linkResolver = new LinkResolver(); linkResolver.setType("link"); //$NON-NLS-1$ contextType.addResolver(linkResolver); NameResolver nameResolver = new NameResolver(); nameResolver.setType("newName"); //$NON-NLS-1$ contextType.addResolver(nameResolver); ElementTypeResolver elementTypeResolver = new ElementTypeResolver(); elementTypeResolver.setType("elemType"); //$NON-NLS-1$ contextType.addResolver(elementTypeResolver); TypeVariableResolver typeVariableResolver = new TypeVariableResolver(); typeVariableResolver.setType("argType"); //$NON-NLS-1$ contextType.addResolver(typeVariableResolver); ExceptionVariableNameResolver exceptionVariableNameResolver = new ExceptionVariableNameResolver(); exceptionVariableNameResolver.setType("exception_variable_name"); //$NON-NLS-1$ contextType.addResolver(exceptionVariableNameResolver); return contextType; } }