All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.eclipse.jface.text.templates.Template Maven / Gradle / Ivy

Go to download

AspectJ tools most notably contains the AspectJ compiler (AJC). AJC applies aspects to Java classes during compilation, fully replacing Javac for plain Java classes and also compiling native AspectJ or annotation-based @AspectJ syntax. Furthermore, AJC can weave aspects into existing class files in a post-compile binary weaving step. This library is a superset of AspectJ weaver and hence also of AspectJ runtime.

There is a newer version: 1.9.22.1
Show newest version
/*******************************************************************************
 * Copyright (c) 2000, 2008 IBM Corporation and others.
 *
 * This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License 2.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/legal/epl-2.0/
 *
 * SPDX-License-Identifier: EPL-2.0
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.jface.text.templates;

import org.eclipse.core.runtime.Assert;


/**
 * A template consisting of a name and a pattern.
 * 

* Clients may instantiate this class. May become final in the future. *

* @since 3.0 * @noextend This class is not intended to be subclassed by clients. */ public class Template { /** The name of this template */ private /*final*/ String fName; /** A description of this template */ private /*final*/ String fDescription; /** The name of the context type of this template */ private /*final*/ String fContextTypeId; /** The template pattern. */ private /*final*/ String fPattern; /** * The auto insertable property. * @since 3.1 */ private final boolean fIsAutoInsertable; /** * Creates an empty template. */ public Template() { this("", "", "", "", true); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ } /** * Creates a copy of a template. * * @param template the template to copy */ public Template(Template template) { this(template.getName(), template.getDescription(), template.getContextTypeId(), template.getPattern(), template.isAutoInsertable()); } /** * Creates a template. * * @param name the name of the template * @param description the description of the template * @param contextTypeId the id of the context type in which the template can be applied * @param pattern the template pattern * @deprecated as of 3.1 replaced by {@link #Template(String, String, String, String, boolean)} */ @Deprecated public Template(String name, String description, String contextTypeId, String pattern) { this(name, description, contextTypeId, pattern, true); // templates are auto insertable per default } /** * Creates a template. * * @param name the name of the template * @param description the description of the template * @param contextTypeId the id of the context type in which the template can be applied * @param pattern the template pattern * @param isAutoInsertable the auto insertable property of the template * @since 3.1 */ public Template(String name, String description, String contextTypeId, String pattern, boolean isAutoInsertable) { Assert.isNotNull(description); fDescription= description; fName= name; Assert.isNotNull(contextTypeId); fContextTypeId= contextTypeId; fPattern= pattern; fIsAutoInsertable= isAutoInsertable; } @Override public int hashCode() { return fName.hashCode() ^ fPattern.hashCode() ^ fContextTypeId.hashCode(); } /** * Sets the description of the template. * * @param description the new description * @deprecated Templates should never be modified */ @Deprecated public void setDescription(String description) { Assert.isNotNull(description); fDescription= description; } /** * Returns the description of the template. * * @return the description of the template */ public String getDescription() { return fDescription; } /** * Sets the name of the context type in which the template can be applied. * * @param contextTypeId the new context type name * @deprecated Templates should never be modified */ @Deprecated public void setContextTypeId(String contextTypeId) { Assert.isNotNull(contextTypeId); fContextTypeId= contextTypeId; } /** * Returns the id of the context type in which the template can be applied. * * @return the id of the context type in which the template can be applied */ public String getContextTypeId() { return fContextTypeId; } /** * Sets the name of the template. * * @param name the name of the template * @deprecated Templates should never be modified */ @Deprecated public void setName(String name) { fName= name; } /** * Returns the name of the template. * * @return the name of the template */ public String getName() { return fName; } /** * Sets the pattern of the template. * * @param pattern the new pattern of the template * @deprecated Templates should never be modified */ @Deprecated public void setPattern(String pattern) { fPattern= pattern; } /** * Returns the template pattern. * * @return the template pattern */ public String getPattern() { return fPattern; } /** * Returns true if template is enabled and matches the context, * false otherwise. * * @param prefix the prefix (e.g. inside a document) to match * @param contextTypeId the context type id to match * @return true if template is enabled and matches the context, * false otherwise */ public boolean matches(String prefix, String contextTypeId) { return fContextTypeId.equals(contextTypeId); } @Override public boolean equals(Object o) { if (!(o instanceof Template)) return false; Template t= (Template) o; if (t == this) return true; return t.fName.equals(fName) && t.fPattern.equals(fPattern) && t.fContextTypeId.equals(fContextTypeId) && t.fDescription.equals(fDescription) && t.fIsAutoInsertable == fIsAutoInsertable; } /** * Returns the auto insertable property of the template. * * @return the auto insertable property of the template * @since 3.1 */ public boolean isAutoInsertable() { return fIsAutoInsertable; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy