Package cn.edu.zju.acm.onlinejudge.judgeservice

Source Code of cn.edu.zju.acm.onlinejudge.judgeservice.MockProblemDAO

package cn.edu.zju.acm.onlinejudge.judgeservice;

import java.util.Hashtable;
import java.util.Map;
import java.util.concurrent.atomic.AtomicLong;

import cn.edu.zju.acm.onlinejudge.bean.Limit;
import cn.edu.zju.acm.onlinejudge.bean.Problem;
import cn.edu.zju.acm.onlinejudge.dao.ProblemDAO;

public class MockProblemDAO extends MockDAO implements ProblemDAO {
    private AtomicLong id = new AtomicLong();

    private Map<Long, Problem> problemMap = new Hashtable<Long, Problem>();

    public Problem getProblem(long problemId) {
        return cloneProblem(problemMap.get(problemId));
    }

    public void save(Problem problem) {
        problem.setId(id.getAndIncrement());
        update(problem);
    }

    public void update(Problem problem) {
        problemMap.put(problem.getId(), cloneProblem(problem));
    }

    private Problem cloneProblem(Problem problem) {
        Problem ret = new Problem();
        ret.setId(problem.getId());
        ret.setRevision(problem.getRevision());
        ret.setLimit(cloneLimit(problem.getLimit()));
        ret.setChecker(problem.isChecker());
        return ret;
    }

    private Limit cloneLimit(Limit limit) {
        Limit ret = new Limit();
        ret.setId(limit.getId());
        ret.setMemoryLimit(limit.getMemoryLimit());
        ret.setOutputLimit(limit.getOutputLimit());
        ret.setTimeLimit(limit.getTimeLimit());
        return ret;
    }
}
TOP

Related Classes of cn.edu.zju.acm.onlinejudge.judgeservice.MockProblemDAO

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.