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.metadata;
 
 
 import java.util.List;
 import java.util.Map;
 
 import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.base.Preconditions.checkNotNull;
 
 public class InternalTable
 {
     private final Map<StringIntegercolumnIndexes;
     private final List<Pagepages;
 
     public InternalTable(Map<StringIntegercolumnIndexesIterable<Pagepages)
     {
         this. = ImmutableMap.copyOf(checkNotNull(columnIndexes"columnIndexes is null"));
         this. = ImmutableList.copyOf(checkNotNull(pages"pages is null"));
     }
 
     public int getColumnIndex(String columnName)
     {
         Integer index = .get(columnName);
         checkArgument(index != null"Column %s not found"columnName);
         return index;
     }
 
     public List<PagegetPages()
     {
         return ;
     }
 
     public static Builder builder(ColumnMetadata... columns)
     {
         return builder(ImmutableList.copyOf(columns));
     }
 
     public static Builder builder(List<ColumnMetadatacolumns)
     {
         ImmutableList.Builder<Stringnames = ImmutableList.builder();
         ImmutableList.Builder<Typetypes = ImmutableList.builder();
         for (ColumnMetadata column : columns) {
             names.add(column.getName());
             types.add(column.getType());
         }
         return new Builder(names.build(), types.build());
     }
 
     public static class Builder
     {
         private final Map<StringIntegercolumnIndexes;
         private final List<Typetypes;
         private final List<Pagepages;
         private PageBuilder pageBuilder;
 
         public Builder(List<StringcolumnNamesList<Typetypes)
         {
             checkNotNull(columnNames"columnNames is null");
 
             ImmutableMap.Builder<StringIntegercolumnIndexes = ImmutableMap.builder();
             int columnIndex = 0;
             for (String columnName : columnNames) {
                 columnIndexes.put(columnNamecolumnIndex++);
             }
             this. = columnIndexes.build();
 
             this. = ImmutableList.copyOf(checkNotNull(types"types is null"));
             checkArgument(columnNames.size() == types.size(),
                     "Column name count does not match type count: columnNames=%s, types=%s"columnNamestypes.size());
 
              = new ArrayList<>();
              = new PageBuilder(types);
         }
 
         public Builder add(Object... values)
         {
             .declarePosition();
             for (int i = 0; i < .size(); i++) {
                BlockUtils.appendObject(.get(i), .getBlockBuilder(i), values[i]);
            }
            if (.isFull()) {
                flushPage();
            }
            return this;
        }
        public InternalTable build()
        {
            flushPage();
            return new InternalTable();
        }
        private void flushPage()
        {
            if (!.isEmpty()) {
                .add(.build());
                .reset();
            }
        }
    }
New to GrepCode? Check out our FAQ X