I meant to move all this logic to the separate method and pass 
`ClassGenerator`, `MajorType` and `Function`, for example, to receive something 
like this:
```
    @Override
    public HoldingContainer visitLongConstant(LongExpression e, 
ClassGenerator<?> generator) throws RuntimeException {
      return getHoldingContainer(generator,
          e.getMajorType(),
          buffer -> ValueHolderHelper.getBigIntHolder(e.getLong()));
    }

    private HoldingContainer getHoldingContainer(ClassGenerator<?> generator,
        MajorType majorType,Function<DrillBuf, ? extends ValueHolder> function) 
{
      JType holderType = generator.getHolderType(majorType);
      JVar var = generator.declareClassField("value", holderType);
      generator.declareSetterMethod(
          var,
          function);
      return createHoldingContainer(majorType, var);
    }
```

[ Full content available at: https://github.com/apache/drill/pull/1481 ]
This message was relayed via gitbox.apache.org for [email protected]

Reply via email to