@Override public Reifiable getReified() { return (Reifiable) topicMap.wrapTMObject(wrapped.getReified()); }
@Override public void addReifier(ValueGeneratorIF topic) { TopicIF reifier = topic.getTopic(); if (reifier.getReified() != null) throw new InvalidTopicMapException("Cannot reify " + reifiable + " because "+ reifier + " already reifies " + reifier.getReified()); reifiable.setReifier(reifier); }
private static void moveReified(TopicIF target, TopicIF source) { ReifiableIF sreified = source.getReified(); if (sreified != null) { ReifiableIF treified = target.getReified(); if (treified != null) { if (!KeyGenerator.makeKey(sreified).equals(KeyGenerator.makeKey(treified))) throw new ConstraintViolationException("Cannot merge topics which " + "reify different objects"); // FIXME: must verify that parents are equal mergeInto(treified, sreified); } else { sreified.setReifier(null); sreified.setReifier(target); } } }
public static void removeNullTopic(TopicMapIF topicmap) { TopicIF topic = topicmap.getTopicBySubjectIdentifier(nullPSI); if (topic != null) { if (topic.getReified() != null) return; ClassInstanceIndexIF cindex = (ClassInstanceIndexIF)topicmap.getIndex(ClassInstanceIndexIF.class.getName()); if (cindex.usedAsType(topic)) return; ScopeIndexIF sindex = (ScopeIndexIF)topicmap.getIndex(ScopeIndexIF.class.getName()); if (sindex.usedAsTheme(topic)) return; topic.remove(); } }
public static void removeDefaultOccurrenceTopic(TopicMapIF topicmap) { TopicIF topic = topicmap .getTopicBySubjectIdentifier(PSI.getXTMOccurrence()); if (topic != null) { if (topic.getReified() != null) return; ClassInstanceIndexIF cindex = (ClassInstanceIndexIF)topicmap.getIndex(ClassInstanceIndexIF.class.getName()); if (cindex.usedAsType(topic)) return; ScopeIndexIF sindex = (ScopeIndexIF)topicmap.getIndex(ScopeIndexIF.class.getName()); if (sindex.usedAsTheme(topic)) return; topic.remove(); } } }
public void testOptionalClauseInferencing3() throws InvalidQueryException, IOException { load("jill.xtm"); List matches = new ArrayList(); Iterator it = topicmap.getTopics().iterator(); while (it.hasNext()) { TopicIF topic = (TopicIF) it.next(); TMObjectIF obj = topic.getReified(); if (obj != null) addMatch(matches, "A", topic, "C", obj, "B", null); } verifyQuery(matches, OPT_TYPECHECK_OFF + "{ topic-name($B, $A), topicmap($C) }, topic($A), reifies($A, $C)?"); }
public void testReifiesDynamic2() throws InvalidQueryException, IOException { load("jill.xtm"); TopicIF contract = getTopicById("jills-contract-topic"); TopicIF employment = getTopicById("jill-ontopia-topic"); // this test tries to delete an association that is *not* reified // by jills-contract-topic, and so it shouldn't do anything update("delete reifies(jills-contract-topic, $A) from instance-of($T, employment), reifies($T, $A)"); assertTrue("topic lost reified after delete", contract.getReified() != null); assertTrue("topic lost reified after delete", employment.getReified() != null); }
public void testReifiesDynamic() throws InvalidQueryException, IOException { load("jill.xtm"); TopicIF topic = getTopicById("jill-ontopia-topic"); AssociationIF reified = (AssociationIF) topic.getReified(); update("delete reifies($T, $A) from instance-of($T, employment), reifies($T, $A)"); assertTrue("topic retains reified after delete", topic.getReified() == null); assertTrue("reified retains reifier after delete", reified.getReifier() == null); }
public void testTMReifier() { // build test case TopicIF reifier = builder2.makeTopic(); topicmap2.setReifier(reifier); // merge MergeUtils.mergeInto(topicmap1, topicmap2); // verify assertTrue("topicmap1 had reifier after merge", topicmap1.getReifier() == null); reifier = (TopicIF) topicmap1.getTopics().iterator().next(); assertTrue("imported topic still reifying old topic map", reifier.getReified() == null); }
public void testReification() { TopicIF reifier = builder.makeTopic(); ReifiableIF reifiable = basename; assertTrue("Object reified by the reifying topic was found", reifier.getReified() == null); assertTrue("Topic reifying the reifiable was found", reifiable.getReifier() == null); reifiable.setReifier(reifier); assertTrue("No topic reifying the reifiable was found", reifiable.getReifier() == reifier); assertTrue("No object reified by the reifying topic was found", reifier.getReified() == reifiable); reifiable.setReifier(null); assertTrue("Object reified by the reifying topic was found", reifier.getReified() == null); assertTrue("Topic reifying the first reifiable was found", reifiable.getReifier() == null); }
public void testReification() { TopicIF reifier = builder.makeTopic(); ReifiableIF reifiable = tm; assertTrue("Object reified by the reifying topic was found", reifier.getReified() == null); assertTrue("Topic reifying the reifiable was found", reifiable.getReifier() == null); reifiable.setReifier(reifier); assertTrue("No topic reifying the reifiable was found", reifiable.getReifier() == reifier); assertTrue("No object reified by the reifying topic was found", reifier.getReified() == reifiable); reifiable.setReifier(null); assertTrue("Object reified by the reifying topic was found", reifier.getReified() == null); assertTrue("Topic reifying the first reifiable was found", reifiable.getReifier() == null); }
public void testReification() { TopicIF reifier = builder.makeTopic(); ReifiableIF reifiable = assoc; assertTrue("Object reified by the reifying topic was found", reifier.getReified() == null); assertTrue("Topic reifying the reifiable was found", reifiable.getReifier() == null); reifiable.setReifier(reifier); assertTrue("No topic reifying the reifiable was found", reifiable.getReifier() == reifier); assertTrue("No object reified by the reifying topic was found", reifier.getReified() == reifiable); reifiable.setReifier(null); assertTrue("Object reified by the reifying topic was found", reifier.getReified() == null); assertTrue("Topic reifying the first reifiable was found", reifiable.getReifier() == null); }
public void testReification() { TopicIF reifier = builder.makeTopic(); ReifiableIF reifiable = role; assertTrue("Object reified by the reifying topic was found", reifier.getReified() == null); assertTrue("Topic reifying the reifiable was found", reifiable.getReifier() == null); reifiable.setReifier(reifier); assertTrue("No topic reifying the reifiable was found", reifiable.getReifier() == reifier); assertTrue("No object reified by the reifying topic was found", reifier.getReified() == reifiable); reifiable.setReifier(null); assertTrue("Object reified by the reifying topic was found", reifier.getReified() == null); assertTrue("Topic reifying the first reifiable was found", reifiable.getReifier() == null); }
public void testMergeReifiedTargetTopicMap() { // build TMs TopicIF reifier = builder1.makeTopic(); topicmap1.setReifier(reifier); // merge MergeUtils.mergeInto(topicmap1, topicmap2); // previous line checks if moving topicmap causes it to lose // its reifier // check assertTrue("Topic map lost reifier on merge", topicmap1.getReifier() == reifier); assertTrue("Topic lost reified on merge", reifier.getReified() == topicmap1); }
public void testMergeReifiedBasename() { // build TM TopicIF t1 = builder1.makeTopic(); TopicIF t2 = builder1.makeTopic(); TopicIF t3 = builder1.makeTopic(); TopicNameIF bn = builder1.makeTopicName(t3, t2, ""); bn.setReifier(t2); // merge MergeUtils.mergeInto(t1, t3); // previous line checks if moving bn from t3 to t1 causes it to lose // its reifier // check TopicNameIF newbn = (TopicNameIF)t1.getTopicNames().iterator().next(); assertTrue("Basename lost reifier on merge", newbn.getReifier() == t2); assertTrue("Topic lost reified on merge", t2.getReified() == newbn); }
public void testMergeReifiedOccurrence() { // build TM TopicIF t1 = builder1.makeTopic(); TopicIF t2 = builder1.makeTopic(); TopicIF t3 = builder1.makeTopic(); OccurrenceIF occ = builder1.makeOccurrence(t3, t2, ""); occ.setReifier(t2); // merge MergeUtils.mergeInto(t1, t3); // previous line checks if moving occ from t3 to t1 causes it to lose // its reifier // check OccurrenceIF newocc = (OccurrenceIF)t1.getOccurrences().iterator().next(); assertTrue("Occurrence lost reifier on merge", newocc.getReifier() == t2); assertTrue("Topic lost reified on merge", t2.getReified() == newocc); }
@Test public void testTopic() throws Exception { TopicIF topic = tm1.getBuilder().makeTopic(foo1); tm1.getBuilder().makeTopicName(topic, "foo").setReifier(topic); concurrentCommit(); // verify no inconsistenties were created // todo: check(tm1, topic.getTypes().iterator().next().getObjectId(), "Topicmap", "type"); // peding #265 check(tm1, topic.getReified(), "Topicmap", "reified"); }
public void testMergeReified() { // build TM TopicIF t1 = builder1.makeTopic(); TopicIF t2 = builder1.makeTopic(); OccurrenceIF occ = builder1.makeOccurrence(t1, t2, ""); occ.setReifier(t2); // merge MergeUtils.mergeInto(t1, t2); // check assertTrue("Occurrence lost reifier on merge", occ.getReifier() == t1); assertTrue("Topic lost reified on merge", t1.getReified() == occ); }
public void testMergeReified2() { // build TM TopicIF t1 = builder1.makeTopic(); TopicIF t2 = builder1.makeTopic(); TopicIF t3 = builder1.makeTopic(); OccurrenceIF occ = builder1.makeOccurrence(t3, t2, ""); occ.setReifier(t2); // merge MergeUtils.mergeInto(t2, t1); // check assertTrue("Occurrence lost reifier on merge", occ.getReifier() == t2); assertTrue("Topic lost reified on merge", t2.getReified() == occ); }
public void testMergeReifiedSourceTopicMap() { // build TMs TopicIF reifier1 = builder1.makeTopic(); reifier1.addSubjectIdentifier(URILocator.create("test:reifier")); TopicIF reifier2 = builder2.makeTopic(); reifier2.addSubjectIdentifier(URILocator.create("test:reifier")); topicmap2.setReifier(reifier2); // merge MergeUtils.mergeInto(topicmap1, topicmap2); // previous line checks if moving topicmap causes it to lose // its reifier (which it should) // check assertTrue("Topic map did not lose reifier on merge", topicmap1.getReifier() == null); assertTrue("Topic did become reifier on merge", reifier1.getReified() == null); }