/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package infoObjects;

import java.io.Serializable;
import java.util.ArrayList;

import ub.scp2.entities.Languaje;

/**
 * Clase que guarda la información asociada a una tarea
 *
 * @author Enrique M.L
 */
public class InfoTarea implements Serializable {
    
    /**
     *
     */
    private static final long serialVersionUID = 1L;
    /**
     * idTarea guarda el id de la tarea
     */
    private Long idTarea;
    /**
     * nombreFichero guarda el nombre con el que se ha guardar la tarea en un fichero
     */
    private ArrayList<String> nombreFicheros = null;
    /**
     * ficheroMain guarda el nombre del fichero que contiene la funcion main para compilar
     */
    private String ficheroMain = null;
    /**
     * codigo guarda el código de una tarea
     */
    private ArrayList<byte[]> ficheros = null;
    /**
     * argumenos necesarios para compilar el codigo
     */
    private String argumentos = null;
    /**
     * tieneMakefile indica si el codigo consta de makefile
     */
    private boolean tieneMakefile = false;
    /**
     * languaje guarda información sobre el lenguaje de programación de la tarea
     */
    private Languaje languaje;
    /**
     * tieneCodigo indica si la tarea tiene código
     */
    private boolean tieneCodigo;
    
    /**
     * Constructor de InfoTarea
     * 
     * @param pIdTarea
     * @param pCodigo
     * @param pNombreFichero
     * @param pLanguaje
     * @param pTieneCodigo
     */
    public InfoTarea(Long pIdTarea, ArrayList<byte[]> pFicheros, ArrayList<String> pNombreFicheros,
            String pArgumentos, Languaje pLanguaje, boolean pTieneCodigo, boolean pTieneMakefile,
            String pFicheroMain){
        ficheroMain = pFicheroMain;
        ficheros = pFicheros;
        idTarea = pIdTarea;
        nombreFicheros = pNombreFicheros;
        argumentos = pArgumentos;
        languaje = pLanguaje;
        tieneCodigo = pTieneCodigo;
        tieneMakefile = pTieneMakefile;
    }
    
    /**
     * Constructor de InfoTarea
     * 
     * @param pIdTarea
     */
    public InfoTarea(Long pIdTarea) {
    	idTarea = pIdTarea;
	}

    public void setFicheros(ArrayList<byte[]> ficheros) {
        this.ficheros = ficheros;
    }
    
    public void setIdTarea(Long pIdTarea){
        idTarea = pIdTarea;
    }
    
    public void setNombreFicheros(ArrayList<String> nombreFicheros) {
        this.nombreFicheros = nombreFicheros;
    }
    
    public void setLanguaje(Languaje pLanguaje){
        languaje = pLanguaje;
    }

    public ArrayList<byte[]> getFicheros() {
        return ficheros;
    }
    
    public Languaje getLanguaje(){
        return languaje;
    }
    
    public ArrayList<String> getNombreFicheros() {
        return nombreFicheros;
    }
    
    public Long getIdTarea(){
        return idTarea;
    }

    public String getFileExtension() {
        return languaje.getFileExtension();
    }
    
    public boolean tieneCodigo(){
    	return tieneCodigo;
    }
    
    public boolean tieneMakefile() {
        return tieneMakefile;
    }

    public String getArgumentos() {
        return argumentos;
    }

    public void setArgumentos(String argumentos) {
        this.argumentos = argumentos;
    }

    public String getFicheroMain() {
        return ficheroMain;
    }

    public void setFicheroMain(String ficheroMain) {
        this.ficheroMain = ficheroMain;
    }

    public boolean isTieneMakefile() {
        return tieneMakefile;
    }

    public void setTieneMakefile(boolean tieneMakefile) {
        this.tieneMakefile = tieneMakefile;
    }

    public boolean isTieneCodigo() {
        return tieneCodigo;
    }

    public void setTieneCodigo(boolean tieneCodigo) {
        this.tieneCodigo = tieneCodigo;
    }


    
}
