package net.sf.minuteProject.utils.catalog; import net.sf.minuteProject.loader.catalog.databasecatalog.Databasecatalog; import net.sf.minuteProject.loader.catalog.databasecatalog.DatabasecatalogHolder; import net.sf.minuteProject.loader.catalog.technologycatalog.Technologycatalog; import net.sf.minuteProject.loader.catalog.technologycatalog.TechnologycatalogHolder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class CatalogUtils { private static Logger logger = LoggerFactory.getLogger(CatalogUtils.class); private static TechnologycatalogHolder technologycatalogHolder; private static DatabasecatalogHolder databasecatalogHolder; public static void resetTechnologycatalogHolder () { technologycatalogHolder = null; } public static void resetDatabasecatalogHolder () { databasecatalogHolder = null; } public static TechnologycatalogHolder getPublishedTechnologyCatalogHolder(String catalogDir) { if (catalogDir==null) catalogDir=getDefaultCatalogDir(); if (technologycatalogHolder==null) technologycatalogHolder = loadTechnologyCatalogHolder(catalogDir+"/technology-catalog.xml"); return technologycatalogHolder; } public static TechnologycatalogHolder loadTechnologyCatalogHolder(String name) { try { return getTechnologyCatalogLoader(name).load(); } catch (Exception e) { logger.info("Failed to load with path:" + name + ", retrying...", e); return new TechnologycatalogHolder(); } } private static Technologycatalog getTechnologyCatalogLoader(String name) { return new Technologycatalog(name); } public static DatabasecatalogHolder getPublishedDatabaseCatalogHolder(String catalogDir) { if (catalogDir==null) catalogDir=getDefaultCatalogDir(); if (databasecatalogHolder==null) databasecatalogHolder = loadDatabaseCatalogHolder(catalogDir+"/database-catalog.xml"); return databasecatalogHolder; } public static DatabasecatalogHolder loadDatabaseCatalogHolder(String name) { try { return getDatabaseCatalogLoader(name).load(); } catch (Exception e) { logger.error("Failed to load with path:" + name + ", retrying...", e); return new DatabasecatalogHolder(); } } private static Databasecatalog getDatabaseCatalogLoader(String name) { return new Databasecatalog(name); } public static String getDefaultCatalogDir () { return "catalog"; } }