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.Map;
 
 import static com.google.common.base.MoreObjects.toStringHelper;
 import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
 
 public final class OutputBuffers
 {
     public static final OutputBuffers INITIAL_EMPTY_OUTPUT_BUFFERS = new OutputBuffers(0, false, ImmutableMap.<TaskIdPagePartitionFunction>of());
 
     private final long version;
     private final boolean noMoreBufferIds;
     private final Map<TaskIdPagePartitionFunctionbuffers;
 
     // Visible only for Jackson... Use the "with" methods instead
     @JsonCreator
     public OutputBuffers(
             @JsonProperty("version"long version,
             @JsonProperty("noMoreBufferIds"boolean noMoreBufferIds,
             @JsonProperty("buffers"Map<TaskIdPagePartitionFunctionbuffers)
     {
         this. = version;
         this. = ImmutableMap.copyOf(checkNotNull(buffers"buffers is null"));
         this. = noMoreBufferIds;
     }
 
     @JsonProperty
     public long getVersion()
     {
         return ;
     }
 
     @JsonProperty
     public boolean isNoMoreBufferIds()
     {
         return ;
     }
 
     @JsonProperty
     {
         return ;
     }
 
     @Override
     public int hashCode()
     {
         return Objects.hashCode();
     }
 
     @Override
     public boolean equals(Object obj)
     {
         if (this == obj) {
             return true;
         }
         if (obj == null || getClass() != obj.getClass()) {
             return false;
         }
         final OutputBuffers other = (OutputBuffersobj;
         return Objects.equal(this.other.version) &&
                 Objects.equal(this.other.noMoreBufferIds) &&
                 Objects.equal(this.other.buffers);
     }
 
     @Override
     public String toString()
     {
         return toStringHelper(this)
                 .add("version")
                 .add("noMoreBufferIds")
                 .add("bufferIds")
                 .toString();
     }
 
     public OutputBuffers withBuffer(TaskId bufferIdPagePartitionFunction pagePartitionFunction)
    {
        checkNotNull(bufferId"bufferId is null");
        checkState(!"No more buffer ids already set");
        if (.containsKey(bufferId)) {
            checkHasBuffer(bufferIdpagePartitionFunction);
            return this;
        }
        return new OutputBuffers(
                 + 1,
                false,
                ImmutableMap.<TaskIdPagePartitionFunction>builder()
                        .putAll()
                        .put(bufferIdpagePartitionFunction)
                        .build());
    }
    {
        checkNotNull(buffers"buffers is null");
        Map<TaskIdPagePartitionFunctionnewBuffers = new HashMap<>();
        for (Entry<TaskIdPagePartitionFunctionentry : buffers.entrySet()) {
            TaskId bufferId = entry.getKey();
            PagePartitionFunction pagePartitionFunction = entry.getValue();
            // it is ok to have a duplicate buffer declaration but it must have the same page partition function
            if (this..containsKey(bufferId)) {
                checkHasBuffer(bufferIdpagePartitionFunction);
                continue;
            }
            newBuffers.put(bufferIdpagePartitionFunction);
        }
        // if we don't have new buffers, don't update
        if (newBuffers.isEmpty()) {
            return this;
        }
        // verify no new buffers is not set
        checkState(!"No more buffer ids already set");
        // add the existing buffers
        newBuffers.putAll(this.);
        return new OutputBuffers( + 1, falsenewBuffers);
    }
    {
        checkNotNull(this"this is null");
        if () {
            return this;
        }
        return new OutputBuffers( + 1, true);
    }
    private void checkHasBuffer(TaskId bufferIdPagePartitionFunction pagePartitionFunction)
    {
        checkState(getBuffers().get(bufferId).equals(pagePartitionFunction),
                "outputBuffers already contains buffer %s, but partition function is %s not %s",
                bufferId,
                .get(bufferId),
                pagePartitionFunction);
    }
New to GrepCode? Check out our FAQ X