Subversion Repositories bacoAlunos

Rev

Rev 1303 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package pt.estgp.estgweb.services.sigesimports;

import org.apache.log4j.Logger;
import pt.estgp.estgweb.domain.CourseUnit;
import pt.estgp.estgweb.services.courseunits.SaveCourseUnitProgram;
import pt.estgp.estgweb.services.logresults.ILogMessages;
import pt.estgp.estgweb.services.logresults.LogMessageTypeEnum;
import pt.estgp.estgweb.services.logresults.impl.DefaultLogMessage;
import pt.estgp.estgweb.services.logresults.impl.DefaultLogMessages;

import java.util.ArrayList;
import java.util.List;

/**
 * @author Jorge Machado
 */

public class GenerateCourseUnitProgramsService extends YearSemestreCourseUnitIteratorService
{
    private static final 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger = 1.5.0/docs/api/java/util/logging/Logger.html">Logger.getLogger(GenerateCourseUnitProgramsService.class);









    int failedPrograms = 0;
    int dontHaveProgram = 0;
    int ok = 0;
    @1.5.0/docs/api/java/lang/Override.html">Override
    protected ILogMessages runUnit(CourseUnit unit,DefaultLogMessages logMessages) {
        SaveCourseUnitProgram service = new SaveCourseUnitProgram();
        List<String> errors = new ArrayList<String>();
        List<String> warnings = new ArrayList<String>();
        try
        {
            if(unit.getCourseUnitProgram() != null)
            {
                logMessages.addMessage(new DefaultLogMessage("import.info",LogMessageTypeEnum.INFO,"Unit: " + unit.getCode() + " generating PDF:"));
                serviceLogInfo(logMessages.getLastMessage());
                logger.info(logMessages.getLastMessage());

                service.createPdf(unit, errors, null, warnings);
                if(warnings.size() > 0)
                {
                    for(1.5.0/docs/api/java/lang/String.html">String warning: warnings)
                    {
                        logMessages.addMessage(new DefaultLogMessage("import.warning",LogMessageTypeEnum.WARNING,"Unit: " + unit.getCode() + " Warning generating PDF:" + warning));
                        serviceLogWarn(logMessages.getLastMessage());
                        logger.warn(logMessages.getLastMessage());
                    }
                }

                if(errors.size() == 0)
                    ok++;
                else
                {
                    failedPrograms++;
                    for(1.5.0/docs/api/java/lang/String.html">String error: errors)
                    {
                        logMessages.addMessage(new DefaultLogMessage("import.error",LogMessageTypeEnum.ERROR,"Unit: " + unit.getCode() + " ERROR generating PDF:" + error));
                        serviceLogError(logMessages.getLastMessage());
                        logger.error(logMessages.getLastMessage());
                    }
                }
            }
            else
            {
                dontHaveProgram++;
                logMessages.addMessage(new DefaultLogMessage("import.info",LogMessageTypeEnum.INFO,"Unit: " + unit.getCode() + " DONT HAVE PROGRAM"));
                serviceLogInfo(logMessages.getLastMessage());
                logger.info(logMessages.getLastMessage());
            }

        }
        catch (1.5.0/docs/api/java/lang/Throwable.html">Throwable e)
        {
            failedPrograms++;
            serviceLogError(e.toString());
            logMessages.addMessage(new DefaultLogMessage("import.error",LogMessageTypeEnum.ERROR,e.toString()));
            logger.error(e,e);
        }
        return logMessages;
    }

    @1.5.0/docs/api/java/lang/Override.html">Override
    protected void resetVariables() {
        failedPrograms = 0;
        dontHaveProgram = 0;
        ok=0;
    }

    @1.5.0/docs/api/java/lang/Override.html">Override
    protected void printStatsVariables() {
        logger.info("Generated Programs " + ok);
        serviceLogInfo("Generated Programs " + ok);
        logger.info("Failed Programs " + failedPrograms);
        serviceLogInfo("Failed Programs " + failedPrograms);
        logger.info("Without Programs to generate " + dontHaveProgram);
        serviceLogInfo("Without Programs to generate " + dontHaveProgram);
    }



}