MinimumIncomeRule.java

package com.designpatterns.structural.composite.applied;

public class MinimumIncomeRule implements ApprovalRule {

    private final long minimumIncomeCents;

    public MinimumIncomeRule(long minimumIncomeCents) {
        this.minimumIncomeCents = minimumIncomeCents;
    }

    @Override
    public boolean isSatisfied(LoanApplication application) {
        return application.monthlyIncomeCents() >= minimumIncomeCents;
    }

    @Override
    public String description() {
        return "monthly income >= " + minimumIncomeCents + " cents";
    }
}