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.sql.planner;
 
 
 
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
 import static com.facebook.presto.util.ImmutableCollectors.toImmutableList;
 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 PlanFragment
 {
     public enum PlanDistribution
     {
         SINGLE,
         FIXED,
         SOURCE,
         COORDINATOR_ONLY
     }
 
     public static enum OutputPartitioning
     {
         NONE,
         HASH
     }
 
     private final PlanFragmentId id;
     private final PlanNode root;
     private final Map<SymbolTypesymbols;
     private final List<SymboloutputLayout;
     private final PlanDistribution distribution;
     private final PlanNodeId partitionedSource;
     private final List<Typetypes;
     private final List<PlanNodesources;
     private final Set<PlanNodeIdsourceIds;
     private final OutputPartitioning outputPartitioning;
     private final List<SymbolpartitionBy;
     private final Optional<Symbolhash;
 
     @JsonCreator
     public PlanFragment(
             @JsonProperty("id"PlanFragmentId id,
             @JsonProperty("root"PlanNode root,
             @JsonProperty("symbols"Map<SymbolTypesymbols,
             @JsonProperty("outputLayout"List<SymboloutputLayout,
             @JsonProperty("distribution"PlanDistribution distribution,
             @JsonProperty("partitionedSource"PlanNodeId partitionedSource,
             @JsonProperty("outputPartitioning"OutputPartitioning outputPartitioning,
             @JsonProperty("partitionBy"List<SymbolpartitionBy,
             @JsonProperty("hash"Optional<Symbolhash)
     {
         this. = checkNotNull(id"id is null");
         this. = checkNotNull(root"root is null");
         this. = checkNotNull(symbols"symbols is null");
         this. = checkNotNull(outputLayout"outputLayout is null");
         this. = checkNotNull(distribution"distribution is null");
         this. = partitionedSource;
         this. = ImmutableList.copyOf(checkNotNull(partitionBy"partitionBy is null"));
         this. = hash;
 
         checkArgument(ImmutableSet.copyOf(root.getOutputSymbols()).containsAll(outputLayout),
                 "Root node outputs (%s) don't include all fragment outputs (%s)"root.getOutputSymbols(), outputLayout);
 
          = root.getOutputSymbols().stream()
                 .map(symbols::get)
                 .collect(toImmutableList());
 
         ImmutableList.Builder<PlanNodesources = ImmutableList.builder();
         findSources(rootsourcespartitionedSource);
         this. = sources.build();
        ImmutableSet.Builder<PlanNodeIdsourceIds = ImmutableSet.builder();
        for (PlanNode source : this.) {
            sourceIds.add(source.getId());
        }
        if (partitionedSource != null) {
            sourceIds.add(partitionedSource);
        }
        this. = sourceIds.build();
        this. = checkNotNull(outputPartitioning"outputPartitioning is null");
    }
    public PlanFragmentId getId()
    {
        return ;
    }
    public PlanNode getRoot()
    {
        return ;
    }
    public Map<SymbolTypegetSymbols()
    {
        return ;
    }
    public List<SymbolgetOutputLayout()
    {
        return ;
    }
    {
        return ;
    }
    {
        return ;
    }
    {
        return ;
    }
    public List<SymbolgetPartitionBy()
    {
        return ;
    }
    public Optional<SymbolgetHash()
    {
        return ;
    }
    public List<TypegetTypes()
    {
        return ;
    }
    public List<PlanNodegetSources()
    {
        return ;
    }
    public Set<PlanNodeIdgetSourceIds()
    {
        return ;
    }
    private static void findSources(PlanNode nodeBuilder<PlanNodebuilderPlanNodeId partitionedSource)
    {
        for (PlanNode source : node.getSources()) {
            findSources(sourcebuilderpartitionedSource);
        }
        if ((node.getSources().isEmpty() && !(node instanceof IndexSourceNode)) || node.getId().equals(partitionedSource)) {
            builder.add(node);
        }
    }
    @Override
    public String toString()
    {
        return toStringHelper(this)
                .add("id")
                .add("distribution")
                .add("partitionedSource")
                .add("outputPartitioning")
                .add("hash")
                .toString();
    }
New to GrepCode? Check out our FAQ X