package org.jnario.ui.quickfix; import com.google.common.base.Objects; import com.google.common.collect.Iterators; import java.util.Iterator; import org.eclipse.emf.common.util.TreeIterator; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.xtend.core.xtend.XtendClass; import org.eclipse.xtend.ide.codebuilder.CodeBuilderFactory; import org.eclipse.xtext.common.types.JvmDeclaredType; import org.eclipse.xtext.common.types.JvmType; import org.eclipse.xtext.xbase.lib.Functions.Function1; import org.eclipse.xtext.xbase.lib.IteratorExtensions; @SuppressWarnings("all") public class JnarioCodeBuilderFactory extends CodeBuilderFactory { public Object getSource(final JvmDeclaredType element) { Object _xblockexpression = null; { final XtendClass xtendClass = this.xtendClass(element); boolean _notEquals = (!Objects.equal(xtendClass, null)); if (_notEquals) { return xtendClass; } _xblockexpression = super.getSource(element); } return _xblockexpression; } private XtendClass xtendClass(final JvmType type) { XtendClass _xblockexpression = null; { boolean _equals = Objects.equal(type, null); if (_equals) { return null; } Resource _eResource = type.eResource(); TreeIterator<EObject> _allContents = _eResource.getAllContents(); Iterator<XtendClass> _filter = Iterators.<XtendClass>filter(_allContents, XtendClass.class); final Function1<XtendClass, Boolean> _function = new Function1<XtendClass, Boolean>() { public Boolean apply(final XtendClass it) { String _name = it.getName(); String _simpleName = type.getSimpleName(); return Boolean.valueOf(Objects.equal(_name, _simpleName)); } }; _xblockexpression = IteratorExtensions.<XtendClass>findFirst(_filter, _function); } return _xblockexpression; } }