/* * Copyright (C) 2014 Maigret Aurelien / Colin Julien * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package net.dewep.intranetepitech.api; import java.util.HashMap; import java.util.Map; import fr.qinder.api.APICookie; import fr.qinder.api.APIRequest; import fr.qinder.api.APIRequestsListener; /** * TODO: Comments this class * * @author Maigret Aurelien * @author Colin Julien */ public final class IntranetAPI { private static volatile IntranetAPI instance = null; private Map<String, APIRequestsListener> api; private IntranetAPI() { api = new HashMap<String, APIRequestsListener>(); APICookie.add(Configurations.getFullHost(), "language", "fr"); } private static IntranetAPI getInstance() { if (IntranetAPI.instance == null) { synchronized (IntranetAPI.class) { if (IntranetAPI.instance == null) { IntranetAPI.instance = new IntranetAPI(); } } } return IntranetAPI.instance; } private APIRequestsListener createListener() { return new APIRequestsListener(); } public static APIRequestsListener request(APIRequest request) { return IntranetAPI.getInstance().createListener().request(request); } private APIRequestsListener createListener(String id) { if (api.get(id) != null) { api.get(id).cancelTask(); api.remove(id); } api.put(id, new APIRequestsListener()); return api.get(id); } public static APIRequestsListener request(String id, APIRequest request) { return IntranetAPI.getInstance().createListener(id).request(request); } }