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.facebook.presto.operator.WindowFunctionDefinition.window;
 import static com.google.common.base.MoreObjects.toStringHelper;
 import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
 
 public final class FunctionInfo
         implements ParametricFunction
 {
     private final Signature signature;
     private final String description;
     private final boolean hidden;
     private final boolean nullable;
     private final List<BooleannullableArguments;
 
     private final boolean isAggregate;
     private final TypeSignature intermediateType;
     private final boolean isApproximate;
 
     private final MethodHandle methodHandle;
     private final boolean deterministic;
 
     private final boolean isWindow;
 
     public FunctionInfo(Signature signatureString descriptionWindowFunctionSupplier windowFunctionSupplier)
     {
         this. = signature;
         this. = description;
         this. = false;
         this. = true;
         this. = false;
         this. = ImmutableList.copyOf(Collections.nCopies(signature.getArgumentTypes().size(), false));
 
         this. = false;
         this. = null;
         this. = null;
         this. = false;
         this. = null;
 
         this. = true;
         this. = checkNotNull(windowFunctionSupplier"windowFunction is null");
     }
 
     public FunctionInfo(Signature signatureString descriptionTypeSignature intermediateTypeInternalAggregationFunction functionboolean isApproximate)
     {
         this. = signature;
         this. = description;
         this. = isApproximate;
         this. = false;
         this. = intermediateType;
         this. = function;
         this. = true;
         this. = null;
         this. = true;
         this. = false;
         this. = ImmutableList.copyOf(Collections.nCopies(signature.getArgumentTypes().size(), false));
         this. = true;
         this. = AggregateWindowFunction.supplier(signaturefunction);
     }
 
     public FunctionInfo(Signature signatureString descriptionboolean hiddenMethodHandle functionboolean deterministicboolean nullableResultList<BooleannullableArguments)
     {
         this. = signature;
         this. = description;
         this. = hidden;
         this. = deterministic;
        this. = nullableResult;
        this. = ImmutableList.copyOf(checkNotNull(nullableArguments"nullableArguments is null"));
        checkArgument(nullableArguments.size() == signature.getArgumentTypes().size(), String.format("nullableArguments size (%d) does not match signature %s"nullableArguments.size(), signature));
        this. = false;
        this. = null;
        this. = null;
        this. = false;
        this. = false;
        this. = null;
        this. = checkNotNull(function"function is null");
    }
    @Override
    public Signature getSignature()
    {
        return ;
    }
    public QualifiedName getName()
    {
        return QualifiedName.of(.getName());
    }
    @Override
    public String getDescription()
    {
        return ;
    }
    @Override
    public boolean isHidden()
    {
        return ;
    }
    @Override
    public boolean isAggregate()
    {
        return ;
    }
    @Override
    public boolean isWindow()
    {
        return ;
    }
    @Override
    public boolean isScalar()
    {
        return ! && !;
    }
    @Override
    public boolean isUnbound()
    {
        return false;
    }
    @Override
    public boolean isApproximate()
    {
        return ;
    }
    public TypeSignature getReturnType()
    {
        return .getReturnType();
    }
    {
        return .getArgumentTypes();
    }
    {
        return ;
    }
    @Override
    public FunctionInfo specialize(Map<StringTypetypesint arityTypeManager typeManagerFunctionRegistry functionRegistry)
    {
        return this;
    }
    {
        checkState("not a window function");
        return window(inputs);
    }
    {
        checkState( != null"not an aggregation function");
        return ;
    }
    public MethodHandle getMethodHandle()
    {
        checkState( != null"not a scalar function or operator");
        return ;
    }
    @Override
    public boolean isDeterministic()
    {
        return ;
    }
    public boolean isNullable()
    {
        return ;
    }
    {
        return ;
    }
    @Override
    public boolean equals(Object obj)
    {
        if (this == obj) {
            return true;
        }
        if (obj == null || getClass() != obj.getClass()) {
            return false;
        }
        FunctionInfo other = (FunctionInfoobj;
        return Objects.equal(this.other.signature) &&
                Objects.equal(this.other.isAggregate) &&
                Objects.equal(this.other.isWindow);
    }
    @Override
    public int hashCode()
    {
        return Objects.hashCode();
    }
    @Override
    public String toString()
    {
        return toStringHelper(this)
                .add("signature")
                .add("isAggregate")
                .add("isWindow")
                .toString();
    }
New to GrepCode? Check out our FAQ X