private String toString(Object obj) { if (obj instanceof TopicIF) { Iterator it = ((TopicIF) obj).getItemIdentifiers().iterator(); while (it.hasNext()) { LocatorIF loc = (LocatorIF) it.next(); String addr = loc.getAddress(); int ix = addr.indexOf('#'); //! int ix = addr.lastIndexOf('/'); // include file name if (ix != -1) return addr.substring(ix + 1); } return ((TopicIF) obj).getObjectId(); } else if (obj == null) return "null"; else return obj.toString(); }
@Override public String getName() { if (name != null) return name; if (base == null) return "@" + type.getObjectId(); Iterator it = type.getItemIdentifiers().iterator(); String baseadr = base.getAddress(); while (it.hasNext()) { LocatorIF loc = (LocatorIF) it.next(); String address = loc.getAddress(); if (address.startsWith(baseadr)) return address.substring(baseadr.length() + 1); } return "@" + type.getObjectId(); }
private String getId(TopicIF topic) { String base = topic.getTopicMap().getStore().getBaseAddress().getAddress(); Iterator it = topic.getItemIdentifiers().iterator(); while (it.hasNext()) { LocatorIF loc = (LocatorIF) it.next(); String addr = loc.getAddress(); if (addr.startsWith(base)) return addr.substring(base.length() + 1); } return topic.getObjectId(); } }
public void addPage(String mapHandle, TopicPage page, String tmName) { Collection<TopicPage> currentPages = pagesMap.get(mapHandle); if (currentPages == null) { currentPages = new HashSet<TopicPage>(); pagesMap.put(mapHandle, currentPages); if (tmName != null) tmNameMap.put(mapHandle, tmName); } currentPages.add(page); if (name == null) name = TopicStringifiers.getDefaultStringifier() .toString(page.getTopic()); sourceLocators.addAll(page.getTopic().getItemIdentifiers()); subjectIndicators.addAll(page.getTopic().getSubjectIdentifiers()); subjectLocators.addAll(page.getTopic().getSubjectLocators()); }
private static void copyTopic(TopicMapIF tm, TopicIF referenced) { TopicMapBuilderIF builder = tm.getBuilder(); TopicIF topic = builder.makeTopic(); // copy identity Iterator<LocatorIF> it = referenced.getSubjectLocators().iterator(); while (it.hasNext()) topic.addSubjectLocator(it.next()); it = referenced.getSubjectIdentifiers().iterator(); while (it.hasNext()) topic.addSubjectIdentifier(it.next()); it = referenced.getItemIdentifiers().iterator(); while (it.hasNext()) topic.addItemIdentifier(it.next()); // copy name builder.makeTopicName(topic, TopicStringifiers.toString(referenced)); }
private String getTopicId(TopicIF topic) { LocatorIF baseaddr = topic.getTopicMap().getStore().getBaseAddress(); if (baseaddr != null) { String base = baseaddr.getAddress(); Iterator it = topic.getItemIdentifiers().iterator(); while (it.hasNext()) { String extractedId = extractRelativeId(base, (LocatorIF) it.next()); if (extractedId != null) return extractedId; } } return "id" + topic.getObjectId(); }
public void addPage(String mapHandle, TopicPage page, String tmName) { Collection<TopicPage> currentPages = pagesMap.get(mapHandle); if (currentPages == null) { currentPages = new HashSet<TopicPage>(); pagesMap.put(mapHandle, currentPages); if (tmName != null) tmNameMap.put(mapHandle, tmName); } currentPages.add(page); if (name == null) name = TopicStringifiers.getDefaultStringifier() .toString(page.getTopic()); sourceLocators.addAll(page.getTopic().getItemIdentifiers()); subjectIndicators.addAll(page.getTopic().getSubjectIdentifiers()); subjectLocators.addAll(page.getTopic().getSubjectLocators()); }
private static void copyTopic(TopicMapIF tm, TopicIF referenced) { TopicMapBuilderIF builder = tm.getBuilder(); TopicIF topic = builder.makeTopic(); // copy identity Iterator<LocatorIF> it = referenced.getSubjectLocators().iterator(); while (it.hasNext()) topic.addSubjectLocator(it.next()); it = referenced.getSubjectIdentifiers().iterator(); while (it.hasNext()) topic.addSubjectIdentifier(it.next()); it = referenced.getItemIdentifiers().iterator(); while (it.hasNext()) topic.addItemIdentifier(it.next()); // copy name builder.makeTopicName(topic, TopicStringifiers.toString(referenced)); }
@Override public boolean matches(TMObjectIF object) { if (object == null) return false; if (!(object instanceof TopicIF)) return false; TopicIF topic = (TopicIF) object; LocatorIF resolved = topic.getTopicMap().getStore().getBaseAddress().resolveAbsolute(relativeUri); return topic.getItemIdentifiers().contains(resolved); }
protected void writeTopicNames(TopicIF topic, ContentHandler dh) throws SAXException { String objid = topic.getObjectId(); if (alreadyExported.contains(objid)) return; alreadyExported.add(objid); atts.clear(); addId(atts, topic); dh.startElement(EMPTY_NAMESPACE, EMPTY_LOCALNAME, "topic", atts); if (topic.getSubjectLocators().size() > 0 || topic.getSubjectIdentifiers().size() > 0 || (topic.getItemIdentifiers().size() > 0 && export_srclocs)) writeSubjectIdentity(topic, dh); if ((topic.getTopicNames()).size() > 0) writeTopicNames(topic.getTopicNames(),dh); dh.endElement(EMPTY_NAMESPACE, EMPTY_LOCALNAME, "topic"); }
private void transferLoadedTopics(Collection<TopicIF> loaded, TopicMapIF targetTopicMap) { Iterator<TopicIF> it = loaded.iterator(); while (it.hasNext()) { TopicIF sourceRelated = it.next(); TopicIF targetRelated = createTopic(targetTopicMap, sourceRelated.getSubjectIdentifiers(), sourceRelated.getItemIdentifiers(), sourceRelated.getSubjectLocators()); if (!isLoaded(targetRelated)) { setLoaded(targetRelated); TopicMapSynchronizer.update(targetTopicMap, sourceRelated); } } }
private void transferLoadedTopics(Collection<TopicIF> loaded, TopicMapIF targetTopicMap) { Iterator<TopicIF> it = loaded.iterator(); while (it.hasNext()) { TopicIF sourceRelated = it.next(); TopicIF targetRelated = createTopic(targetTopicMap, sourceRelated.getSubjectIdentifiers(), sourceRelated.getItemIdentifiers(), sourceRelated.getSubjectLocators()); if (!isLoaded(targetRelated)) { setLoaded(targetRelated); TopicMapSynchronizer.update(targetTopicMap, sourceRelated); } } }
@Override public int compare(Object o1, Object o2) { TopicIF t1 = (TopicIF) o1; TopicIF t2 = (TopicIF) o2; int cmp = compareLocatorSet(t1.getSubjectIdentifiers(), t2.getSubjectIdentifiers()); if (cmp == 0) cmp = compareLocatorSet(t1.getSubjectLocators(), t2.getSubjectLocators()); if (cmp == 0) cmp = compareLocatorSet(t1.getItemIdentifiers(), t2.getItemIdentifiers()); return cmp; }
public void testIIStatic() throws InvalidQueryException, IOException { load("instance-of.ltm"); TopicIF topic4 = getTopicById("topic4"); LocatorIF ii = (LocatorIF) topic4.getItemIdentifiers().iterator().next(); update("delete item-identifier(topic4, \"" + ii.getAddress() + "\")"); assertTrue("topic retains item identifier after delete", topic4.getItemIdentifiers().isEmpty()); }
public Collection getPagesFor(TopicIF topic) { TopicIndexIF ix = ((RemoteTopicMapStore) topicmap.getStore()) .getTopicIndex(); return ix.getTopicPages(topic.getSubjectIdentifiers(), topic.getItemIdentifiers(), topic.getSubjectLocators()); }
public void testIIDynamic() throws InvalidQueryException, IOException { load("instance-of.ltm"); TopicIF topic4 = getTopicById("topic4"); update("delete item-identifier(topic4, $II) from item-identifier(topic4, $II)"); assertTrue("topic retains item identifier after delete", topic4.getItemIdentifiers().isEmpty()); }
@Override public void run(MasterTest mt) { TopicIF t = (TopicIF)topicmap.getObjectById(mt.objectId); assertTrue("Topic source locator is not set", t.getItemIdentifiers().contains(URILocator.create("x:source-locator"))); assertTrue("Topic not found by source locator", topicmap.getObjectByItemIdentifier(URILocator.create("x:source-locator")).equals(t)); } });
public void testTopicMapBuilder() throws UniquenessViolationException { TopicMapBuilderIF builder = tm.getBuilder(); assertTrue("getBuilder (not null)", builder != null); // makeTopic(topicmap, sgmlid) try { TopicIF topic1 = builder.makeTopic(); topic1.addItemIdentifier(base.resolveAbsolute("#grove")); assertTrue("makeTopic1 (resid not empty)", topic1.getItemIdentifiers().size() > 0); assertTrue("makeTopic1 (sgmlid is set)", topic1.getItemIdentifiers().contains(base.resolveAbsolute("#grove"))); } catch (ConstraintViolationException e) { fail("Source locator was duplicated"); } }
@Override public void run(MasterTest mt) { TopicIF t = (TopicIF)topicmap.getObjectById(mt.objectId); assertTrue("Topic source locator is set", !t.getItemIdentifiers().contains(URILocator.create("x:source-locator"))); assertTrue("Topic found by source locator", topicmap.getObjectByItemIdentifier(URILocator.create("x:source-locator")) == null); } });
@Override public void run(MasterTest mt) { TopicIF t = (TopicIF)topicmap.getObjectById(mt.objectId); assertTrue("Added topic not found", t != null); if (testInitialProperties) { assertTrue("Subject locator is set", t.getSubjectLocators().isEmpty()); assertTrue("Source locators is set", t.getItemIdentifiers().isEmpty()); assertTrue("Subject identifiers is set", t.getSubjectIdentifiers().isEmpty()); assertTrue("Types is set", t.getTypes().isEmpty()); assertTrue("Base names is set", t.getTopicNames().isEmpty()); assertTrue("Occurrences is set", t.getOccurrences().isEmpty()); } } });