package org.oregami.data; import com.google.inject.persist.Transactional; import org.oregami.entities.datalist.*; import org.oregami.util.StartHelper; public class BaseListFiller { private boolean initialized; @Transactional public void initBaseLists() { if (!initialized) { if (StartHelper.getInstance(BaseListFinder.class).getTitleType(TitleType.ORIGINAL_TITLE)==null) { initGameEntryType(); initDemoContentType(); initReleaseType(); initTitleType(); initScript(); initHardwarePlatformType(); initSoftwarePlatformType(); initReleaseGroupReason(); initUnReleasedState(); initReleaseState(); initCensorshipType(); initAddOnContentType(); initTitleLocation(); initRemakeEnhancementType(); initialized = true; } } } public static <T> T getInstance(Class<T> c) { return StartHelper.getInstance(c); } private void initSoftwarePlatformType() { getInstance(SoftwarePlatformTypeDao.class).save(new SoftwarePlatformType(SoftwarePlatformType.BUILT_IN)); getInstance(SoftwarePlatformTypeDao.class).save(new SoftwarePlatformType(SoftwarePlatformType.DESKTOP)); getInstance(SoftwarePlatformTypeDao.class).save(new SoftwarePlatformType(SoftwarePlatformType.MOBILE)); getInstance(SoftwarePlatformTypeDao.class).save(new SoftwarePlatformType(SoftwarePlatformType.SPECIAL_SOFTWARE)); } private void initHardwarePlatformType() { getInstance(HardwarePlatformTypeDao.class).save(new HardwarePlatformType(HardwarePlatformType.CONSOLES_EUROPE_NORTHAMERICA)); getInstance(HardwarePlatformTypeDao.class).save(new HardwarePlatformType(HardwarePlatformType.CONSOLES_NON_EUROPE_NORTHAMERICA)); getInstance(HardwarePlatformTypeDao.class).save(new HardwarePlatformType(HardwarePlatformType.HANDHELDS_EUROPE_NORTHAMERICA)); getInstance(HardwarePlatformTypeDao.class).save(new HardwarePlatformType(HardwarePlatformType.HANDHELDS_NON_EUROPE_NORTHAMERICA)); getInstance(HardwarePlatformTypeDao.class).save(new HardwarePlatformType(HardwarePlatformType.HOME_COMPUTERS_ASIA)); getInstance(HardwarePlatformTypeDao.class).save(new HardwarePlatformType(HardwarePlatformType.HOME_COMPUTERS_EUROPE_NORTHAMERICA)); getInstance(HardwarePlatformTypeDao.class).save(new HardwarePlatformType(HardwarePlatformType.MOBILE)); getInstance(HardwarePlatformTypeDao.class).save(new HardwarePlatformType(HardwarePlatformType.NO_HARDWARE)); } private void initGameEntryType() { getInstance(GameEntryTypeDao.class).save(new GameEntryType(GameEntryType.ADD_ON_NOT_SIGNIFICANT)); getInstance(GameEntryTypeDao.class).save(new GameEntryType(GameEntryType.ADD_ON_SIGNIFICANT)); getInstance(GameEntryTypeDao.class).save(new GameEntryType(GameEntryType.COMPILATION)); getInstance(GameEntryTypeDao.class).save(new GameEntryType(GameEntryType.EPISODE)); getInstance(GameEntryTypeDao.class).save(new GameEntryType(GameEntryType.EPISODIC_GAME)); getInstance(GameEntryTypeDao.class).save(new GameEntryType(GameEntryType.GAME)); } private void initDemoContentType() { getInstance(DemoContentTypeDao.class).save(new DemoContentType(DemoContentType.ABSOLUTE_PLAY_COUNT_LIMIT)); getInstance(DemoContentTypeDao.class).save(new DemoContentType(DemoContentType.ABSOLUTE_PLAY_TIME_LIMIT)); getInstance(DemoContentTypeDao.class).save(new DemoContentType(DemoContentType.CONTENT_LIMIT)); getInstance(DemoContentTypeDao.class).save(new DemoContentType(DemoContentType.LEVEL_CAP)); getInstance(DemoContentTypeDao.class).save(new DemoContentType(DemoContentType.SAVING_DISABLED)); getInstance(DemoContentTypeDao.class).save(new DemoContentType(DemoContentType.SCORE_CAP)); getInstance(DemoContentTypeDao.class).save(new DemoContentType(DemoContentType.TECH_DEMO)); getInstance(DemoContentTypeDao.class).save(new DemoContentType(DemoContentType.TIME_LIMIT)); } private void initReleaseType() { getInstance(ReleaseTypeDao.class).save(new ReleaseType(ReleaseType.NATIVE_DEVELOPMENT)); getInstance(ReleaseTypeDao.class).save(new ReleaseType(ReleaseType.EMULATOR_RELEASE)); getInstance(ReleaseTypeDao.class).save(new ReleaseType(ReleaseType.PORT)); } private void initTitleType() { getInstance(TitleTypeDao.class).save(new TitleType(TitleType.ORIGINAL_TITLE)); getInstance(TitleTypeDao.class).save(new TitleType(TitleType.ABBREVIATION)); getInstance(TitleTypeDao.class).save(new TitleType(TitleType.BUDGET_RELEASE_TITLE)); getInstance(TitleTypeDao.class).save(new TitleType(TitleType.DEVELOPMENT_TITLE)); getInstance(TitleTypeDao.class).save(new TitleType(TitleType.INOFFICIAL_TITLE)); getInstance(TitleTypeDao.class).save(new TitleType(TitleType.RE_RELEASE_TITLE)); } private void initScript() { getInstance(ScriptDao.class).save(new Script(Script.LATIN)); getInstance(ScriptDao.class).save(new Script(Script.ARABIC)); getInstance(ScriptDao.class).save(new Script(Script.CHINESE)); getInstance(ScriptDao.class).save(new Script(Script.CYRILLIC)); getInstance(ScriptDao.class).save(new Script(Script.GREEK)); getInstance(ScriptDao.class).save(new Script(Script.HEBREW)); getInstance(ScriptDao.class).save(new Script(Script.JAPANESE)); getInstance(ScriptDao.class).save(new Script(Script.KOREAN)); } private void initReleaseGroupReason() { getInstance(ReleaseGroupReasonDao.class).save(new ReleaseGroupReason(ReleaseGroupReason.ORIGINAL)); getInstance(ReleaseGroupReasonDao.class).save(new ReleaseGroupReason(ReleaseGroupReason.CENSORED)); getInstance(ReleaseGroupReasonDao.class).save(new ReleaseGroupReason(ReleaseGroupReason.DEMO_PROMO)); getInstance(ReleaseGroupReasonDao.class).save(new ReleaseGroupReason(ReleaseGroupReason.ENHANCED)); getInstance(ReleaseGroupReasonDao.class).save(new ReleaseGroupReason(ReleaseGroupReason.REMAKE)); } private void initUnReleasedState() { getInstance(UnReleasedStateDao.class).save(new UnReleasedState(UnReleasedState.DEVELOPMENT_CANCELLED)); getInstance(UnReleasedStateDao.class).save(new UnReleasedState(UnReleasedState.IN_DEVELOPMENT)); getInstance(UnReleasedStateDao.class).save(new UnReleasedState(UnReleasedState.VAPORWARE)); } private void initReleaseState() { getInstance(ReleaseStateDao.class).save(new ReleaseState(ReleaseState.EMULATOR_RELEASE)); getInstance(ReleaseStateDao.class).save(new ReleaseState(ReleaseState.NATIVE_DEVELOPMENT)); getInstance(ReleaseStateDao.class).save(new ReleaseState(ReleaseState.PORT)); } private void initCensorshipType() { getInstance(CensorshipTypeDao.class).save(new CensorshipType(CensorshipType.AUDIO_CENSORSHIP)); getInstance(CensorshipTypeDao.class).save(new CensorshipType(CensorshipType.GAMEPLAY_CENSORSHIP_OTHER)); getInstance(CensorshipTypeDao.class).save(new CensorshipType(CensorshipType.GAMEPLAY_CENSORSHIP_VIOLENCE)); getInstance(CensorshipTypeDao.class).save(new CensorshipType(CensorshipType.SCRIPT_CENSORSHIP)); getInstance(CensorshipTypeDao.class).save(new CensorshipType(CensorshipType.VISUAL_CENSORSHIP_GORE)); getInstance(CensorshipTypeDao.class).save(new CensorshipType(CensorshipType.VISUAL_CENSORSHIP_NUDISM)); getInstance(CensorshipTypeDao.class).save(new CensorshipType(CensorshipType.VISUAL_CENSORSHIP_OTHER)); } private void initAddOnContentType() { getInstance(AddOnContentTypeDao.class).save(new AddOnContentType(AddOnContentType.ADDITIONAL_LEVELS_OR_MISSIONS)); getInstance(AddOnContentTypeDao.class).save(new AddOnContentType(AddOnContentType.CHANGES_TO_GAMERULES_OR_GAMEMECHANICS)); getInstance(AddOnContentTypeDao.class).save(new AddOnContentType(AddOnContentType.EXTENDED_AREA_OF_GAMEPLAY)); getInstance(AddOnContentTypeDao.class).save(new AddOnContentType(AddOnContentType.NEW_PLAYABLE_CHARACTERS)); getInstance(AddOnContentTypeDao.class).save(new AddOnContentType(AddOnContentType.NEW_CAMPAIGNS)); getInstance(AddOnContentTypeDao.class).save(new AddOnContentType(AddOnContentType.NEW_ENEMIES)); getInstance(AddOnContentTypeDao.class).save(new AddOnContentType(AddOnContentType.NEW_FEATURES)); getInstance(AddOnContentTypeDao.class).save(new AddOnContentType(AddOnContentType.NEW_ITEMS)); } private void initTitleLocation() { getInstance(TitleLocationDao.class).save(new TitleLocation(TitleLocation.BACK_COVER)); getInstance(TitleLocationDao.class).save(new TitleLocation(TitleLocation.FRONT_COVER)); getInstance(TitleLocationDao.class).save(new TitleLocation(TitleLocation.DESKTOP_ICON)); getInstance(TitleLocationDao.class).save(new TitleLocation(TitleLocation.INSTALLER)); getInstance(TitleLocationDao.class).save(new TitleLocation(TitleLocation.LOADING_SCREEN)); getInstance(TitleLocationDao.class).save(new TitleLocation(TitleLocation.MANUAL)); getInstance(TitleLocationDao.class).save(new TitleLocation(TitleLocation.MEDIUM)); getInstance(TitleLocationDao.class).save(new TitleLocation(TitleLocation.SPINE_COVER)); getInstance(TitleLocationDao.class).save(new TitleLocation(TitleLocation.START_MENU)); getInstance(TitleLocationDao.class).save(new TitleLocation(TitleLocation.TITLE_SCREEN)); } private void initRemakeEnhancementType() { getInstance(RemakeEnhancementTypeDao.class).save(new RemakeEnhancementType(RemakeEnhancementType.ADDITIONAL_CONTENT)); getInstance(RemakeEnhancementTypeDao.class).save(new RemakeEnhancementType(RemakeEnhancementType.ADDITIONAL_FMV)); getInstance(RemakeEnhancementTypeDao.class).save(new RemakeEnhancementType(RemakeEnhancementType.ADDITIONAL_SPEECH)); getInstance(RemakeEnhancementTypeDao.class).save(new RemakeEnhancementType(RemakeEnhancementType.BUGFREE_RELEASE)); getInstance(RemakeEnhancementTypeDao.class).save(new RemakeEnhancementType(RemakeEnhancementType.ENHANCED_GRAPHICS)); getInstance(RemakeEnhancementTypeDao.class).save(new RemakeEnhancementType(RemakeEnhancementType.ENHANCED_SOUND)); getInstance(RemakeEnhancementTypeDao.class).save(new RemakeEnhancementType(RemakeEnhancementType.IMPROVED_UI)); } public void reset() { initialized = false; } }