/*******************************************************************************
* Copyright (c) 2000, 2006 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.eclipse.che.ide.ext.java.jdt.templates.api;
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat;
/**
* Global variables which are available in any context.
* <p>
* Clients may instantiate the classes contained within this class.
* </p>
*
* @since 3.0
*/
public class GlobalTemplateVariables {
/** The type of the selection variables. */
public static final String SELECTION = "selection"; //$NON-NLS-1$
/** The cursor variable determines the cursor placement after template edition. */
public static class Cursor extends SimpleTemplateVariableResolver {
/** Name of the cursor variable, value= {@value} */
public static final String NAME = "cursor"; //$NON-NLS-1$
/** Creates a new cursor variable */
public Cursor() {
super(NAME, TextTemplateMessages.MESSAGES.variableDescriptionCursor()); //$NON-NLS-1$
setEvaluationString(""); //$NON-NLS-1$
}
}
/** The word selection variable determines templates that work on a full lines selection. */
public static class WordSelection extends SimpleTemplateVariableResolver {
/** Name of the word selection variable, value= {@value} */
public static final String NAME = "word_selection"; //$NON-NLS-1$
/** Creates a new word selection variable */
public WordSelection() {
super(NAME, TextTemplateMessages.MESSAGES.variableDescriptionSelectedWord()); //$NON-NLS-1$
}
protected String resolve(TemplateContext context) {
String selection = context.getVariable(SELECTION);
if (selection == null)
return ""; //$NON-NLS-1$
return selection;
}
}
/** The line selection variable determines templates that work on selected lines. */
public static class LineSelection extends SimpleTemplateVariableResolver {
/** Name of the line selection variable, value= {@value} */
public static final String NAME = "line_selection"; //$NON-NLS-1$
/** Creates a new line selection variable */
public LineSelection() {
super(NAME, TextTemplateMessages.MESSAGES.variableDescriptionSelectedLines()); //$NON-NLS-1$
}
protected String resolve(TemplateContext context) {
String selection = context.getVariable(SELECTION);
if (selection == null)
return ""; //$NON-NLS-1$
return selection;
}
}
/** The dollar variable inserts an escaped dollar symbol. */
public static class Dollar extends SimpleTemplateVariableResolver {
/** Creates a new dollar variable */
public Dollar() {
super("dollar", TextTemplateMessages.MESSAGES.variableDescriptionDollar()); //$NON-NLS-1$ //$NON-NLS-2$
setEvaluationString("$"); //$NON-NLS-1$
}
}
/** The date variable evaluates to the current date. */
public static class Date extends SimpleTemplateVariableResolver {
/** Creates a new date variable */
public Date() {
super("date", TextTemplateMessages.MESSAGES.variableDescriptionDate()); //$NON-NLS-1$ //$NON-NLS-2$
}
protected String resolve(TemplateContext context) {
return DateTimeFormat.getFormat(PredefinedFormat.DATE_MEDIUM).format(new java.util.Date());
}
}
/** The year variable evaluates to the current year. */
public static class Year extends SimpleTemplateVariableResolver {
/** Creates a new year variable */
public Year() {
super("year", TextTemplateMessages.MESSAGES.variableDescriptionYear()); //$NON-NLS-1$ //$NON-NLS-2$
}
protected String resolve(TemplateContext context) {
return DateTimeFormat.getFormat(PredefinedFormat.YEAR).format(new java.util.Date());
}
}
/** The time variable evaluates to the current time. */
public static class Time extends SimpleTemplateVariableResolver {
/** Creates a new time variable */
public Time() {
super("time", TextTemplateMessages.MESSAGES.variableDescriptionTime()); //$NON-NLS-1$ //$NON-NLS-2$
}
/** {@inheritDoc} */
protected String resolve(TemplateContext context) {
return DateTimeFormat.getFormat(PredefinedFormat.TIME_MEDIUM).format(new java.util.Date());
}
}
/** The user variable evaluates to the current user. */
public static class User extends SimpleTemplateVariableResolver {
/** Creates a new user name variable */
public User() {
super("user", TextTemplateMessages.MESSAGES.variableDescriptionUser()); //$NON-NLS-1$ //$NON-NLS-2$
}
/** {@inheritDoc} */
protected String resolve(TemplateContext context) {
// TODO read user name
return "user.name"; //$NON-NLS-1$
}
}
}