protected void _createChildren(IOutlineNode parentNode, XtendClass xtendClass) { JvmGenericType inferredType = associations.getInferredType(xtendClass); if (inferredType != null) { Set<XtendFunction> dispatchFunctions = newHashSet(); for (XtendMember member : xtendClass.getMembers()) { if (!dispatchFunctions.contains(member) && member instanceof XtendFunction && ((XtendFunction) member).isDispatch()) { for (JvmOperation inferredOperation : filter(associations.getJvmElements(member), JvmOperation.class)) { if (dispatchUtil.isDispatcherFunction(inferredOperation)) { createEObjectNode(parentNode, inferredOperation); final Set<EObject> xtendFunctions = associations.getSourceElements(inferredOperation); dispatchFunctions.addAll(newArrayList(filter(xtendFunctions, XtendFunction.class))); } } } } for (XtendMember member : xtendClass.getMembers()) { if (!dispatchFunctions.contains(member)) createEObjectNode(parentNode, member); } } else { for (XtendMember member : xtendClass.getMembers()) createEObjectNode(parentNode, member); } }
protected void _createChildren(IOutlineNode parentNode, JvmOperation inferredOperation) { List<XtendFunction> xtendFunctions = newArrayList( filter(associations.getSourceElements(inferredOperation), XtendFunction.class)); sort( xtendFunctions, new Comparator<XtendFunction>() { public int compare(XtendFunction arg0, XtendFunction arg1) { return index(arg0) - index(arg1); } }); for (XtendFunction xtendFunction : xtendFunctions) { if (xtendFunction.isDispatch()) createEObjectNode(parentNode, xtendFunction); } }
protected void _createChildren(DocumentRootNode parentNode, XtendFile xtendFile) { if (xtendFile.getPackage() != null) createEStructuralFeatureNode( parentNode, xtendFile, Xtend2Package.Literals.XTEND_FILE__PACKAGE, images.forPackage(), xtendFile.getPackage(), true); if (!xtendFile.getImports().isEmpty()) createEStructuralFeatureNode( parentNode, xtendFile, Xtend2Package.Literals.XTEND_FILE__IMPORTS, images.forImportContainer(), "import declarations", false); if (xtendFile.getXtendClass() != null) createEObjectNode(parentNode, xtendFile.getXtendClass()); }