private void informUserModal(CompletionProposalComputerDescriptor descriptor, IStatus status) { String title = DartTextMessages.CompletionProposalComputerRegistry_error_dialog_title; CompletionProposalCategory category = descriptor.getCategory(); IContributor culprit = descriptor.getContributor(); Set affectedPlugins = getAffectedContributors(category, culprit); final String avoidHint; final String culpritName = culprit == null ? null : culprit.getName(); if (affectedPlugins.isEmpty()) { avoidHint = Messages.format( DartTextMessages.CompletionProposalComputerRegistry_messageAvoidanceHint, new Object[] {culpritName, category.getDisplayName()}); } else { avoidHint = Messages.format( DartTextMessages.CompletionProposalComputerRegistry_messageAvoidanceHintWithWarning, new Object[] {culpritName, category.getDisplayName(), toString(affectedPlugins)}); } String message = status.getMessage(); // inlined from MessageDialog.openError MessageDialog dialog = new MessageDialog( DartToolsPlugin.getActiveWorkbenchShell(), title, null /* default image */, message, MessageDialog.ERROR, new String[] {IDialogConstants.OK_LABEL}, 0) { @Override protected Control createCustomArea(Composite parent) { Link link = new Link(parent, SWT.NONE); link.setText(avoidHint); link.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { PreferencesUtil.createPreferenceDialogOn( getShell(), "com.google.dart.tools.ui.internal.preferences.CodeAssistPreferenceAdvanced", null, null) .open(); //$NON-NLS-1$ } }); GridData gridData = new GridData(SWT.FILL, SWT.BEGINNING, true, false); gridData.widthHint = this.getMinimumMessageWidth(); link.setLayoutData(gridData); return link; } }; dialog.open(); }
/** key is the plugin id, value is the plugin library path */ public static synchronized SortedMap<String, String> getContributedDetectors() { if (contributedDetectors != null) { return contributedDetectors; } TreeMap<String, String> set = new TreeMap<String, String>(); IExtensionRegistry registry = Platform.getExtensionRegistry(); IExtensionPoint point = registry.getExtensionPoint(EXTENSION_POINT_ID); if (point == null) { return set; } IExtension[] extensions = point.getExtensions(); for (IExtension extension : extensions) { IConfigurationElement[] elements = extension.getConfigurationElements(); for (IConfigurationElement configElt : elements) { String libPathAsString; String pluginId; IContributor contributor = null; try { contributor = configElt.getContributor(); if (contributor == null) { throw new IllegalArgumentException("Null contributor"); } pluginId = configElt.getAttribute(PLUGIN_ID); if (pluginId == null) { throw new IllegalArgumentException("Missing '" + PLUGIN_ID + "'"); } libPathAsString = configElt.getAttribute(LIBRARY_PATH); if (libPathAsString == null) { throw new IllegalArgumentException("Missing '" + LIBRARY_PATH + "'"); } libPathAsString = resolveRelativePath(contributor, libPathAsString); if (libPathAsString == null) { throw new IllegalArgumentException("Failed to resolve library path for: " + pluginId); } if (set.containsKey(pluginId)) { throw new IllegalArgumentException("Duplicated '" + pluginId + "' contribution."); } set.put(pluginId, libPathAsString); } catch (Throwable e) { String cName = contributor != null ? contributor.getName() : "unknown contributor"; String message = "Failed to read contribution for '" + EXTENSION_POINT_ID + "' extension point from " + cName; FindbugsPlugin.getDefault().logException(e, message); continue; } } } contributedDetectors = set; return contributedDetectors; }
/** * Returns the names of contributors affected by disabling a category. * * @param category the category that would be disabled * @param culprit the culprit plug-in, which is not included in the returned list * @return the names of the contributors other than <code>culprit</code> that contribute to <code> * category</code> (element type: {@link String}) */ private Set getAffectedContributors(CompletionProposalCategory category, IContributor culprit) { Set affectedPlugins = new HashSet(); for (Iterator it = getProposalComputerDescriptors().iterator(); it.hasNext(); ) { CompletionProposalComputerDescriptor desc = (CompletionProposalComputerDescriptor) it.next(); CompletionProposalCategory cat = desc.getCategory(); if (cat.equals(category)) { IContributor contributor = desc.getContributor(); if (contributor != null && !culprit.equals(contributor)) { affectedPlugins.add(contributor.getName()); } } } return affectedPlugins; }
/** * Parses a configuration definition element. * * @param element A configuration definition element. * @throws CoreException * @throws Exception If anything wrong occurs. */ private Configuration parseConfiguration(IConfigurationElement element) throws CoreException { String name = element.getAttribute("name"); String extension = element.getAttribute("extension"); String type = element.getAttribute("type"); FileFormat format = new FileFormat(extension, type); IConfigurationElement[] children = element.getChildren("import"); children = children[0].getChildren(); parseTransformations(format.getImportTransformations(), children); children = element.getChildren("export"); if (children.length > 0) { children = children[0].getChildren(); parseTransformations(format.getExportTransformations(), children); } Map<String, ObjectType> graphTypes = parseTypes(element.getChildren("graphType")); Map<String, ObjectType> vertexTypes = parseTypes(element.getChildren("vertexType")); Map<String, ObjectType> edgeTypes = parseTypes(element.getChildren("edgeType")); IValidator validator = (IValidator) element.createExecutableExtension("validator"); String refinement = element.getAttribute("refinement"); IRefinementPolicy refinementPolicy = null; if (refinement != null) { refinementPolicy = (IRefinementPolicy) element.createExecutableExtension("refinement"); } IContributor contributor = element.getContributor(); Configuration configuration = new Configuration( name, contributor.getName(), format, graphTypes, vertexTypes, edgeTypes, validator, refinementPolicy); return configuration; }
/** * @param contributor non null * @param libPathAsString non null * @return resolved absolute path for the detector package */ @CheckForNull private static String resolveRelativePath(IContributor contributor, String libPathAsString) { String bundleName = contributor.getName(); Bundle bundle = Platform.getBundle(bundleName); if (bundle == null) { return null; } File bundleFile; try { bundleFile = FileLocator.getBundleFile(bundle); } catch (IOException e) { FindbugsPlugin.getDefault() .logException(e, "Failed to resolve detector library for " + bundle.getSymbolicName()); return null; } boolean runningInDebugger = Boolean.getBoolean("eclipse.pde.launch"); if (!DEFAULT_USE_PLUGIN_JAR.equals(libPathAsString)) { return new Path(bundleFile.getAbsolutePath()).append(libPathAsString).toOSString(); } if (!bundleFile.isDirectory()) { return bundleFile.getAbsolutePath(); } if (runningInDebugger) { // in case we are inside debugger & see bundle as directory return createTemporaryJar(bundleName, bundleFile); } // it's a directory, and we are in the production environment. IllegalArgumentException e = new IllegalArgumentException( "Failed to resolve detector library for " + bundle.getSymbolicName()); String message = "Failed to resolve detector library. '" + bundleFile + "' is a directory and can't be used as FindBugs detector package." + " Please specify '" + LIBRARY_PATH + "' argument as a relative path to the detectors jar file."; FindbugsPlugin.getDefault().logException(e, message); return null; }
@Override public void run(IProgressMonitor progress) throws InvocationTargetException { SubMonitor monitor = SubMonitor.convert(progress, 3); monitor.setTaskName("Loading Templates..."); try { final Set<Template> templates = new LinkedHashSet<>(); final List<String> errors = new LinkedList<>(); // Load from workspace, if one exists Workspace ws = Central.getWorkspaceIfPresent(); if (ws != null) { List<Repository> repos = ws.getPlugins(Repository.class); RepoPluginsBundleLocator locator = new RepoPluginsBundleLocator(ws.getRepositories()); templates.addAll( new ReposTemplateLoader(repos, locator) .findTemplates( templateType, errors, monitor.newChild(1, SubMonitor.SUPPRESS_NONE))); } // Load from the preferences-configured template repository BndPreferences bndPrefs = new BndPreferences(); if (bndPrefs.getEnableTemplateRepo()) { try { FixedIndexedRepo repo = loadRepo(bndPrefs.getTemplateRepoUriList()); RepoPluginsBundleLocator locator = new RepoPluginsBundleLocator(Collections.<RepositoryPlugin>singletonList(repo)); ReposTemplateLoader loader = new ReposTemplateLoader(Collections.<Repository>singletonList(repo), locator); templates.addAll( loader.findTemplates( templateType, errors, monitor.newChild(1, SubMonitor.SUPPRESS_NONE))); } catch (Exception e) { throw new InvocationTargetException(e); } } // Log errors for (String error : errors) { Plugin.getDefault() .getLog() .log(new Status(IStatus.ERROR, Plugin.PLUGIN_ID, 0, error, null)); } // Add the build-in empty template if provided if (emptyTemplate != null) templates.add(emptyTemplate); // Load from extension registry if (templateExtPoint != null) { IConfigurationElement[] elements = Platform.getExtensionRegistry() .getConfigurationElementsFor(Plugin.PLUGIN_ID, templateExtPoint); if (elements == null) elements = new IConfigurationElement[0]; monitor.setWorkRemaining(elements.length); for (IConfigurationElement element : elements) { String elementName = element.getName(); IContributor contributor = element.getContributor(); try { Template extTemplate = (Template) element.createExecutableExtension("class"); templates.add(extTemplate); } catch (CoreException e) { Plugin.getDefault() .getLog() .log( new Status( IStatus.ERROR, Plugin.PLUGIN_ID, 0, String.format( "Error loading template '%s' from bundle %s", elementName, contributor.getName()), e)); } finally { monitor.worked(1); } } } // Display results Control control = viewer.getControl(); if (control != null && !control.isDisposed()) { control .getDisplay() .asyncExec( new Runnable() { @Override public void run() { setTemplates(templates); IconLoaderJob iconLoaderJob = new IconLoaderJob(templates, viewer, loadedImages, 5); iconLoaderJob.setSystem(true); iconLoaderJob.schedule(0); } }); } } finally { monitor.done(); // Restore the original message to the page if (!shell.isDisposed()) shell .getDisplay() .asyncExec( new Runnable() { @Override public void run() { setMessage(originalMessage); } }); } }
public static String generate(final MyxGenBrick b) { MyxGenBrick _xtrycatchfinallyexpression = null; try { String _parentBrickId = b.getParentBrickId(); MyxGenBrick _activeMyxGenBrick = MyxGenWorkspaceExtensions.getActiveMyxGenBrick(_parentBrickId); _xtrycatchfinallyexpression = _activeMyxGenBrick; } catch (final Throwable _t) { if (_t instanceof Exception) { final Exception e = (Exception) _t; _xtrycatchfinallyexpression = null; } else { throw Exceptions.sneakyThrow(_t); } } final MyxGenBrick pb = _xtrycatchfinallyexpression; try { StringConcatenation _builder = new StringConcatenation(); _builder.append("package "); String _stubClassName = b.getStubClassName(); String _packageName = MyxCompUtils.toPackageName(_stubClassName); _builder.append(_packageName, ""); _builder.append(";"); _builder.newLineIfNotEmpty(); _builder.newLine(); { boolean _equals = Objects.equal(pb, null); if (_equals) { _builder.append("import org.archstudio.myx.fw.MyxRegistry;"); _builder.newLine(); } } { Collection<MyxGenInterface> _interfaces = b.getInterfaces(); int _size = _interfaces.size(); boolean _greaterThan = (_size > 0); if (_greaterThan) { _builder.append("import org.archstudio.myx.fw.MyxUtils;"); _builder.newLine(); } } _builder.append("import org.archstudio.myx.fw.IMyxName;"); _builder.newLine(); _builder.newLine(); _builder.append("/*"); _builder.newLine(); _builder.append(" "); _builder.append("* DO NOT EDIT THIS CLASS, it is automatically generated."); _builder.newLine(); _builder.append(" "); _builder.append("* ANY MODIFICATIONS WILL BE OVERWRITTEN."); _builder.newLine(); _builder.append(" "); _builder.append("*"); _builder.newLine(); _builder.append(" "); _builder.append("* To modify, update the \""); String _name = b.getName(); _builder.append(_name, " "); _builder.append("\" MyxGen "); _builder.newLineIfNotEmpty(); _builder.append(" "); _builder.append("* extension in the "); IContributor _contributor = b.getContributor(); String _name_1 = _contributor.getName(); _builder.append(_name_1, " "); _builder.append(" plugin."); _builder.newLineIfNotEmpty(); _builder.append(" "); _builder.append("*/"); _builder.newLine(); _builder.newLine(); _builder.append("/**"); _builder.newLine(); _builder.append(" "); _builder.append("* Abstract Myx brick: "); String _name_2 = b.getName(); _builder.append(_name_2, " "); _builder.newLineIfNotEmpty(); _builder.append(" "); _builder.append("* "); { String _description = b.getDescription(); boolean _notEquals = (!Objects.equal(_description, null)); if (_notEquals) { _builder.append("<p>"); String _description_1 = b.getDescription(); _builder.append(_description_1, " "); } } _builder.newLineIfNotEmpty(); _builder.append(" "); _builder.append("* @generated"); _builder.newLine(); _builder.append(" "); _builder.append("*/"); _builder.newLine(); _builder.append("public abstract class "); String _stubClassName_1 = b.getStubClassName(); String _className = MyxCompUtils.toClassName(_stubClassName_1); _builder.append(_className, ""); _builder.newLineIfNotEmpty(); { boolean _equals_1 = Objects.equal(pb, null); if (_equals_1) { _builder.append("extends org.archstudio.myx.fw.AbstractMyxSimpleBrick"); _builder.newLine(); } else { _builder.append("extends "); String _className_1 = pb.getClassName(); _builder.append(_className_1, ""); _builder.newLineIfNotEmpty(); } } _builder.append("implements org.archstudio.myx.fw.IMyxDynamicBrick"); _builder.newLine(); { Collection<MyxGenInterface> _interfaces_1 = b.getInterfaces(); final Function1<MyxGenInterface, Boolean> _function = new Function1<MyxGenInterface, Boolean>() { public Boolean apply(final MyxGenInterface i) { EServiceObjectDelegate _serviceObjectDelegate = i.getServiceObjectDelegate(); boolean _equals = Objects.equal(_serviceObjectDelegate, EServiceObjectDelegate.brick); return Boolean.valueOf(_equals); } }; Iterable<MyxGenInterface> _filter = IterableExtensions.<MyxGenInterface>filter(_interfaces_1, _function); boolean _hasElements = false; for (final MyxGenInterface i : _filter) { if (!_hasElements) { _hasElements = true; _builder.append(", ", ""); } else { _builder.appendImmediate(", ", ""); } String _className_2 = i.getClassName(); _builder.append(_className_2, ""); } } _builder.newLineIfNotEmpty(); _builder.append("{"); _builder.newLine(); _builder.append("\t"); _builder.newLine(); { boolean _notEquals_1 = (!Objects.equal(pb, null)); if (_notEquals_1) { _builder.append("\t"); IContributor _contributor_1 = pb.getContributor(); String _name_3 = _contributor_1.getName(); String _className_3 = pb.getClassName(); String _constructorsFor = MyxCompUtils.constructorsFor(b, _name_3, _className_3); _builder.append(_constructorsFor, " "); _builder.newLineIfNotEmpty(); } else { _builder.append("\t"); _builder.append("/**"); _builder.newLine(); _builder.append("\t"); _builder.append(" "); _builder.append("* The registry of objects for this brick."); _builder.newLine(); _builder.append("\t"); _builder.append(" "); _builder.append("* @generated"); _builder.newLine(); _builder.append("\t"); _builder.append(" "); _builder.append("*/"); _builder.newLine(); _builder.append("\t"); _builder.append( "protected final MyxRegistry myxRegistry = MyxRegistry.getSharedInstance();"); _builder.newLine(); _builder.append("\t"); _builder.newLine(); _builder.append("\t"); _builder.append("/**"); _builder.newLine(); _builder.append("\t"); _builder.append(" "); _builder.append("* Register this brick instance with the registry."); _builder.newLine(); _builder.append("\t"); _builder.append(" "); _builder.append("* @generated"); _builder.newLine(); _builder.append("\t"); _builder.append(" "); _builder.append("*/"); _builder.newLine(); _builder.append("\t"); _builder.append("@Override"); _builder.newLine(); _builder.append("\t"); _builder.append("public void begin(){"); _builder.newLine(); _builder.append("\t"); _builder.append("\t"); _builder.append("super.begin();"); _builder.newLine(); _builder.append("\t"); _builder.append("\t"); _builder.append("myxRegistry.register(this);"); _builder.newLine(); _builder.append("\t"); _builder.append("}"); _builder.newLine(); _builder.append("\t"); _builder.newLine(); _builder.append("\t"); _builder.append("/**"); _builder.newLine(); _builder.append("\t"); _builder.append(" "); _builder.append("* Unregister this brick instance with the registry."); _builder.newLine(); _builder.append("\t"); _builder.append(" "); _builder.append("* @generated"); _builder.newLine(); _builder.append("\t"); _builder.append(" "); _builder.append("*/"); _builder.newLine(); _builder.append("\t"); _builder.append("@Override"); _builder.newLine(); _builder.append("\t"); _builder.append("public void end(){"); _builder.newLine(); _builder.append("\t"); _builder.append("\t"); _builder.append("myxRegistry.unregister(this);"); _builder.newLine(); _builder.append("\t"); _builder.append("\t"); _builder.append("super.end();"); _builder.newLine(); _builder.append("\t"); _builder.append("}"); _builder.newLine(); } } _builder.append("\t"); _builder.newLine(); { Collection<MyxGenInterface> _interfaces_2 = b.getInterfaces(); for (final MyxGenInterface i_1 : _interfaces_2) { _builder.append("\t"); _builder.append("/**"); _builder.newLine(); _builder.append("\t"); _builder.append(" "); _builder.append("* Myx name for the <code>"); String _name_4 = i_1.getName(); _builder.append(_name_4, " "); _builder.append("</code> interface."); _builder.newLineIfNotEmpty(); _builder.append("\t"); _builder.append(" "); _builder.append("* "); { String _description_2 = i_1.getDescription(); boolean _notEquals_2 = (!Objects.equal(_description_2, null)); if (_notEquals_2) { _builder.append("<p>"); String _description_3 = i_1.getDescription(); _builder.append(_description_3, " "); } } _builder.newLineIfNotEmpty(); _builder.append("\t"); _builder.append(" "); _builder.append("* @generated"); _builder.newLine(); _builder.append("\t"); _builder.append(" "); _builder.append("*/"); _builder.newLine(); _builder.append("\t"); _builder.append("public static final IMyxName "); EMyxInterfaceDirection _direction = i_1.getDirection(); String _name_5 = _direction.name(); String _lowerCase = _name_5.toLowerCase(); String _name_6 = i_1.getName(); String _firstUpper = StringExtensions.toFirstUpper(_name_6); String _plus = (_lowerCase + _firstUpper); String _constantName = MyxCompUtils.toConstantName(_plus); _builder.append(_constantName, " "); _builder.append(" = MyxUtils.createName(\""); String _id = i_1.getId(); _builder.append(_id, " "); _builder.append("\");"); _builder.newLineIfNotEmpty(); _builder.append("\t"); _builder.newLine(); { EServiceObjectDelegate _serviceObjectDelegate = i_1.getServiceObjectDelegate(); boolean _isNeedsVariable = _serviceObjectDelegate.isNeedsVariable(); if (_isNeedsVariable) { _builder.append("\t"); _builder.append("/**"); _builder.newLine(); _builder.append("\t"); _builder.append(" "); _builder.append("* Service object"); { boolean _isSingle = i_1.isSingle(); boolean _not = (!_isSingle); if (_not) { _builder.append("s"); } } _builder.append(" for the "); String _name_7 = i_1.getName(); _builder.append(_name_7, " "); _builder.append(" interface."); _builder.newLineIfNotEmpty(); _builder.append("\t"); _builder.append(" "); _builder.append("* @see #"); EMyxInterfaceDirection _direction_1 = i_1.getDirection(); String _name_8 = _direction_1.name(); String _lowerCase_1 = _name_8.toLowerCase(); String _name_9 = i_1.getName(); String _firstUpper_1 = StringExtensions.toFirstUpper(_name_9); String _plus_1 = (_lowerCase_1 + _firstUpper_1); String _constantName_1 = MyxCompUtils.toConstantName(_plus_1); _builder.append(_constantName_1, " "); _builder.newLineIfNotEmpty(); _builder.append("\t"); _builder.append(" "); _builder.append("* @generated"); _builder.newLine(); _builder.append("\t"); _builder.append(" "); _builder.append("*/"); _builder.newLine(); { boolean _isSingle_1 = i_1.isSingle(); if (_isSingle_1) { _builder.append("\t"); _builder.append("protected "); String _className_4 = i_1.getClassName(); _builder.append(_className_4, " "); _builder.append(" "); String _name_10 = i_1.getName(); _builder.append(_name_10, " "); _builder.append(" = null;"); _builder.newLineIfNotEmpty(); } else { _builder.append("\t"); _builder.append("protected final java.util.Collection<"); String _className_5 = i_1.getClassName(); _builder.append(_className_5, " "); _builder.append("> "); String _name_11 = i_1.getName(); _builder.append(_name_11, " "); _builder.append(" = new java.util.concurrent.CopyOnWriteArrayList<"); String _className_6 = i_1.getClassName(); _builder.append(_className_6, " "); _builder.append(">();"); _builder.newLineIfNotEmpty(); } } } } _builder.append("\t"); _builder.newLine(); { EServiceObjectDelegate _serviceObjectDelegate_1 = i_1.getServiceObjectDelegate(); boolean _isNeedsProxy = _serviceObjectDelegate_1.isNeedsProxy(); if (_isNeedsProxy) { _builder.append("\t"); _builder.append("/**"); _builder.newLine(); _builder.append("\t"); _builder.append(" "); _builder.append("* Service object proxy for the "); String _name_12 = i_1.getName(); _builder.append(_name_12, " "); _builder.append(" interface."); _builder.newLineIfNotEmpty(); _builder.append("\t"); _builder.append(" "); _builder.append("* Calls to this proxy object are automatically delegated to "); { EServiceObjectDelegate _serviceObjectDelegate_2 = i_1.getServiceObjectDelegate(); boolean _equals_2 = Objects.equal(_serviceObjectDelegate_2, EServiceObjectDelegate.myxRegistry); if (_equals_2) { _builder.append("all service objects in the MyxRegistry of type "); String _className_7 = i_1.getClassName(); _builder.append(_className_7, " "); _builder.append("."); } else { _builder.append("all connections on the interface"); } } _builder.newLineIfNotEmpty(); _builder.append("\t"); _builder.append("* @see #"); EMyxInterfaceDirection _direction_2 = i_1.getDirection(); String _name_13 = _direction_2.name(); String _lowerCase_2 = _name_13.toLowerCase(); String _name_14 = i_1.getName(); String _firstUpper_2 = StringExtensions.toFirstUpper(_name_14); String _plus_2 = (_lowerCase_2 + _firstUpper_2); String _constantName_2 = MyxCompUtils.toConstantName(_plus_2); _builder.append(_constantName_2, " "); _builder.newLineIfNotEmpty(); _builder.append("\t"); _builder.append("* @generated"); _builder.newLine(); _builder.append("\t"); _builder.append("*/"); _builder.newLine(); _builder.append("\t"); _builder.append("protected final "); String _className_8 = i_1.getClassName(); _builder.append(_className_8, " "); _builder.append(" "); String _name_15 = i_1.getName(); _builder.append(_name_15, " "); _builder.append("Proxy ="); _builder.newLineIfNotEmpty(); _builder.append("\t"); _builder.append("\t"); _builder.append("("); String _className_9 = i_1.getClassName(); _builder.append(_className_9, " "); _builder.append(") java.lang.reflect.Proxy.newProxyInstance("); _builder.newLineIfNotEmpty(); _builder.append("\t"); _builder.append("\t\t"); String _className_10 = i_1.getClassName(); _builder.append(_className_10, " "); _builder.append(".class.getClassLoader(), "); _builder.newLineIfNotEmpty(); _builder.append("\t"); _builder.append("\t\t"); _builder.append("new Class[] { "); String _className_11 = i_1.getClassName(); _builder.append(_className_11, " "); _builder.append(".class },"); _builder.newLineIfNotEmpty(); _builder.append("\t"); _builder.append("\t\t"); _builder.append("new java.lang.reflect.InvocationHandler() {"); _builder.newLine(); _builder.append("\t"); _builder.append("\t\t\t"); _builder.append("@Override"); _builder.newLine(); _builder.append("\t"); _builder.append("\t\t\t"); _builder.append( "public Object invoke(Object proxy, java.lang.reflect.Method method, Object[] args) throws Throwable {"); _builder.newLine(); { EServiceObjectDelegate _serviceObjectDelegate_3 = i_1.getServiceObjectDelegate(); boolean _equals_3 = Objects.equal(_serviceObjectDelegate_3, EServiceObjectDelegate.myxRegistry); if (_equals_3) { _builder.append("\t"); _builder.append("\t\t\t\t"); _builder.append("for ("); String _className_12 = i_1.getClassName(); _builder.append(_className_12, " "); _builder.append(" o : myxRegistry.getObjects("); String _stubClassName_2 = b.getStubClassName(); String _className_13 = MyxCompUtils.toClassName(_stubClassName_2); _builder.append(_className_13, " "); _builder.append(".this, "); String _className_14 = i_1.getClassName(); _builder.append(_className_14, " "); _builder.append(".class)) {"); _builder.newLineIfNotEmpty(); } else { boolean _isSingle_2 = i_1.isSingle(); boolean _not_1 = (!_isSingle_2); if (_not_1) { _builder.append("\t"); _builder.append("\t\t\t\t"); _builder.append("for ("); String _className_15 = i_1.getClassName(); _builder.append(_className_15, " "); _builder.append(" o : "); String _name_16 = i_1.getName(); _builder.append(_name_16, " "); _builder.append(") {"); _builder.newLineIfNotEmpty(); } else { _builder.append("\t"); _builder.append("\t\t\t\t"); String _className_16 = i_1.getClassName(); _builder.append(_className_16, " "); _builder.append(" o = "); String _name_17 = i_1.getName(); _builder.append(_name_17, " "); _builder.append(";"); _builder.newLineIfNotEmpty(); _builder.append("\t"); _builder.append("\t\t\t\t"); _builder.append("if (o == null) {"); _builder.newLine(); _builder.append("\t"); _builder.append("\t\t\t\t"); _builder.append("\t"); _builder.append("throw new NullPointerException(\""); String _name_18 = i_1.getName(); _builder.append(_name_18, " "); _builder.append("\");"); _builder.newLineIfNotEmpty(); _builder.append("\t"); _builder.append("\t\t\t\t"); _builder.append("}"); _builder.newLine(); _builder.append("\t"); _builder.append("\t\t\t\t"); _builder.append("else {"); _builder.newLine(); } } } _builder.append("\t"); _builder.append("\t\t\t\t"); _builder.append("try {"); _builder.newLine(); _builder.append("\t"); _builder.append("\t\t\t\t\t"); _builder.append("method.invoke(o, args);"); _builder.newLine(); _builder.append("\t"); _builder.append("\t\t\t\t"); _builder.append("}"); _builder.newLine(); _builder.append("\t"); _builder.append("\t\t\t\t"); _builder.append("catch (Exception e) {"); _builder.newLine(); _builder.append("\t"); _builder.append("\t\t\t\t\t"); _builder.append("e.printStackTrace();"); _builder.newLine(); _builder.append("\t"); _builder.append("\t\t\t\t"); _builder.append("}"); _builder.newLine(); _builder.append("\t"); _builder.append("\t\t\t\t"); _builder.append("}"); _builder.newLine(); _builder.append("\t"); _builder.append("\t\t\t"); _builder.append("return null;"); _builder.newLine(); _builder.append("\t"); _builder.append("\t\t\t"); _builder.append("}"); _builder.newLine(); _builder.append("\t"); _builder.append("\t"); _builder.append("});"); _builder.newLine(); } } _builder.newLine(); { boolean _isGenerateGetter = i_1.isGenerateGetter(); if (_isGenerateGetter) { _builder.append("\t"); _builder.append("/**"); _builder.newLine(); _builder.append("\t"); _builder.append("* Returns the service object(s) for the "); String _name_19 = i_1.getName(); _builder.append(_name_19, " "); _builder.append(" interface."); _builder.newLineIfNotEmpty(); _builder.append("\t"); _builder.append("* @see #"); EMyxInterfaceDirection _direction_3 = i_1.getDirection(); String _name_20 = _direction_3.name(); String _lowerCase_3 = _name_20.toLowerCase(); String _name_21 = i_1.getName(); String _firstUpper_3 = StringExtensions.toFirstUpper(_name_21); String _plus_3 = (_lowerCase_3 + _firstUpper_3); String _constantName_3 = MyxCompUtils.toConstantName(_plus_3); _builder.append(_constantName_3, " "); _builder.newLineIfNotEmpty(); _builder.append("\t"); _builder.append("* @generated"); _builder.newLine(); _builder.append("\t"); _builder.append("*/"); _builder.newLine(); { EServiceObjectDelegate _serviceObjectDelegate_4 = i_1.getServiceObjectDelegate(); boolean _isNeedsProxy_1 = _serviceObjectDelegate_4.isNeedsProxy(); if (_isNeedsProxy_1) { _builder.append("\t"); _builder.append("public "); String _className_17 = i_1.getClassName(); _builder.append(_className_17, " "); _builder.append(" get"); String _name_22 = i_1.getName(); String _firstUpper_4 = StringExtensions.toFirstUpper(_name_22); _builder.append(_firstUpper_4, " "); _builder.append("() {"); _builder.newLineIfNotEmpty(); } else { _builder.append("\t"); _builder.append("public "); { boolean _isSingle_3 = i_1.isSingle(); if (_isSingle_3) { String _className_18 = i_1.getClassName(); _builder.append(_className_18, " "); } else { _builder.append("java.util.Collection<"); String _className_19 = i_1.getClassName(); _builder.append(_className_19, " "); _builder.append(">"); } } _builder.append(" get"); String _name_23 = i_1.getName(); String _firstUpper_5 = StringExtensions.toFirstUpper(_name_23); _builder.append(_firstUpper_5, " "); _builder.append("() {"); _builder.newLineIfNotEmpty(); } } { EServiceObjectDelegate _serviceObjectDelegate_5 = i_1.getServiceObjectDelegate(); boolean _equals_4 = Objects.equal(_serviceObjectDelegate_5, EServiceObjectDelegate.brick); if (_equals_4) { _builder.append("\t"); _builder.append("\t"); _builder.append("return this;"); _builder.newLine(); } else { { boolean _and = false; EServiceObjectDelegate _serviceObjectDelegate_6 = i_1.getServiceObjectDelegate(); boolean _isNeedsProxy_2 = _serviceObjectDelegate_6.isNeedsProxy(); boolean _not_2 = (!_isNeedsProxy_2); if (!_not_2) { _and = false; } else { boolean _isSingle_4 = i_1.isSingle(); _and = (_not_2 && _isSingle_4); } if (_and) { _builder.append("\t"); _builder.append("\t"); _builder.append("if ("); String _name_24 = i_1.getName(); _builder.append(_name_24, " "); _builder.append(" == null) {"); _builder.newLineIfNotEmpty(); _builder.append("\t"); _builder.append("\t"); _builder.append("\t"); _builder.append( "throw new NullPointerException(\"Uninitialized service object: "); String _name_25 = i_1.getName(); _builder.append(_name_25, " "); _builder.append("\");"); _builder.newLineIfNotEmpty(); _builder.append("\t"); _builder.append("\t"); _builder.append("}"); _builder.newLine(); } } _builder.append("\t"); _builder.append("\t"); _builder.append("return "); String _name_26 = i_1.getName(); _builder.append(_name_26, " "); { EServiceObjectDelegate _serviceObjectDelegate_7 = i_1.getServiceObjectDelegate(); boolean _isNeedsProxy_3 = _serviceObjectDelegate_7.isNeedsProxy(); if (_isNeedsProxy_3) { _builder.append("Proxy"); } } _builder.append(";"); _builder.newLineIfNotEmpty(); } } _builder.append("\t"); _builder.append("}"); _builder.newLine(); } } _builder.newLine(); } } _builder.append("\t"); _builder.newLine(); _builder.append("\t"); _builder.append("/**"); _builder.newLine(); _builder.append("\t "); _builder.append("* Returns service object(s) for IN interfaces."); _builder.newLine(); { Collection<MyxGenInterface> _interfaces_3 = b.getInterfaces(); final Function1<MyxGenInterface, Boolean> _function_1 = new Function1<MyxGenInterface, Boolean>() { public Boolean apply(final MyxGenInterface i) { EMyxInterfaceDirection _direction = i.getDirection(); boolean _equals = Objects.equal(_direction, EMyxInterfaceDirection.IN); return Boolean.valueOf(_equals); } }; Iterable<MyxGenInterface> _filter_1 = IterableExtensions.<MyxGenInterface>filter(_interfaces_3, _function_1); for (final MyxGenInterface i_2 : _filter_1) { _builder.append("\t"); _builder.append("* @see #"); EMyxInterfaceDirection _direction_4 = i_2.getDirection(); String _name_27 = _direction_4.name(); String _lowerCase_4 = _name_27.toLowerCase(); String _name_28 = i_2.getName(); String _firstUpper_6 = StringExtensions.toFirstUpper(_name_28); String _plus_4 = (_lowerCase_4 + _firstUpper_6); String _constantName_4 = MyxCompUtils.toConstantName(_plus_4); _builder.append(_constantName_4, " "); _builder.newLineIfNotEmpty(); } } _builder.append("\t"); _builder.append("* @generated"); _builder.newLine(); _builder.append("\t"); _builder.append("*/"); _builder.newLine(); _builder.append("\t"); _builder.append("@Override"); _builder.newLine(); _builder.append("\t"); _builder.append("public Object getServiceObject(IMyxName interfaceName) {"); _builder.newLine(); { Collection<MyxGenInterface> _interfaces_4 = b.getInterfaces(); final Function1<MyxGenInterface, Boolean> _function_2 = new Function1<MyxGenInterface, Boolean>() { public Boolean apply(final MyxGenInterface i) { EMyxInterfaceDirection _direction = i.getDirection(); boolean _equals = Objects.equal(_direction, EMyxInterfaceDirection.IN); return Boolean.valueOf(_equals); } }; Iterable<MyxGenInterface> _filter_2 = IterableExtensions.<MyxGenInterface>filter(_interfaces_4, _function_2); for (final MyxGenInterface i_3 : _filter_2) { _builder.append("\t"); _builder.append("if(interfaceName.equals("); EMyxInterfaceDirection _direction_5 = i_3.getDirection(); String _name_29 = _direction_5.name(); String _lowerCase_5 = _name_29.toLowerCase(); String _name_30 = i_3.getName(); String _firstUpper_7 = StringExtensions.toFirstUpper(_name_30); String _plus_5 = (_lowerCase_5 + _firstUpper_7); String _constantName_5 = MyxCompUtils.toConstantName(_plus_5); _builder.append(_constantName_5, " "); _builder.append(")) {"); _builder.newLineIfNotEmpty(); { EServiceObjectDelegate _serviceObjectDelegate_8 = i_3.getServiceObjectDelegate(); boolean _equals_5 = Objects.equal(_serviceObjectDelegate_8, EServiceObjectDelegate.brick); if (_equals_5) { _builder.append("\t"); _builder.append("\t"); _builder.append("return this;"); _builder.newLine(); } else { { boolean _and_1 = false; EServiceObjectDelegate _serviceObjectDelegate_9 = i_3.getServiceObjectDelegate(); boolean _isNeedsProxy_4 = _serviceObjectDelegate_9.isNeedsProxy(); boolean _not_3 = (!_isNeedsProxy_4); if (!_not_3) { _and_1 = false; } else { boolean _isSingle_5 = i_3.isSingle(); _and_1 = (_not_3 && _isSingle_5); } if (_and_1) { _builder.append("\t"); _builder.append("\t"); _builder.append("if ("); String _name_31 = i_3.getName(); _builder.append(_name_31, " "); _builder.append(" == null) {"); _builder.newLineIfNotEmpty(); _builder.append("\t"); _builder.append("\t"); _builder.append("\t"); _builder.append( "throw new NullPointerException(\"Uninitialized service object: "); String _name_32 = i_3.getName(); _builder.append(_name_32, " "); _builder.append("\");"); _builder.newLineIfNotEmpty(); _builder.append("\t"); _builder.append("\t"); _builder.append("}"); _builder.newLine(); } } _builder.append("\t"); _builder.append("\t"); _builder.append("return "); String _name_33 = i_3.getName(); _builder.append(_name_33, " "); { EServiceObjectDelegate _serviceObjectDelegate_10 = i_3.getServiceObjectDelegate(); boolean _isNeedsProxy_5 = _serviceObjectDelegate_10.isNeedsProxy(); if (_isNeedsProxy_5) { _builder.append("Proxy"); } } _builder.append(";"); _builder.newLineIfNotEmpty(); } } _builder.append("\t"); _builder.append("}"); _builder.newLine(); } } { String _parentBrickId_1 = b.getParentBrickId(); boolean _equals_6 = Objects.equal(_parentBrickId_1, null); if (_equals_6) { _builder.append("\t"); _builder.append( "throw new IllegalArgumentException(\"Unhandled interface: \"+interfaceName.getName());"); _builder.newLine(); } else { _builder.append("\t"); _builder.append("return super.getServiceObject(interfaceName);"); _builder.newLine(); } } _builder.append("\t"); _builder.append("}"); _builder.newLine(); _builder.newLine(); _builder.append("\t"); _builder.append("/**"); _builder.newLine(); _builder.append("\t"); _builder.append("* Update service objects based on connected OUT interfaces."); _builder.newLine(); { Collection<MyxGenInterface> _interfaces_5 = b.getInterfaces(); final Function1<MyxGenInterface, Boolean> _function_3 = new Function1<MyxGenInterface, Boolean>() { public Boolean apply(final MyxGenInterface i) { EMyxInterfaceDirection _direction = i.getDirection(); boolean _equals = Objects.equal(_direction, EMyxInterfaceDirection.OUT); return Boolean.valueOf(_equals); } }; Iterable<MyxGenInterface> _filter_3 = IterableExtensions.<MyxGenInterface>filter(_interfaces_5, _function_3); for (final MyxGenInterface i_4 : _filter_3) { _builder.append("\t"); _builder.append("* @see #"); EMyxInterfaceDirection _direction_6 = i_4.getDirection(); String _name_34 = _direction_6.name(); String _lowerCase_6 = _name_34.toLowerCase(); String _name_35 = i_4.getName(); String _firstUpper_8 = StringExtensions.toFirstUpper(_name_35); String _plus_6 = (_lowerCase_6 + _firstUpper_8); String _constantName_6 = MyxCompUtils.toConstantName(_plus_6); _builder.append(_constantName_6, " "); _builder.newLineIfNotEmpty(); } } _builder.append("\t"); _builder.append("* @generated"); _builder.newLine(); _builder.append("\t"); _builder.append("*/"); _builder.newLine(); _builder.append("\t"); _builder.append("@Override"); _builder.newLine(); _builder.append("\t"); _builder.append( "public void interfaceConnected(IMyxName interfaceName, Object serviceObject) {"); _builder.newLine(); _builder.append("\t\t"); _builder.append("if (serviceObject == null)"); _builder.newLine(); _builder.append("\t\t\t"); _builder.append("throw new NullPointerException(interfaceName.getName());"); _builder.newLine(); { Collection<MyxGenInterface> _interfaces_6 = b.getInterfaces(); final Function1<MyxGenInterface, Boolean> _function_4 = new Function1<MyxGenInterface, Boolean>() { public Boolean apply(final MyxGenInterface i) { EMyxInterfaceDirection _direction = i.getDirection(); boolean _equals = Objects.equal(_direction, EMyxInterfaceDirection.OUT); return Boolean.valueOf(_equals); } }; Iterable<MyxGenInterface> _filter_4 = IterableExtensions.<MyxGenInterface>filter(_interfaces_6, _function_4); for (final MyxGenInterface i_5 : _filter_4) { _builder.newLine(); _builder.append("\t"); _builder.append("if(interfaceName.equals("); EMyxInterfaceDirection _direction_7 = i_5.getDirection(); String _name_36 = _direction_7.name(); String _lowerCase_7 = _name_36.toLowerCase(); String _name_37 = i_5.getName(); String _firstUpper_9 = StringExtensions.toFirstUpper(_name_37); String _plus_7 = (_lowerCase_7 + _firstUpper_9); String _constantName_7 = MyxCompUtils.toConstantName(_plus_7); _builder.append(_constantName_7, " "); _builder.append(")) {"); _builder.newLineIfNotEmpty(); { boolean _isSingle_6 = i_5.isSingle(); if (_isSingle_6) { _builder.append("\t"); _builder.append("\t\t"); _builder.append("if ("); String _name_38 = i_5.getName(); _builder.append(_name_38, " "); _builder.append(" != null)"); _builder.newLineIfNotEmpty(); _builder.append("\t"); _builder.append("\t\t"); _builder.append("\t"); _builder.append( "throw new IllegalStateException(\"Only a single connection is supported on interface: "); String _name_39 = i_5.getName(); _builder.append(_name_39, " "); _builder.append("\");"); _builder.newLineIfNotEmpty(); _builder.append("\t"); _builder.append("\t\t"); String _name_40 = i_5.getName(); _builder.append(_name_40, " "); _builder.append(" = ("); String _className_20 = i_5.getClassName(); _builder.append(_className_20, " "); _builder.append(") serviceObject;"); _builder.newLineIfNotEmpty(); } else { _builder.append("\t"); _builder.append("\t\t"); String _name_41 = i_5.getName(); _builder.append(_name_41, " "); _builder.append(".add(("); String _className_21 = i_5.getClassName(); _builder.append(_className_21, " "); _builder.append(") serviceObject);"); _builder.newLineIfNotEmpty(); } } _builder.append("\t"); _builder.append("\t\t"); _builder.append("return;"); _builder.newLine(); _builder.append("\t"); _builder.append("}"); _builder.newLine(); } } _builder.append("\t"); _builder.newLine(); { String _parentBrickId_2 = b.getParentBrickId(); boolean _equals_7 = Objects.equal(_parentBrickId_2, null); if (_equals_7) { _builder.append("\t"); _builder.append( "throw new IllegalArgumentException(\"Unhandled interface: \"+interfaceName.getName());"); _builder.newLine(); } else { _builder.append("\t"); _builder.append("super.interfaceConnected(interfaceName, serviceObject);"); _builder.newLine(); } } _builder.append("\t"); _builder.append("}"); _builder.newLine(); _builder.newLine(); _builder.append("\t"); _builder.append("/**"); _builder.newLine(); _builder.append("\t"); _builder.append("* Update service objects based on disconnecting OUT interfaces."); _builder.newLine(); { Collection<MyxGenInterface> _interfaces_7 = b.getInterfaces(); final Function1<MyxGenInterface, Boolean> _function_5 = new Function1<MyxGenInterface, Boolean>() { public Boolean apply(final MyxGenInterface i) { EMyxInterfaceDirection _direction = i.getDirection(); boolean _equals = Objects.equal(_direction, EMyxInterfaceDirection.OUT); return Boolean.valueOf(_equals); } }; Iterable<MyxGenInterface> _filter_5 = IterableExtensions.<MyxGenInterface>filter(_interfaces_7, _function_5); for (final MyxGenInterface i_6 : _filter_5) { _builder.append("\t"); _builder.append("* @see #"); EMyxInterfaceDirection _direction_8 = i_6.getDirection(); String _name_42 = _direction_8.name(); String _lowerCase_8 = _name_42.toLowerCase(); String _name_43 = i_6.getName(); String _firstUpper_10 = StringExtensions.toFirstUpper(_name_43); String _plus_8 = (_lowerCase_8 + _firstUpper_10); String _constantName_8 = MyxCompUtils.toConstantName(_plus_8); _builder.append(_constantName_8, " "); _builder.newLineIfNotEmpty(); } } _builder.append("\t"); _builder.append("* @generated"); _builder.newLine(); _builder.append("\t"); _builder.append("*/"); _builder.newLine(); _builder.append("\t"); _builder.append("@Override"); _builder.newLine(); _builder.append("\t"); _builder.append( "public void interfaceDisconnecting(IMyxName interfaceName, Object serviceObject) {"); _builder.newLine(); _builder.append("\t\t"); _builder.append("if (serviceObject == null)"); _builder.newLine(); _builder.append("\t\t\t"); _builder.append("throw new NullPointerException(interfaceName.getName());"); _builder.newLine(); { Collection<MyxGenInterface> _interfaces_8 = b.getInterfaces(); final Function1<MyxGenInterface, Boolean> _function_6 = new Function1<MyxGenInterface, Boolean>() { public Boolean apply(final MyxGenInterface i) { EMyxInterfaceDirection _direction = i.getDirection(); boolean _equals = Objects.equal(_direction, EMyxInterfaceDirection.OUT); return Boolean.valueOf(_equals); } }; Iterable<MyxGenInterface> _filter_6 = IterableExtensions.<MyxGenInterface>filter(_interfaces_8, _function_6); for (final MyxGenInterface i_7 : _filter_6) { _builder.newLine(); _builder.append("\t"); _builder.append("if(interfaceName.equals("); EMyxInterfaceDirection _direction_9 = i_7.getDirection(); String _name_44 = _direction_9.name(); String _lowerCase_9 = _name_44.toLowerCase(); String _name_45 = i_7.getName(); String _firstUpper_11 = StringExtensions.toFirstUpper(_name_45); String _plus_9 = (_lowerCase_9 + _firstUpper_11); String _constantName_9 = MyxCompUtils.toConstantName(_plus_9); _builder.append(_constantName_9, " "); _builder.append(")) {"); _builder.newLineIfNotEmpty(); { boolean _isSingle_7 = i_7.isSingle(); if (_isSingle_7) { _builder.append("\t"); _builder.append("\t\t"); _builder.append("if ("); String _name_46 = i_7.getName(); _builder.append(_name_46, " "); _builder.append(" == null)"); _builder.newLineIfNotEmpty(); _builder.append("\t"); _builder.append("\t\t"); _builder.append("\t"); _builder.append( "throw new IllegalStateException(\"A connection was never made on interface: "); String _name_47 = i_7.getName(); _builder.append(_name_47, " "); _builder.append("\");"); _builder.newLineIfNotEmpty(); _builder.append("\t"); _builder.append("\t\t"); String _name_48 = i_7.getName(); _builder.append(_name_48, " "); _builder.append(" = null;"); _builder.newLineIfNotEmpty(); } else { _builder.append("\t"); _builder.append("\t\t"); String _name_49 = i_7.getName(); _builder.append(_name_49, " "); _builder.append(".remove(serviceObject);"); _builder.newLineIfNotEmpty(); } } _builder.append("\t"); _builder.append("\t\t"); _builder.append("return;"); _builder.newLine(); _builder.append("\t"); _builder.append("}"); _builder.newLine(); } } _builder.append("\t"); _builder.newLine(); { String _parentBrickId_3 = b.getParentBrickId(); boolean _equals_8 = Objects.equal(_parentBrickId_3, null); if (_equals_8) { _builder.append("\t"); _builder.append( "throw new IllegalArgumentException(\"Unhandled interface: \"+interfaceName.getName());"); _builder.newLine(); } else { _builder.append("\t"); _builder.append("super.interfaceDisconnecting(interfaceName, serviceObject);"); _builder.newLine(); } } _builder.append("\t"); _builder.append("}"); _builder.newLine(); _builder.newLine(); _builder.append("\t"); _builder.append("/**"); _builder.newLine(); _builder.append("\t "); _builder.append("* Performs no operation upon the completion of an interface disconnecting."); _builder.newLine(); _builder.append("\t "); _builder.append("* @generated"); _builder.newLine(); _builder.append("\t "); _builder.append("*/"); _builder.newLine(); _builder.append("\t"); _builder.append("@Override"); _builder.newLine(); _builder.append("\t"); _builder.append( "public void interfaceDisconnected(IMyxName interfaceName, Object serviceObject) {"); _builder.newLine(); { String _parentBrickId_4 = b.getParentBrickId(); boolean _notEquals_3 = (!Objects.equal(_parentBrickId_4, null)); if (_notEquals_3) { _builder.append("\t"); _builder.append("super.interfaceDisconnected(interfaceName, serviceObject);"); _builder.newLine(); } } _builder.append("\t"); _builder.append("}"); _builder.newLine(); _builder.append("}"); _builder.newLine(); return _builder.toString(); } catch (Throwable _e) { throw Exceptions.sneakyThrow(_e); } }