class LimitViolation extends AbstractExtendable<LimitViolation> {

    public String toString() {
        return "Subject id: " + this.subjectId + ", Subject name: " + this.subjectName + ", limitType: " +
                this.limitType + ", limit: " + this.limit + ", limitName: " + this.limitName +
                ", acceptableDuration: " + this.acceptableDuration + ", limitReduction: " + this.limitReduction +
                ", value: " + this.value + ", side: " + this.side;
    }

    public  LimitViolation(String subjectId, @Nullable String subjectName, LimitViolationType limitType, @Nullable String limitName, int acceptableDuration,
                          double limit, float limitReduction, double value, @Nullable Branch.Side side);
    public  LimitViolation(String subjectId, LimitViolationType limitType, String limitName, int acceptableDuration,
                          double limit, float limitReduction, double value, Branch.Side side);
    public  LimitViolation(String subjectId, String subjectName, LimitViolationType limitType, double limit, float limitReduction, double value);
    public  LimitViolation(String subjectId, LimitViolationType limitType, double limit, float limitReduction, double value);

}