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.gen;
 
 
 import java.util.List;
 
 import static com.facebook.presto.byteCode.ParameterizedType.type;
 import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT;
 import static com.facebook.presto.sql.gen.Bootstrap.BOOTSTRAP_METHOD;
 import static com.google.common.base.Preconditions.checkNotNull;
 import static java.lang.String.format;
 
         extends ByteCodeExpression
 {
     public static SqlTypeByteCodeExpression constantType(CallSiteBinder callSiteBinderType type)
     {
         checkNotNull(callSiteBinder"callSiteBinder is null");
         checkNotNull(type"type is null");
 
         Binding binding = callSiteBinder.bind(typeType.class);
         return new SqlTypeByteCodeExpression(typebinding);
     }
 
     private final Type type;
     private final Binding binding;
     private final Method bootstrapMethod;
 
     private SqlTypeByteCodeExpression(Type typeBinding bindingMethod bootstrapMethod)
     {
         super(type(Type.class));
 
         this. = checkNotNull(type"type is null");
         this. = checkNotNull(binding"binding is null");
         this. = checkNotNull(bootstrapMethod"bootstrapMethod is null");
     }
 
     @Override
     public ByteCodeNode getByteCode(MethodGenerationContext generationContext)
     {
         return InvokeInstruction.invokeDynamic(.getTypeSignature().toString().replaceAll("\\W+""_"), .getType(), .getBindingId());
     }
 
     @Override
     public List<ByteCodeNodegetChildNodes()
     {
         return ImmutableList.of();
     }
 
     @Override
     protected String formatOneLine()
     {
         return .getTypeSignature().toString();
     }
 
     {
         Class<?> fromJavaElementType = .getJavaType();
 
         if (fromJavaElementType == boolean.class) {
             return invoke("getBoolean"boolean.classblockposition);
         }
         if (fromJavaElementType == long.class) {
             return invoke("getLong"long.classblockposition);
         }
         if (fromJavaElementType == double.class) {
             return invoke("getDouble"double.classblockposition);
         }
         if (fromJavaElementType == Slice.class) {
             return invoke("getSlice"Slice.classblockposition);
         }
         throw new PrestoException(format("Unexpected type %s"fromJavaElementType.getName()));
     }
 
     public ByteCodeExpression writeValue(ByteCodeExpression blockBuilderByteCodeExpression value)
     {
         Class<?> fromJavaElementType = .getJavaType();
 
        if (fromJavaElementType == boolean.class) {
            return invoke("writeBoolean"void.classblockBuildervalue);
        }
        if (fromJavaElementType == long.class) {
            return invoke("writeLong"void.classblockBuildervalue);
        }
        if (fromJavaElementType == double.class) {
            return invoke("writeDouble"void.classblockBuildervalue);
        }
        if (fromJavaElementType == Slice.class) {
            return invoke("writeSlice"void.classblockBuildervalue);
        }
        throw new PrestoException(format("Unexpected type %s"fromJavaElementType.getName()));
    }
New to GrepCode? Check out our FAQ X