public boolean inspect(int streamNumber, List<ViewFactory> viewFactories, StatementContext statementContext) { for (ViewFactory viewFactory : viewFactories) { if ((viewFactory instanceof GroupByViewFactory) || ((viewFactory instanceof MergeViewFactory))) { continue; } if (!(viewFactory.canProvideCapability(this))) { return false; } } return true; }
/** * Returns the final event type which is the event type of the last view factory in the chain, * or if the chain is empty then the stream's event type. * @return final event type of the last view or stream */ public EventType getEventType() { if (viewFactoryChain.isEmpty()) { return streamEventType; } else { return viewFactoryChain.get(viewFactoryChain.size() - 1).getEventType(); } }
/** * Instantiate a chain of views. * @param parentViewable - parent view to add the chain to * @param viewFactories - is the view factories to use to make each view, or reuse and existing view * @param context - dependent services * @return chain of views instantiated */ protected static List<View> instantiateChain(Viewable parentViewable, List<ViewFactory> viewFactories, StatementContext context) { List<View> newViews = new LinkedList<View>(); Viewable parent = parentViewable; for (ViewFactory viewFactory : viewFactories) { // Create the new view object View currentView = viewFactory.makeView(context); newViews.add(currentView); parent.addView(currentView); // Next parent is the new view parent = currentView; } return newViews; }
try factoryToAttach.attach(parentEventType, context, parentViewFactory, attachedViewFactories); attachedViewFactories.add(viewFactories.get(i)); parentEventType = factoryToAttach.getEventType();
if (factory.canProvideCapability(requestedCabability)) factory.setProvideCapability(requestedCabability, resourceCallback); return true;
factory.setViewParameters(context, Arrays.asList((Object)(Boolean)unboundStream));
if (!(currentFactory.canReuse(childView)))
viewFactory.setViewParameters(context, spec.getObjectParameters());
for (int i = 0; i < fieldTypes.length; i++) fieldTypes[i] = groupByViewFactory.getEventType().getPropertyType(fieldNames[i]);