public void registerFeedJoint(IFeedJoint feedJoint) { List<IFeedJoint> feedJointsOnPipeline = feedPipeline.get(feedJoint.getOwnerFeedId()); if (feedJointsOnPipeline == null) { feedJointsOnPipeline = new ArrayList<IFeedJoint>(); feedPipeline.put(feedJoint.getOwnerFeedId(), feedJointsOnPipeline); feedJointsOnPipeline.add(feedJoint); } else { if (!feedJointsOnPipeline.contains(feedJoint)) { feedJointsOnPipeline.add(feedJoint); } else { throw new IllegalArgumentException("Feed joint " + feedJoint + " already registered"); } } }
public synchronized void submitFeedConnectionRequest( IFeedJoint feedJoint, final FeedConnectionRequest request) throws Exception { List<String> locations = null; switch (feedJoint.getType()) { case INTAKE: FeedIntakeInfo intakeInfo = intakeJobInfos.get(feedJoint.getOwnerFeedId()); locations = intakeInfo.getIntakeLocation(); break; case COMPUTE: FeedConnectionId connectionId = feedJoint.getProvider(); FeedConnectJobInfo cInfo = connectJobInfos.get(connectionId); locations = cInfo.getComputeLocations(); break; } SubscribeFeedWork work = new SubscribeFeedWork(locations.toArray(new String[] {}), request); FeedWorkManager.INSTANCE.submitWork( work, new SubscribeFeedWork.FeedSubscribeWorkEventListener()); }