Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Facts

There are two facts: A customer made a deposit request and A customer made a withdraw request.

 

Code Block
languagejava
package samples.banking;
/**
 * Account
 */
public class Account {
    private String accountNumber;

    private int balance;

    public String getAccountNumber() {
        return accountNumber;
    }
    public void setAccountNumber(String accountNumber) {
        this.accountNumber = accountNumber;
    }

    public int getBalance() {
        return balance;
    }
    public void setBalance(int balance) {
        this.balance = balance;
    }
    public void increment(int value) {
        balance += value;
    }
    public void decrement(int value) {
        balance -= value;
    }
}

package samples.banking;
/**
 * Deposit fact
 */
public class Deposit {

    private String accountNumber;
    private int amount;

    public String getAccountNumber() {
        return accountNumber;
    }

    public void setAccountNumber(String accountNumber) {
        this.accountNumber = accountNumber;
    }

    public int getAmount() {
        return amount;
    }

    public void setAmount(int amount) {
        this.amount = amount;
    }
}

package samples.banking;

/**
 * DepositAccept facts
 */
public class DepositAccept {

    private String message;

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}

package samples.banking;

/**
 * Withdraw fact
 */
public class Withdraw {

    private String accountNumber;

    private int amount;

    public String getAccountNumber() {
        return accountNumber;
    }

    public void setAccountNumber(String accountNumber) {
        this.accountNumber = accountNumber;
    }

    public int getAmount() {
        return amount;
    }

    public void setAmount(int amount) {
        this.amount = amount;
    }
}

package samples.banking;

/**
 * WithdrawAccept fact
 */
public class WithdrawAccept {

    private String message;

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}

package samples.banking;

/**
 * WithdrawReject fact
 */
public class WithdrawReject {

    private String reason;

    public String getReason() {
        return reason;
    }

    public void setReason(String reason) {
        this.reason = reason;
    }
}

 

Rule Service Configuration (service.rsl)

An in-line rule set is used within the service.rsl file as follows.

...