class Not
        extends JSONSchema {
    final JSONSchema schema;
    final Type[] types;
    final Boolean result;

    public Not(JSONSchema schema, Type[] types, Boolean result) {
        super(null, null);
        this.schema = schema;
        this.types = types;
        this.result = result;
    }

    @Override
    public Type getType() {
        return Type.AllOf;
    }

    @Override
    public ValidateResult validate(Object value) {<FILL_FUNCTION_BODY>}
}

        if (schema != null) {
            if (schema.validate(value).isSuccess()) {
                return FAIL_NOT;
            }
        }

        if (types != null) {
            for (Type type : types) {
                switch (type) {
                    case String:
                        if (value instanceof String) {
                            return FAIL_NOT;
                        }
                        break;
                    case Integer:
                        if (value instanceof Byte
                                || value instanceof Short
                                || value instanceof Integer
                                || value instanceof Long
                                || value instanceof BigInteger
                                || value instanceof AtomicInteger
                                || value instanceof AtomicLong
                        ) {
                            return FAIL_NOT;
                        }
                        break;
                    case Number:
                        if (value instanceof Number) {
                            return FAIL_NOT;
                        }
                        break;
                    case Null:
                        if (value == null) {
                            return FAIL_NOT;
                        }
                        break;
                    case Array:
                        if (value instanceof Object[] || value instanceof Collection || (value != null && value.getClass().isArray())) {
                            return FAIL_NOT;
                        }
                        break;
                    case Object:
                        if (value instanceof Map) {
                            return FAIL_NOT;
                        }
                        if (value != null && JSONSchema.CONTEXT.getObjectReader(value.getClass()) instanceof ObjectReaderBean) {
                            return FAIL_NOT;
                        }
                        break;
                    case Boolean:
                        if (value instanceof Boolean) {
                            return FAIL_NOT;
                        }
                        break;
                    case Any:
                        return FAIL_NOT;
                    default:
                        break;
                }
            }
        }

        if (result != null) {
            return result ? FAIL_NOT : SUCCESS;
        }

        return SUCCESS;
    
<methods>public void accept(Predicate<com.alibaba.fastjson2.schema.JSONSchema>) ,public void assertValidate(java.lang.Object) ,public void assertValidate(java.lang.Integer) ,public void assertValidate(java.lang.Long) ,public void assertValidate(java.lang.Double) ,public void assertValidate(java.lang.Float) ,public void assertValidate(long) ,public void assertValidate(double) ,public boolean equals(java.lang.Object) ,public java.lang.String getDescription() ,public java.lang.String getTitle() ,public abstract com.alibaba.fastjson2.schema.JSONSchema.Type getType() ,public int hashCode() ,public boolean isValid(java.lang.Object) ,public boolean isValid(long) ,public boolean isValid(double) ,public boolean isValid(java.lang.Double) ,public boolean isValid(float) ,public boolean isValid(java.lang.Float) ,public boolean isValid(java.lang.Integer) ,public boolean isValid(java.lang.Long) ,public static com.alibaba.fastjson2.schema.JSONSchema of(com.alibaba.fastjson2.JSONObject, Class#RAW) ,public static com.alibaba.fastjson2.schema.JSONSchema of(com.alibaba.fastjson2.JSONObject) ,public static com.alibaba.fastjson2.schema.JSONSchema of(java.lang.reflect.Type) ,public static com.alibaba.fastjson2.schema.JSONSchema of(com.alibaba.fastjson2.JSONObject, com.alibaba.fastjson2.schema.JSONSchema) ,public static com.alibaba.fastjson2.schema.JSONSchema ofValue(java.lang.Object) ,public static com.alibaba.fastjson2.schema.JSONSchema parseSchema(java.lang.String) ,public com.alibaba.fastjson2.JSONObject toJSONObject() ,public java.lang.String toString() ,public abstract com.alibaba.fastjson2.schema.ValidateResult validate(java.lang.Object) ,public com.alibaba.fastjson2.schema.ValidateResult validate(long) ,public com.alibaba.fastjson2.schema.ValidateResult validate(double) ,public com.alibaba.fastjson2.schema.ValidateResult validate(java.lang.Float) ,public com.alibaba.fastjson2.schema.ValidateResult validate(java.lang.Double) ,public com.alibaba.fastjson2.schema.ValidateResult validate(java.lang.Integer) ,public com.alibaba.fastjson2.schema.ValidateResult validate(java.lang.Long) <variables>static final Map<java.lang.String,com.alibaba.fastjson2.schema.JSONSchema> CACHE,static final com.alibaba.fastjson2.schema.ValidateResult CONTAINS_NOT_MATCH,static final com.alibaba.fastjson2.JSONReader.Context CONTEXT,static final com.alibaba.fastjson2.schema.ValidateResult FAIL_ANY_OF,static final com.alibaba.fastjson2.schema.ValidateResult FAIL_INPUT_NOT_ENCODED,static final com.alibaba.fastjson2.schema.ValidateResult FAIL_INPUT_NULL,static final com.alibaba.fastjson2.schema.ValidateResult FAIL_NOT,static final com.alibaba.fastjson2.schema.ValidateResult FAIL_ONE_OF,static final com.alibaba.fastjson2.schema.ValidateResult FAIL_PROPERTY_NAME,static final com.alibaba.fastjson2.schema.ValidateResult FAIL_TYPE_NOT_MATCH,static final com.alibaba.fastjson2.schema.ValidateResult REQUIRED_NOT_MATCH,static final com.alibaba.fastjson2.schema.ValidateResult SUCCESS,static final com.alibaba.fastjson2.schema.ValidateResult UNIQUE_ITEMS_NOT_MATCH,final non-sealed java.lang.String description,final non-sealed java.lang.String title