Bug 568548 - Simplify the 'java-empty' context type.
- JavaContextResolver was created to provide resolution for class_name
and package_delcaration variable but similar ones exist
- Use primary_type_name variable instead of class_name
- Use enclosing_package variable instead of package_declaration
- Remove unnecessary line_selection variable from 'java-empty' templates
Change-Id: I2595b5143a8193becd7cd02e8a8925f788c7e471
Signed-off-by: Roland Grunberg <rgrunber@redhat.com>
diff --git a/org.eclipse.jdt.ui/plugin.xml b/org.eclipse.jdt.ui/plugin.xml
index 5e2347c..80f14e5 100644
--- a/org.eclipse.jdt.ui/plugin.xml
+++ b/org.eclipse.jdt.ui/plugin.xml
@@ -5722,20 +5722,6 @@
description="%templates.java.resolvers.NewField.description"
name="%templates.java.resolvers.NewField.name"
type="newField"/>
- <resolver
- class="org.eclipse.jdt.internal.corext.template.java.JavaContextResolver"
- contextTypeId="java"
- description="%templates.java.resolvers.JavaContext.description"
- name="%templates.java.resolvers.JavaContext.name"
- type="package_declaration">
- </resolver>
- <resolver
- class="org.eclipse.jdt.internal.corext.template.java.JavaContextResolver"
- contextTypeId="java"
- description="%templates.java.resolvers.JavaContext.description"
- name="%templates.java.resolvers.JavaContext.name"
- type="class_name">
- </resolver>
</extension>
<extension
point="org.eclipse.ui.views">
diff --git a/org.eclipse.jdt.ui/templates/default-templates.xml b/org.eclipse.jdt.ui/templates/default-templates.xml
index 91200e6..3df7b50 100644
--- a/org.eclipse.jdt.ui/templates/default-templates.xml
+++ b/org.eclipse.jdt.ui/templates/default-templates.xml
@@ -257,27 +257,27 @@
${cursor}
}</template>
-<template name="new_class" description="%Templates.new_class" id="org.eclipse.jdt.ui.templates.new_class" context="java-empty" enabled="true" autoinsert="false">${package_declaration}
+<template name="new_class" description="%Templates.new_class" id="org.eclipse.jdt.ui.templates.new_class" context="java-empty" enabled="true" autoinsert="false">package ${enclosing_package};
-public class ${class_name} ${line_selection}${cursor} {
+public class ${primary_type_name} ${cursor} {
}</template>
-<template name="new_iface" description="%Templates.new_iface" id="org.eclipse.jdt.ui.templates.new_iface" context="java-empty" enabled="true" autoinsert="false">${package_declaration}
+<template name="new_iface" description="%Templates.new_iface" id="org.eclipse.jdt.ui.templates.new_iface" context="java-empty" enabled="true" autoinsert="false">package ${enclosing_package};
-public interface ${class_name} ${line_selection}${cursor} {
+public interface ${primary_type_name} ${cursor} {
}</template>
-<template name="new_enum" description="%Templates.new_enum" id="org.eclipse.jdt.ui.templates.new_enum" context="java-empty" enabled="true" autoinsert="false">${package_declaration}
+<template name="new_enum" description="%Templates.new_enum" id="org.eclipse.jdt.ui.templates.new_enum" context="java-empty" enabled="true" autoinsert="false">package ${enclosing_package};
-public enum ${class_name} ${line_selection}${cursor} {
+public enum ${primary_type_name} ${cursor} {
}</template>
-<template name="new_record" description="%Templates.new_record" id="org.eclipse.jdt.ui.templates.new_record" context="java-empty" enabled="true" autoinsert="false">${package_declaration}
+<template name="new_record" description="%Templates.new_record" id="org.eclipse.jdt.ui.templates.new_record" context="java-empty" enabled="true" autoinsert="false">package ${enclosing_package};
-public record ${class_name}(${cursor})${line_selection} {
+public record ${primary_type_name}(${cursor}) {
}</template>
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/corext/template/java/JavaContextResolver.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/corext/template/java/JavaContextResolver.java
deleted file mode 100644
index e973a75..0000000
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/corext/template/java/JavaContextResolver.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Red Hat Inc. and others.
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Red Hat - Initial Contribution
- *******************************************************************************/
-package org.eclipse.jdt.internal.corext.template.java;
-
-import org.eclipse.jface.text.templates.TemplateContext;
-import org.eclipse.jface.text.templates.TemplateVariable;
-import org.eclipse.jface.text.templates.TemplateVariableResolver;
-
-import org.eclipse.jdt.core.IJavaElement;
-
-/**
- * Resolve variables from the context of a Java compilation unit.
- */
-public class JavaContextResolver extends TemplateVariableResolver {
-
- private static String PACKAGE_DECLARATION = "package_declaration"; //$NON-NLS-1$
- private static String CLASS_NAME = "class_name"; //$NON-NLS-1$
-
- public JavaContextResolver() {
- }
-
- public JavaContextResolver(String type, String description) {
- super(type, description);
- }
-
- @Override
- public void resolve(TemplateVariable variable, TemplateContext context) {
- if (context instanceof JavaContext) {
- JavaContext jc = (JavaContext) context;
- if (PACKAGE_DECLARATION.equals(variable.getName())) {
- IJavaElement pkgCandidate = jc.getCompilationUnit().getParent();
- String pkgNS = null;
- if (pkgCandidate != null &&
- pkgCandidate.getElementType() == IJavaElement.PACKAGE_FRAGMENT) {
- pkgNS = pkgCandidate.getElementName();
- } else {
- pkgNS = jc.getCompilationUnit().getPath().toOSString()
- .replaceAll("/", ".") //$NON-NLS-1$ //$NON-NLS-2$
- .replaceAll("." + jc.getCompilationUnit().getElementName(), "") //$NON-NLS-1$ //$NON-NLS-2$
- .substring(1);
- }
- variable.setValue("package " + pkgNS + ";"); //$NON-NLS-1$ //$NON-NLS-2$
- } else if (CLASS_NAME.equals(variable.getName())) {
- String cName = jc.getCompilationUnit().getElementName().replaceAll(".java", ""); //$NON-NLS-1$ //$NON-NLS-2$
- variable.setValue(cName);
- }
- }
- }
-
-}