'How to get the value in the enumeration declared in the drl file in java

I started learning drools recently, when I declared an enum type in drl file, but in java, I don't know how to get the value of this enum, can anyone help me?

First: enums declared in drools file

declare enum OrderStatus
    CREATED(0, "新创建"),
    PAY(1, "已支付"),
    RECEIVED(2, "已接收");

    status: Integer;
    desc: String;
end

Second: I want to get the value of PAY in OrderStatus

// Get the declared fact type
FactType orderStatusFactType = kieBase.getFactType("rules", "OrderStatus");

I don't know how to write it after that, does anyone know?



Solution 1:[1]

Generally speaking, you don't do it like that.

If you need it in Java, declare it in Java. You can reference Java enums by importing them as you would any other class.

OrderStatus.java:

package com.example;

public enum OrderStatus {
  // ...
}

example.drl

import com.example.OrderStatus

rule "ExampleRule"
when
  $order: Order( status == null )
then
  modify($order) {
    setStatus( OrderStatus.PAY )
  }
end

Since it is already Java, you can import and reference it normally in Java.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Roddy of the Frozen Peas