class SimpleLongScoreContext extends ScoreContext<SimpleLongScore> {

    private final LongConsumer scoreUpdater;

    public SimpleLongScoreContext(AbstractScoreInliner<SimpleLongScore> parent, Constraint constraint,
            SimpleLongScore constraintWeight, LongConsumer scoreUpdater) {
        super(parent, constraint, constraintWeight);
        this.scoreUpdater = scoreUpdater;
    }

    public UndoScoreImpacter changeScoreBy(long matchWeight, JustificationsSupplier justificationsSupplier) {<FILL_FUNCTION_BODY>}

}

        long impact = constraintWeight.score() * matchWeight;
        scoreUpdater.accept(impact);
        UndoScoreImpacter undoScoreImpact = () -> scoreUpdater.accept(-impact);
        if (!constraintMatchEnabled) {
            return undoScoreImpact;
        }
        return impactWithConstraintMatch(undoScoreImpact, SimpleLongScore.of(impact), justificationsSupplier);
    
<methods>public org.optaplanner.core.api.score.stream.Constraint getConstraint() ,public org.optaplanner.core.api.score.buildin.simplelong.SimpleLongScore getConstraintWeight() ,public boolean isConstraintMatchEnabled() <variables>protected final non-sealed org.optaplanner.core.api.score.stream.Constraint constraint,protected final non-sealed boolean constraintMatchEnabled,protected final non-sealed org.optaplanner.core.api.score.buildin.simplelong.SimpleLongScore constraintWeight,private final non-sealed AbstractScoreInliner<org.optaplanner.core.api.score.buildin.simplelong.SimpleLongScore> parent