package org.infoobject.magicmap.components; import org.infoobject.core.components.AbstractManagerFactory; import org.infoobject.core.components.ModelFactory; import org.infoobject.core.infoobject.dao.InformationObjectRepository; import org.infoobject.openrdf.infoobject.RdfInformationObjectRepository; import org.infoobject.magicmap.node.application.InformationNodeLoader; import org.openrdf.repository.RepositoryException; import org.openrdf.repository.sail.SailRepository; import org.openrdf.sail.memory.MemoryStore; import java.io.File; /** * <p> * Class PluginManagerFactory ZUSAMMENFASSUNG * </p> * <p> * DETAILS * </p> * * @author Jan Friderici * Date: 16.08.2008 * Time: 17:31:29 */ public class PluginManagerFactory extends AbstractManagerFactory { private InformationObjectRepository informationObjectRepository; private InformationNodeLoader informationNodeLoader; public PluginManagerFactory(ModelFactory modelFactory) { super(modelFactory); } protected void handleException(String message, Exception ex) { ex.printStackTrace(); throw new RuntimeException(ex); } public InformationObjectRepository getInformationObjectRepository() { if (informationObjectRepository == null) { File dataDir = new File(System.getProperty("user.home") + "/.mmnfo/rdf"); SailRepository sailRepository = new SailRepository(new MemoryStore(dataDir)); try { sailRepository.initialize(); } catch (RepositoryException e) { handleException("Init RDF", e); } informationObjectRepository = new RdfInformationObjectRepository(sailRepository); } return informationObjectRepository; } public InformationNodeLoader getInformationNodeLoader() { if (informationNodeLoader == null) { informationNodeLoader = new InformationNodeLoader(getInformationObjectManager()); } return informationNodeLoader; } @Override public void start() { super.start(); } }