Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *     http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 package com.facebook.presto;
 
 
 import java.util.Set;
 
 import static com.google.common.base.MoreObjects.toStringHelper;
 import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.base.Preconditions.checkNotNull;
 
 public class TaskSource
 {
     private final PlanNodeId planNodeId;
     private final Set<ScheduledSplitsplits;
     private final boolean noMoreSplits;
 
     @JsonCreator
     public TaskSource(
             @JsonProperty("planNodeId"PlanNodeId planNodeId,
             @JsonProperty("splits"Set<ScheduledSplitsplits,
             @JsonProperty("noMoreSplits"boolean noMoreSplits)
     {
         this. = checkNotNull(planNodeId"planNodeId is null");
         this. = ImmutableSet.copyOf(checkNotNull(splits"splits is null"));
         this. = noMoreSplits;
     }
 
     @JsonProperty
     public PlanNodeId getPlanNodeId()
     {
         return ;
     }
 
     @JsonProperty
     public Set<ScheduledSplitgetSplits()
     {
         return ;
     }
 
     @JsonProperty
     public boolean isNoMoreSplits()
     {
         return ;
     }
 
     public TaskSource update(TaskSource source)
     {
         checkArgument(.equals(source.getPlanNodeId()), "Expected source %s, but got source %s"source.getPlanNodeId());
 
         if (isNewer(source)) {
             // assure the new source is properly formed
             // we know that either the new source one has new splits and/or it is marking the source as closed
             checkArgument(! || source.isNoMoreSplits(), "Source %s has new splits, but no more splits already set");
 
             Set<ScheduledSplitnewSplits = ImmutableSet.<ScheduledSplit>builder()
                     .addAll()
                     .addAll(source.getSplits())
                     .build();
 
             return new TaskSource(,
                     newSplits,
                     source.isNoMoreSplits());
         }
         else {
             // the specified source is older than this one
             return this;
         }
     }
 
     private boolean isNewer(TaskSource source)
     {
         // the specified source is newer if it changes the no more
         // splits flag or if it contains new splits
         return (! && source.isNoMoreSplits()) ||
                 (!.containsAll(source.getSplits()));
     }
 
     @Override
     public String toString()
     {
         return toStringHelper(this)
                 .add("planNodeId")
                 .add("splits")
                .add("noMoreSplits")
                .toString();
    }
New to GrepCode? Check out our FAQ X