001package com.studentgui.apphelpers.dto; 002 003import java.util.Arrays; 004 005/** 006 * Typed payload for assessment-style pages (codes + scores). 007 */ 008public class AssessmentPayload implements SessionPayload { 009 /** Database session id for this payload. */ 010 public int sessionId; 011 /** Array of part codes (e.g. "P1_1"). */ 012 public String[] codes; 013 /** Parallel array of integer scores. */ 014 public int[] scores; 015 016 /** No-arg constructor for Jackson and tests. */ 017 public AssessmentPayload() {} 018 019 /** 020 * Create an assessment payload. 021 * 022 * @param sessionIdParam numeric DB session id 023 * @param codesParam array of part codes 024 * @param scoresParam array of scores 025 */ 026 public AssessmentPayload(final int sessionIdParam, final String[] codesParam, final int[] scoresParam) { 027 this.sessionId = sessionIdParam; 028 this.codes = codesParam; 029 this.scores = scoresParam; 030 } 031 032 @Override 033 /** 034 * Return the numeric database session id associated with this payload. 035 * 036 * @return the session id stored in this payload 037 */ 038 public int getSessionId() { 039 return this.sessionId; 040 } 041 042 @Override 043 /** 044 * Return a compact, human-readable representation of this payload suitable 045 * for logging and diagnostics. 046 * 047 * @return a one-line string describing the payload contents 048 */ 049 050 public String toString() { 051 return "AssessmentPayload{sessionId=" + sessionId + ", codes=" + Arrays.toString(codes) + ", scores=" + Arrays.toString(scores) + "}"; 052 } 053}