/*******************************************************************************
* Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
+ * All rights reserved. This program and the accompanying materials
* are made available under the terms of the Common Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/cpl-v10.html
- *
+ *
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
import org.eclipse.jface.text.templates.TemplateVariableResolver;
public class CodeTemplateContext extends TemplateContext {
-
+
private String fLineDelimiter;
private IJavaProject fProject;
if (!canEvaluate(template))
return null;
-
+
String pattern= changeLineDelimiter(template.getPattern(), fLineDelimiter);
-
+
TemplateTranslator translator= new TemplateTranslator();
TemplateBuffer buffer= translator.translate(pattern);
getContextType().resolve(buffer, this);
return buffer;
}
-
+
private static String changeLineDelimiter(String code, String lineDelim) {
try {
ILineTracker tracker= new DefaultLineTracker();
if (nLines == 1) {
return code;
}
-
+
StringBuffer buf= new StringBuffer();
for (int i= 0; i < nLines; i++) {
if (i != 0) {
// can not happen
return code;
}
- }
+ }
/* (non-Javadoc)
* @see net.sourceforge.phpdt.internal.corext.template.TemplateContext#canEvaluate(net.sourceforge.phpdt.internal.corext.template.Template)
public boolean canEvaluate(Template template) {
return true;
}
-
+
public void setCompilationUnitVariables(ICompilationUnit cu) {
setVariable(CodeTemplateContextType.FILENAME, cu.getElementName());
setVariable(CodeTemplateContextType.PACKAGENAME, cu.getParent().getElementName());
setVariable(CodeTemplateContextType.PROJECTNAME, cu.getJavaProject().getElementName());
}
- public void setFileNameVariable(String filename) {
+ public void setFileNameVariable(String filename, String projectname) {
setVariable(CodeTemplateContextType.FILENAME, filename);
+ setVariable(CodeTemplateContextType.PROJECTNAME, projectname);
}
}