class NameDecimalOpSegment
            extends NameFilter {
        final Operator operator;
        final BigDecimal value;

        public NameDecimalOpSegment(String name, long nameHashCode, Operator operator, BigDecimal value) {
            super(name, nameHashCode);
            this.operator = operator;
            this.value = value;
        }

        protected boolean applyNull() {
            return operator == Operator.NE;
        }

        @Override
        public boolean apply(Object fieldValue) {<FILL_FUNCTION_BODY>}
    }

            if (fieldValue == null) {
                return false;
            }

            BigDecimal fieldValueDecimal;

            if (fieldValue instanceof Boolean) {
                fieldValueDecimal = (Boolean) fieldValue ? BigDecimal.ONE : BigDecimal.ZERO;
            } else if (fieldValue instanceof Byte
                    || fieldValue instanceof Short
                    || fieldValue instanceof Integer
                    || fieldValue instanceof Long) {
                fieldValueDecimal = BigDecimal.valueOf(
                        ((Number) fieldValue).longValue()
                );
            } else if (fieldValue instanceof BigDecimal) {
                fieldValueDecimal = ((BigDecimal) fieldValue);
            } else if (fieldValue instanceof BigInteger) {
                fieldValueDecimal = new BigDecimal((BigInteger) fieldValue);
            } else {
                throw new UnsupportedOperationException();
            }

            int cmp = fieldValueDecimal.compareTo(value);
            switch (operator) {
                case LT:
                    return cmp < 0;
                case LE:
                    return cmp <= 0;
                case EQ:
                    return cmp == 0;
                case NE:
                    return cmp != 0;
                case GT:
                    return cmp > 0;
                case GE:
                    return cmp >= 0;
                default:
                    throw new UnsupportedOperationException();
            }
        
<methods>public abstract void accept(com.alibaba.fastjson2.JSONReader, com.alibaba.fastjson2.JSONPath.Context) ,public boolean contains(com.alibaba.fastjson2.JSONPath.Context) ,public abstract void eval(com.alibaba.fastjson2.JSONPath.Context) ,public boolean remove(com.alibaba.fastjson2.JSONPath.Context) ,public void set(com.alibaba.fastjson2.JSONPath.Context, java.lang.Object) ,public void setCallback(com.alibaba.fastjson2.JSONPath.Context, BiFunction#RAW) ,public void setInt(com.alibaba.fastjson2.JSONPath.Context, int) ,public void setLong(com.alibaba.fastjson2.JSONPath.Context, long) <variables>