class InternalColumnUtil {

    private InternalColumnUtil() {}

    public static boolean usesOptional(Column col) {
        return col.isNullable()
            && HasNullable.ImplementAs.OPTIONAL
            == col.getNullableImplementation();
    }

    public static Optional<String> optionalGetterName(TypeMapperComponent typeMappers, Column column) {<FILL_FUNCTION_BODY>}


}

        final Type colType = typeMappers.get(column).getJavaType(column);
        final String getterName;

        if (usesOptional(column)) {
            if (Double.class.getName().equals(colType.getTypeName())) {
                getterName = ".getAsDouble()";
            } else if (Integer.class.getName().equals(colType.getTypeName())) {
                getterName = ".getAsInt()";
            } else if (Long.class.getName().equals(colType.getTypeName())) {
                getterName = ".getAsLong()";
            } else {
                getterName = ".get()";
            }
        } else {
            return Optional.empty();
        }

        return Optional.of(getterName);
    
<no_super_class>