@Override public Object makeObject() throws Exception { // tell store factory to create a new store instance TopicMapStoreIF o = sfactory.createStore(); log.debug("makeObject " + o); stores.add(o); return o; }
@Override public void startDocument () { // Initialize variables parents.clear(); info.clear(); keep_content = false; content = new StringBuilder(); topicmap = stores.createStore().getTopicMap(); builder = topicmap.getBuilder(); makePSIs(); log.info("Processing document '" + doc_address + "'."); // Initialize list of accumulated processed documents this.processed_documents_accumulated = new HashSet(); }
@Override public synchronized TopicMapStoreIF createStore(boolean readonly) throws IOException { if (!isOpen()) open(); // create new store TopicMapStoreIF store; if (readonly) store = sfactory_ro.createStore(); else store = sfactory_rw.createStore(); // register store store.setReference(this); // register listeners ((AbstractTopicMapStore)store).setTopicListeners(getTopicListeners()); return store; }
TopicMapIF targetTopicMap = storefactory.createStore().getTopicMap(); TopicIF targetTopic = createTopic(targetTopicMap, indicators, sources, subjects); int count = 0;
TopicMapIF targetTopicMap = storefactory.createStore().getTopicMap(); TopicIF targetTopic = createTopic(targetTopicMap, indicators, sources, subjects); int count = 0;
protected TopicMapStoreIF createStore() { try { // create new empty store TopicMapStoreIF store = sfactory.createStore(); TopicMapIF merged = store.getTopicMap(); // merge in all referenced topic maps Iterator<String> iter = refkeys.iterator(); while (iter.hasNext()) { String refkey = iter.next(); TopicMapReferenceIF ref = repository.getReferenceByKey(refkey); TopicMapStoreIF s = ref.createStore(true); MergeUtils.mergeInto(merged, s.getTopicMap()); s.close(); } // register store store.setReference(this); return store; } catch (IOException e) { throw new OntopiaRuntimeException(e); } }
public Collection<TopicIF> getTopics(Collection<LocatorIF> indicators, Collection<LocatorIF> sources, Collection<LocatorIF> subjects) { if (indicators.isEmpty() && sources.isEmpty() && subjects.isEmpty()) return Collections.emptySet(); // lookup or create target topic TopicMapIF targetTopicMap = storefactory.createStore().getTopicMap(); TopicIF targetTopic = createTopic(targetTopicMap, indicators, sources, subjects); // make sure topic knows it's being loaded setLoaded(targetTopic); TopicMapIF sourceTopicMap = new InMemoryTopicMapStore().getTopicMap(); sourceTopicMap.getStore().setBaseAddress(targetTopicMap.getStore().getBaseAddress()); // send get-topic request try { String params = encodeIdentityParameters(indicators, sources, subjects); if (tmid != null) params = "topicmap=" + tmid + "&" + params; loadXTM("get-topic", params, false, sourceTopicMap); } catch (IOException e) { throw new OntopiaRuntimeException(e); } TopicIF sourceTopic = findTopic(sourceTopicMap, indicators, sources, subjects); TopicMapSynchronizer.update(targetTopicMap, sourceTopic); targetTopic = findTopic(targetTopicMap, indicators, sources, subjects); return (targetTopic == null ? null : Collections.singleton(targetTopic)); }
TopicMapIF targetTopicMap = storefactory.createStore().getTopicMap(); TopicIF targetTopic = createTopic(targetTopicMap, indicators, sources, subjects);
topicmap = stores.createStore().getTopicMap(); topicmaps.add(topicmap);
TopicMapStoreIF store = store_factory.createStore(); topicmap = store.getTopicMap(); builder = topicmap.getBuilder();
@Override public TopicMapImpl createTopicMap(Locator loc) throws TopicMapExistsException { TopicMapImpl tm = getTopicMap(loc); if (tm != null) { tm.close(); throw new TopicMapExistsException("Topic map with base locator " + loc + " already exists."); } TopicMapStoreIF store = storeFactory.createStore(); store.setBaseAddress(((LocatorImpl) loc).getWrapped()); store.commit(); // refresh the source source.refresh(); tm = new TopicMapImpl(this, store); return tm; }
@Override protected TopicMapIF read(TopicMapStoreFactoryIF store_factory) throws IOException { TopicMapStoreIF store = store_factory.createStore(); TopicMapIF topicmap = store.getTopicMap(); // Set base address on in-memory store if ((store instanceof AbstractTopicMapStore) && store.getBaseAddress() == null) ((AbstractTopicMapStore) store).setBaseAddress(getBaseAddress()); try (Reader reader = makeReader((String) null, new JTMEncodingSniffer())) { JTMStreamingParser parser = new JTMStreamingParser(topicmap); parser.parse(reader); } catch (JTMException e) { throw new IOException("Could not deserialize JTM fragment: " + e.getMessage()); } // Process class-instance associations ClassInstanceUtils.resolveAssociations2(topicmap); return topicmap; }
@Override protected TopicMapIF read(TopicMapStoreFactoryIF store_factory) throws IOException { TopicMapStoreIF store = store_factory.createStore(); TopicMapIF topicmap = store.getTopicMap();
@Override protected TopicMapIF read(TopicMapStoreFactoryIF store_factory) throws IOException { TopicMapStoreIF store = store_factory.createStore(); TopicMapIF topicmap = store.getTopicMap();
@Override protected TopicMapIF exportAndReread(TopicMapIF topicmap, File outfile) throws IOException { // First we export TMXMLWriter writer = new TMXMLWriter(outfile); writer.write(topicmap); writer.close(); // Then we read back in TopicMapIF topicmap2 = getStoreFactory().createStore().getTopicMap(); TMXMLReader reader = new TMXMLReader(outfile); reader.importInto(topicmap2); return topicmap2; } }
@Override protected TopicMapIF exportAndReread(TopicMapIF topicmap, File outfile) throws IOException { // First we export XTMTopicMapWriter writer = new XTMTopicMapWriter(outfile); writer.setVersion(XTMVersion.XTM_1_0); writer.write(topicmap); // Then we read back in TopicMapIF topicmap2 = getStoreFactory().createStore().getTopicMap(); XTMTopicMapReader reader = new XTMTopicMapReader(outfile); reader.setValidation(false); reader.importInto(topicmap2); return topicmap2; } }
/** * INTERNAL: Performs the actual canonicalization. */ protected void canonicalize(URL infile, File tmpfile, File outfile) throws IOException { // Get store factory TopicMapStoreFactoryIF sfactory = getStoreFactory(); // Read document TopicMapIF source1 = sfactory.createStore().getTopicMap(); if (infile.getFile().endsWith(".xtm")) { XTMTopicMapReader reader = new XTMTopicMapReader(infile); reader.setValidation(false); reader.importInto(source1); } else { throw new OntopiaRuntimeException("Unknown syntax: " + infile); } // Export topic map, then read it back in TopicMapIF source2 = exportAndReread(source1, tmpfile); source1.getStore().close(); // Canonicalize reimported document CanonicalTopicMapWriter cwriter = new CanonicalTopicMapWriter(outfile); cwriter.setBaseLocator(new URILocator(tmpfile)); cwriter.write(source2); // Clean up source2.getStore().close(); }
TopicMapIF source2 = sfactory.createStore().getTopicMap(); new XTMTopicMapReader(tempfile).importInto(source2);
@Override protected void canonicalize(URL infile, File outfile) throws IOException { // Get store factory TopicMapStoreFactoryIF sfactory = getStoreFactory(); TopicMapStoreIF store = sfactory.createStore(); // Read document TopicMapIF source = store.getTopicMap(); XTMTopicMapReader reader = new XTMTopicMapReader(infile); reader.setValidation(false); reader.importInto(source); // Canonicalize document CanonicalTopicMapWriter cwriter = new CanonicalTopicMapWriter(outfile); cwriter.setBaseLocator(new URILocator(infile)); cwriter.write(source); store.close(); }