SimpleNode[] () { final PackagingSourceItemsProvider[] providers = PackagingSourceItemsProvider.EP_NAME.getExtensions(); PackagingSourceItemFilter[] filters = PackagingSourceItemFilter.EP_NAME.getExtensions(); List<SimpleNode> children = new ArrayList<>(); for (PackagingSourceItemsProvider provider : providers) { final Collection<? extends PackagingSourceItem> items = provider.getSourceItems(myContext, myArtifact, getSourceItem()); for (PackagingSourceItem item : items) { if (myArtifact.getArtifactType().isSuitableItem(item) && isAvailable(item, myContext, filters)) { children.add(new SourceItemNode(myContext, this, item, myArtifactEditor)); } } } return children.isEmpty() ? NO_CHILDREN : children.toArray(new SimpleNode[0]); }