⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 escalation.java.drl

📁 drools 一个开放源码的规则引擎
💻 DRL
字号:
<?xml version="1.0"?>
<rule-set name="Escalation Rules"
          xmlns="http://drools.org/rules"
          xmlns:java="http://drools.org/semantics/java"
          xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
          xs:schemaLocation="http://drools.org/rules rules.xsd
                             http://drools.org/semantics/java java.xsd">

    <rule name="Escalate Immediately If Bob">
      <parameter identifier="ticket">
        <class>org.drools.examples.escalation.TroubleTicket</class>
      </parameter>

      <java:condition>ticket.getSubmitter().equals( "bob" )</java:condition>
      <java:condition>ticket.getStatus() == TroubleTicket.NEW</java:condition>

      <java:consequence>
          import java.util.Date;
          import java.text.DateFormat;

          System.err.println( "----------------------------------------" );
          System.err.println( DateFormat.getTimeInstance( DateFormat.LONG ).format( new Date() ) );
          System.err.println( "** ticket == " + ticket );          
          ticket.setStatus( TroubleTicket.NOTIFIED );          
          System.err.println( "** Escalating trouble ticket for bob, because he's special" );
          System.err.println( "** ticket == " + ticket );
          System.err.println( "----------------------------------------" );          
          drools.modifyObject( ticket );

        </java:consequence>
    </rule>

    <rule name="Escalate New Tickets">
      <parameter identifier="ticket">
        <class>org.drools.examples.escalation.TroubleTicket</class>
      </parameter>

      <java:condition>ticket.getStatus() == TroubleTicket.NEW</java:condition>

      <duration seconds="2" />

      <java:consequence>
          import java.util.Date;
          import java.text.DateFormat;

          System.err.println( "----------------------------------------" );
          System.err.println( DateFormat.getTimeInstance( DateFormat.LONG ).format( new Date() ) );
          System.err.println( "** ticket == " + ticket );
          ticket.setStatus( TroubleTicket.NOTIFIED );
          System.err.println( "** Escalating trouble ticket from NEW to NOTIFIED after 2 seconds" );
          System.err.println( "** ticket == " + ticket );
          System.err.println( "----------------------------------------" );

          drools.modifyObject( ticket );

      </java:consequence>
    </rule>

    <rule name="Escalate Notified Tickets">
      <parameter identifier="ticket">
        <class>org.drools.examples.escalation.TroubleTicket </class>
      </parameter>

      <java:condition>ticket.getStatus() == TroubleTicket.NOTIFIED</java:condition>

  	  <duration seconds="5" />

      <java:consequence>
          import java.util.Date;
          import java.text.DateFormat;

          System.err.println( "----------------------------------------" );
          System.err.println( DateFormat.getTimeInstance( DateFormat.LONG ).format( new Date() ) );
          System.err.println( "** ticket == " + ticket );
          ticket.setStatus( TroubleTicket.NULL );
          System.err.println( "** Escalating trouble ticket from NOTIFIED to /dev/null after 5 seconds" );
          System.err.println( "** ticket == " + ticket );
          System.err.println( "----------------------------------------" );

          drools.modifyObject( ticket );

      </java:consequence>
    </rule>

  </rule-set>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -