public IFeedJoint getAvailableFeedJoint(FeedJointKey feedJointKey) {
   IFeedJoint feedJoint = getFeedJoint(feedJointKey);
   if (feedJoint != null) {
     return feedJoint;
   } else {
     String jointKeyString = feedJointKey.getStringRep();
     List<IFeedJoint> jointsOnPipeline = feedPipeline.get(feedJointKey.getFeedId());
     IFeedJoint candidateJoint = null;
     if (jointsOnPipeline != null) {
       for (IFeedJoint joint : jointsOnPipeline) {
         if (jointKeyString.contains(joint.getFeedJointKey().getStringRep())) {
           if (candidateJoint == null) {
             candidateJoint = joint;
           } else if (joint
               .getFeedJointKey()
               .getStringRep()
               .contains(
                   candidateJoint
                       .getFeedJointKey()
                       .getStringRep())) { // found feed point is a super set of the earlier find
             candidateJoint = joint;
           }
         }
       }
     }
     return candidateJoint;
   }
 }
 public IFeedJoint getFeedJoint(FeedJointKey feedPointKey) {
   List<IFeedJoint> joints = feedPipeline.get(feedPointKey.getFeedId());
   if (joints != null && !joints.isEmpty()) {
     for (IFeedJoint joint : joints) {
       if (joint.getFeedJointKey().equals(feedPointKey)) {
         return joint;
       }
     }
   }
   return null;
 }
 public boolean isFeedPointAvailable(FeedJointKey feedJointKey) {
   List<IFeedJoint> joints = feedPipeline.get(feedJointKey.getFeedId());
   if (joints != null && !joints.isEmpty()) {
     for (IFeedJoint joint : joints) {
       if (joint.getFeedJointKey().equals(feedJointKey)) {
         return true;
       }
     }
   }
   return false;
 }