package com.dragonsoft.tryapp.common;

import java.io.Serializable;
import java.util.LinkedList;
import java.util.List;

public class SubmissionObj implements Serializable {

    /**
     * Unique identifier of this submission across all parts of the system.
     */
    private String strSubmissionID;

    /**
     * The ID of the course this student is submitting for.
     */
    private String strCourseID;

    /**
     * The username of the student who is attempting the submission.
     */
    private String strStudentUsername;

    /**
     * The ID of the activity that files are being submitted for.
     */
    private String strActivityID;

    /**
     * The ID of the assignment for this submission.
     */
    private String strAssignmentID;

    /**
     * List of File objects, each representing one of the files 
     * submitted. Each path contained in one of these File objects 
     * points to a file on the web server (which is where each file 
     * submitted is temporarily stored, since files are uploaded 
     * one at a time).
     */
    private LinkedList submittedFiles;

    /**
     * @param strSubmissionID
     * @param strCourseID
     * @param strStudentUsername
     * @param strActivityID
     * @param strAssignment
     */
    public SubmissionObj(String strSubmissionID, String strCourseID,
            String strStudentUsername, String strActivityID,
            String strAssignmentID) {
        super();
        this.strSubmissionID = strSubmissionID;
        this.strCourseID = strCourseID;
        this.strStudentUsername = strStudentUsername;
        this.strActivityID = strActivityID;
        this.strAssignmentID = strAssignmentID;

        submittedFiles = new LinkedList();
    }

    public String getSubmissionID() {
        return this.strActivityID + this.strAssignmentID+this.strStudentUsername+this.strSubmissionID;
    }

    public String getStudentUsername() {
        return (strStudentUsername);
    }

    public String strActivityID() {
        return (strActivityID);
    }

    public List getSubmittedFiles() {
        return (submittedFiles);
    }

    /**
     * @return Returns the strCourseID.
     */
    public String getCourseID() {
        return strCourseID;
    }

    /**
     * @param strCourseID The strCourseID to set.
     */
    public void setCourseID(String strCourseID) {
        this.strCourseID = strCourseID;
    }

    /**
     * @return Returns the strActivityID.
     */
    public String getActivityID() {
        return strActivityID;
    }

    /**
     * @param strActivityID The strActivityID to set.
     */
    public void setActivityID(String strActivityID) {
        this.strActivityID = strActivityID;
    }

    /**
     * @return Returns the strAssignment.
     */
    public String getAssignmentID() {
        return strAssignmentID;
    }

    /**
     * @param strAssignment The strAssignment to set.
     */
    public void setAssignmentID(String strAssignmentID) {
        this.strAssignmentID = strAssignmentID;
    }

    public void recordUploadedFile(String strFile) {
        submittedFiles.add(strFile);
    }

    public void removeUploadedFile(String strFile) {
        submittedFiles.remove(strFile);
    }

	public String toString() 
	{
		return this.strSubmissionID;
	}

} // Submission