/** * Copyright (C) 2013 Premium Minds. * * This file is part of billy spain (ES Pack). * * billy spain (ES Pack) is free software: you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation, either version 3 of the License, or (at your option) any * later version. * * billy spain (ES Pack) 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 Lesser General Public License for more * details. * * You should have received a copy of the GNU Lesser General Public License * along with billy spain (ES Pack). If not, see <http://www.gnu.org/licenses/>. */ package com.premiumminds.billy.spain.util; import com.google.inject.Injector; import com.premiumminds.billy.spain.Config; import com.premiumminds.billy.spain.persistence.dao.DAOESRegionContext; import com.premiumminds.billy.spain.services.entities.ESRegionContext; import com.premiumminds.billy.spain.services.persistence.ESRegionContextPersistenceService; /** * Encapsulates all Context information for Spain. */ public class Contexts { Config configuration = new Config(); private final Spain spain; private final Continent continent; private final CanaryIslands canaryIslands; private final Injector injector; private final ESRegionContextPersistenceService persistenceService; public class Spain { public ESRegionContext allRegions() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao.get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.UUID)); } } public class Continent { public ESRegionContext allContinentRegions() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao.get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.UUID)); } public ESRegionContext alava() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Alava.UUID)); } public ESRegionContext albacete() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Albacete.UUID)); } public ESRegionContext alicante() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Alicante.UUID)); } public ESRegionContext almeria() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Almeria.UUID)); } public ESRegionContext asturias() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Asturias.UUID)); } public ESRegionContext avila() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Avila.UUID)); } public ESRegionContext badajoz() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Badajoz.UUID)); } public ESRegionContext baleares() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Baleares.UUID)); } public ESRegionContext barcelona() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Barcelona.UUID)); } public ESRegionContext bizkaia() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Bizkaia.UUID)); } public ESRegionContext burgos() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Burgos.UUID)); } public ESRegionContext caceres() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Caceres.UUID)); } public ESRegionContext cadiz() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Cadiz.UUID)); } public ESRegionContext cantabria() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Cantabria.UUID)); } public ESRegionContext castellon() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Castellon.UUID)); } public ESRegionContext ciudadReal() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.CiudadReal.UUID)); } public ESRegionContext cordoba() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Cordoba.UUID)); } public ESRegionContext cuenca() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Cuenca.UUID)); } public ESRegionContext gerona() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Gerona.UUID)); } public ESRegionContext gipuzkoa() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Gipuzkoa.UUID)); } public ESRegionContext granada() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Granada.UUID)); } public ESRegionContext guadalajara() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Guadalajara.UUID)); } public ESRegionContext huelva() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Huelva.UUID)); } public ESRegionContext huesca() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Huesca.UUID)); } public ESRegionContext jaen() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Jaen.UUID)); } public ESRegionContext laCoruna() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.LaCoruna.UUID)); } public ESRegionContext laRioja() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.LaRioja.UUID)); } public ESRegionContext leon() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Leon.UUID)); } public ESRegionContext lerida() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Lerida.UUID)); } public ESRegionContext lugo() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Lugo.UUID)); } public ESRegionContext madrid() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Madrid.UUID)); } public ESRegionContext malaga() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Malaga.UUID)); } public ESRegionContext murcia() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Murcia.UUID)); } public ESRegionContext navarra() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Navarra.UUID)); } public ESRegionContext orense() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Orense.UUID)); } public ESRegionContext palencia() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Palencia.UUID)); } public ESRegionContext pontevedra() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Pontevedra.UUID)); } public ESRegionContext salamanca() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Salamanca.UUID)); } public ESRegionContext segovia() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Segovia.UUID)); } public ESRegionContext sevilla() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Sevilla.UUID)); } public ESRegionContext soria() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Soria.UUID)); } public ESRegionContext tarragona() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Tarragona.UUID)); } public ESRegionContext teruel() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Teruel.UUID)); } public ESRegionContext toledo() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Toledo.UUID)); } public ESRegionContext valencia() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Valencia.UUID)); } public ESRegionContext valladolid() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Valladolid.UUID)); } public ESRegionContext zamora() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Zamora.UUID)); } public ESRegionContext zaragoza() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.Continental.Zaragoza.UUID)); } } public class CanaryIslands { public ESRegionContext allCanaryRegions() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao.get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.CanaryIslands.UUID)); } public ESRegionContext staCruzDeTenerife() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.CanaryIslands.StaCruzDeTenerife.UUID)); } public ESRegionContext lasPalmas() { DAOESRegionContext dao = Contexts.this .getInstance(DAOESRegionContext.class); return (ESRegionContext) dao .get(Contexts.this.configuration .getUID(Config.Key.Context.Spain.CanaryIslands.LasPalmas.UUID)); } } public Contexts(Injector injector) { this.spain = new Spain(); this.continent = new Continent(); this.canaryIslands = new CanaryIslands(); this.injector = injector; this.persistenceService = getInstance(ESRegionContextPersistenceService.class); } public Spain spain() { return this.spain; } public Continent continent() { return this.continent; } public CanaryIslands canaryIslands() { return this.canaryIslands; } public ESRegionContextPersistenceService persistence() { return this.persistenceService; } private <T> T getInstance(Class<T> clazz) { return this.injector.getInstance(clazz); } }