public void addHardConstraintMatch(RuleContext kcontext, double hardWeight) {
        hardScore += hardWeight;
        registerConstraintMatch(kcontext,
                () -> hardScore -= hardWeight,
                () -> HardSoftDoubleScore.of(hardWeight, 0.0));
    }
public void addHardConstraintMatch ( RuleContext kcontext , double hardWeight ) { hardScore += hardWeight ; registerConstraintMatch ( kcontext , ( ) -> hardScore -= hardWeight , ( ) -> HardSoftDoubleScore . of ( hardWeight , 0.0 ) ) ; }
@param kcontext never null, the magic variable in DRL
@param hardWeight higher is better, negative for a penalty, positive for a reward