use of org.eclipse.xtend.core.xtend.XtendTypeDeclaration in project xtext-xtend by eclipse.
the class XtendFileRenameParticipant method createRenameElementContexts.
@Override
protected List<? extends IRenameElementContext> createRenameElementContexts(Object element) {
if (super.getNewName().endsWith(".xtend")) {
IFile file = (IFile) element;
final IPath filePath = file.getFullPath();
final IPath newPath = file.getFullPath().removeLastSegments(1).append(getNewName() + ".xtend");
String className = trimFileExtension(file.getName());
if (className != null) {
ResourceSet resourceSet = resourceSetProvider.get(file.getProject());
URI resourceURI = URI.createPlatformResourceURI(file.getFullPath().toString(), true);
Resource resource = resourceSet.getResource(resourceURI, true);
if (resource != null && !resource.getContents().isEmpty()) {
for (XtendTypeDeclaration type : EcoreUtil2.eAllOfType(resource.getContents().get(0), XtendTypeDeclaration.class)) {
if (equal(className, type.getName())) {
IRenameElementContext renameElementContext = renameContextFactory.createRenameElementContext(type, null, null, (XtextResource) resource);
if (renameElementContext instanceof IChangeRedirector.Aware)
((IChangeRedirector.Aware) renameElementContext).setChangeRedirector(new IChangeRedirector() {
@Override
public IPath getRedirectedPath(IPath source) {
return source.equals(filePath) ? newPath : source;
}
});
return singletonList(renameElementContext);
}
}
}
}
}
return super.createRenameElementContexts(element);
}
use of org.eclipse.xtend.core.xtend.XtendTypeDeclaration in project xtext-xtend by eclipse.
the class XtendUIValidationTests method testJavaDocRefs_Delegation.
@Test
public void testJavaDocRefs_Delegation() throws Exception {
final IJavaProject javaProject = JavaModelManager.getJavaModelManager().getJavaModel().getJavaProject(this.testHelper.getProject());
final String javaSeverity = javaProject.getOption(JavaCore.COMPILER_PB_INVALID_JAVADOC, true);
try {
boolean _notEquals = (!Objects.equal(javaSeverity, "ignore"));
if (_notEquals) {
Assert.fail((("Wrong expectation Java compiler option \'" + JavaCore.COMPILER_PB_INVALID_JAVADOC) + "\' should be \'ignore\' by default"));
}
String otherSeverity = "warning";
StringConcatenation _builder = new StringConcatenation();
_builder.append("class ValidationClazz {");
_builder.newLine();
_builder.append("\t");
_builder.append("/**");
_builder.newLine();
_builder.append("\t");
_builder.append("* {@link List}");
_builder.newLine();
_builder.append("\t");
_builder.append("*/");
_builder.newLine();
_builder.append("\t");
_builder.append("def doStuff(){}");
_builder.newLine();
_builder.append("}");
_builder.newLine();
final XtendFile xtendFile = this.testHelper.xtendFile("ValidationClazz.xtend", _builder.toString());
XtendTypeDeclaration _head = IterableExtensions.<XtendTypeDeclaration>head(xtendFile.getXtendTypes());
final XtendClass clazz = ((XtendClass) _head);
final XtendMember member = IterableExtensions.<XtendMember>head(clazz.getMembers());
this.helper.assertNoIssues(member);
this.cache.clear(xtendFile.eResource());
javaProject.setOption(JavaCore.COMPILER_PB_INVALID_JAVADOC, otherSeverity);
this.helper.assertWarning(member, XtendPackage.Literals.XTEND_FUNCTION, IssueCodes.JAVA_DOC_LINKING_DIAGNOSTIC, "javaDoc", "List", "cannot be resolved to a type");
} finally {
javaProject.setOption(JavaCore.COMPILER_PB_INVALID_JAVADOC, javaSeverity);
}
}
use of org.eclipse.xtend.core.xtend.XtendTypeDeclaration in project xtext-xtend by eclipse.
the class XtendCopyQualifiedNameServiceTest method testJvmOperation_7.
@Test
public void testJvmOperation_7() {
try {
StringConcatenation _builder = new StringConcatenation();
_builder.append("class Foo {");
_builder.newLine();
_builder.append("\t");
_builder.newLine();
_builder.append("\t");
_builder.append("def foo () {");
_builder.newLine();
_builder.append("\t\t");
_builder.append("new Bar<String>.bar(null)");
_builder.newLine();
_builder.append("\t\t");
_builder.append("new Bar<String>.bar(<String>newArrayList)");
_builder.newLine();
_builder.append("\t");
_builder.append("}");
_builder.newLine();
_builder.append("\t");
_builder.newLine();
_builder.append("}");
_builder.newLine();
_builder.newLine();
_builder.append("class Bar<T> {");
_builder.newLine();
_builder.newLine();
_builder.append("\t");
_builder.append("def bar (java.util.List<T> list) {");
_builder.newLine();
_builder.append("\t");
_builder.append("}");
_builder.newLine();
_builder.newLine();
_builder.append("}");
_builder.newLine();
final XtendFile xtendFile = this.parseHelper.parse(_builder, this.getResourceSet());
final XtendTypeDeclaration xtendType = IterableExtensions.<XtendTypeDeclaration>head(xtendFile.getXtendTypes());
XtendMember _head = IterableExtensions.<XtendMember>head(xtendType.getMembers());
XExpression _expression = ((XtendFunction) _head).getExpression();
final XBlockExpression expression = ((XBlockExpression) _expression);
this.assertCopyQualifiedName(expression.getExpressions().get(0), "Bar.bar(List<String>)");
this.assertCopyQualifiedName(expression.getExpressions().get(1), "Bar.bar(ArrayList<String>)");
} catch (Throwable _e) {
throw Exceptions.sneakyThrow(_e);
}
}
use of org.eclipse.xtend.core.xtend.XtendTypeDeclaration in project xtext-xtend by eclipse.
the class XtendCopyQualifiedNameServiceTest method testXtendFunction_4.
@Test
public void testXtendFunction_4() {
try {
StringConcatenation _builder = new StringConcatenation();
_builder.append("class Foo<T> extends java.util.ArrayList<T> {");
_builder.newLine();
_builder.newLine();
_builder.append("\t");
_builder.append("override clear () {");
_builder.newLine();
_builder.append("\t\t");
_builder.append("super.clear");
_builder.newLine();
_builder.append("\t");
_builder.append("}");
_builder.newLine();
_builder.newLine();
_builder.append("\t");
_builder.append("override add(T value) {");
_builder.newLine();
_builder.append("\t\t");
_builder.append("super.add(value)");
_builder.newLine();
_builder.append("\t");
_builder.append("}");
_builder.newLine();
_builder.newLine();
_builder.append("}");
_builder.newLine();
final XtendFile xtendFile = this.parseHelper.parse(_builder, this.getResourceSet());
final XtendTypeDeclaration xtendType = IterableExtensions.<XtendTypeDeclaration>head(xtendFile.getXtendTypes());
this.assertCopyQualifiedName(IterableExtensions.<XtendMember>head(xtendType.getMembers()), "Foo.clear()");
this.assertCopyQualifiedName(IterableExtensions.<XtendMember>head(IterableExtensions.<XtendMember>tail(xtendType.getMembers())), "Foo.add(T)");
} catch (Throwable _e) {
throw Exceptions.sneakyThrow(_e);
}
}
use of org.eclipse.xtend.core.xtend.XtendTypeDeclaration in project xtext-xtend by eclipse.
the class XtendCopyQualifiedNameServiceTest method testJvmOperation_6.
@Test
public void testJvmOperation_6() {
try {
StringConcatenation _builder = new StringConcatenation();
_builder.append("class Foo<T> extends java.util.ArrayList<T> {");
_builder.newLine();
_builder.newLine();
_builder.append("\t");
_builder.append("def bar() {");
_builder.newLine();
_builder.append("\t\t");
_builder.append("clear");
_builder.newLine();
_builder.append("\t\t");
_builder.append("add(null)");
_builder.newLine();
_builder.append("\t\t");
_builder.append("super.clear");
_builder.newLine();
_builder.append("\t\t");
_builder.append("super.add(null)");
_builder.newLine();
_builder.append("\t");
_builder.append("}");
_builder.newLine();
_builder.newLine();
_builder.append("\t");
_builder.append("override clear () {");
_builder.newLine();
_builder.append("\t\t");
_builder.append("super.clear");
_builder.newLine();
_builder.append("\t");
_builder.append("}");
_builder.newLine();
_builder.newLine();
_builder.append("\t");
_builder.append("override add(T value) {");
_builder.newLine();
_builder.append("\t\t");
_builder.append("super.add(value)");
_builder.newLine();
_builder.append("\t");
_builder.append("}");
_builder.newLine();
_builder.newLine();
_builder.append("}");
_builder.newLine();
final XtendFile xtendFile = this.parseHelper.parse(_builder, this.getResourceSet());
final XtendTypeDeclaration xtendType = IterableExtensions.<XtendTypeDeclaration>head(xtendFile.getXtendTypes());
XtendMember _head = IterableExtensions.<XtendMember>head(xtendType.getMembers());
XExpression _expression = ((XtendFunction) _head).getExpression();
final XBlockExpression expression = ((XBlockExpression) _expression);
this.assertCopyQualifiedName(expression.getExpressions().get(0), "Foo.clear()");
this.assertCopyQualifiedName(expression.getExpressions().get(1), "Foo.add(T)");
this.assertCopyQualifiedName(expression.getExpressions().get(2), "java.util.ArrayList.clear()");
this.assertCopyQualifiedName(expression.getExpressions().get(3), "java.util.ArrayList.add(T)");
} catch (Throwable _e) {
throw Exceptions.sneakyThrow(_e);
}
}
Aggregations