@Override public void startVariant(ValueGeneratorIF value) { // FIXME: no support for datatypes here yet... VariantNameIF variant = builder.makeVariantName(name, value.getLiteral()); scoped = variant; reifiable = variant; }
private static void copyVariants(TopicNameIF target, TopicNameIF source, Map<TopicIF, TopicIF> mergemap) { TopicMapBuilderIF builder = target.getTopicMap().getBuilder(); Iterator<VariantNameIF> it = source.getVariants().iterator(); while (it.hasNext()) { VariantNameIF sv = it.next(); VariantNameIF tv = builder.makeVariantName(target, sv.getValue(), sv.getDataType()); copyScope(tv, sv, mergemap); copyReifier(tv, sv, mergemap); copySourceLocators(tv, sv); } }
/** * INTERNAL: Copies the variant from the source topic to the * target topic. * * @since 4.0 */ public static VariantNameIF copyVariant(TopicNameIF target, VariantNameIF source) { TopicMapBuilderIF builder = target.getTopicMap().getBuilder(); VariantNameIF n = builder.makeVariantName(target, ""); // HACK: needs improvement copyScope(n, source); copyVariantData(n, source); return n; }
@Override protected TMObjectIF makeObject() { TopicIF topic = builder.makeTopic(); TopicNameIF basename = builder.makeTopicName(topic, ""); return builder.makeVariantName(basename, "", Collections.<TopicIF>emptySet()); }
@Override public void run() { TopicNameIF bn = getTopicName(); VariantNameIF vn = builder.makeVariantName(bn, ""); this.data.put("VariantNameIF", vn); this.objectId = vn.getObjectId(); } });
public void testVariantRemoval() { TopicIF topic = builder.makeTopic(); TopicNameIF bn = builder.makeTopicName(topic, ""); VariantNameIF vn = builder.makeVariantName(bn, "duplicate"); vn = builder.makeVariantName(bn, "duplicate"); DuplicateSuppressionUtils.removeDuplicates(bn); assertTrue("duplicate variant names were not removed", bn.getVariants().size() == 1); }
@Override public Variant createVariant(String value, Locator datatype, Collection<Topic> scope) { Check.valueNotNull(this, value, datatype); Check.scopeNotNull(this, scope); Check.scopeNotEmpty(this, scope); Check.scopeInTopicMap(getTopicMap(), scope.toArray(new Topic[scope.size()])); VariantNameIF variant = topicMap.getWrapped().getBuilder().makeVariantName( wrapped, value, topicMap.unwrapLocator(datatype), unwrapScope(scope)); return topicMap.wrapVariant(variant); }
@Override public void setUp() throws Exception { super.setUp(); TopicIF topic = builder.makeTopic(); TopicNameIF basename = builder.makeTopicName(topic, ""); parent = basename; variant = builder.makeVariantName(basename, "", Collections.<TopicIF>emptySet()); scoped = variant; object = variant; }
@Override public Variant createVariant(Locator value, Collection<Topic> scope) { Check.valueNotNull(this, value); Check.scopeNotNull(this, scope); Check.scopeNotEmpty(this, scope); Collection<Topic> explicitScope = new ArrayList<Topic>(scope); VariantNameIF variant = topicMap.getWrapped().getBuilder().makeVariantName( wrapped, topicMap.unwrapLocator(value), unwrapScope(scope)); VariantImpl v = topicMap.wrapVariant(variant); v.setExplicitScope(explicitScope); return v; }
@Override public Variant createVariant(String value, Collection<Topic> scope) { Check.valueNotNull(this, value); Check.scopeNotNull(this, scope); Check.scopeNotEmpty(this, scope); checkScope(scope); Collection<Topic> explScope = new ArrayList<Topic>(scope); VariantNameIF variant = topicMap.getWrapped().getBuilder().makeVariantName( wrapped, value, unwrapScope(scope)); VariantImpl v = topicMap.wrapVariant(variant); v.setExplicitScope(explScope); return v; }
public void testVariantName() { TopicNameIF name = builder.makeTopicName(builder.makeTopic(), "name"); checkDuplicateReificationException( builder.makeVariantName(name, "variant", Collections.singleton(builder.makeTopic()))); }
public void testMergeTopicNameDuplicatesWithVariants() { TopicIF t1 = builder1.makeTopic(); TopicNameIF bn1 = builder1.makeTopicName(t1, "bn"); VariantNameIF vn1 = builder1.makeVariantName(bn1, "vn"); TopicIF t2 = builder1.makeTopic(); TopicNameIF bn2 = builder1.makeTopicName(t2, "bn"); VariantNameIF vn2 = builder1.makeVariantName(bn2, "vn"); MergeUtils.mergeInto(t1, t2); assertTrue("base name duplicates not suppressed", t1.getTopicNames().size() == 1); }
@Override public void setUp() { topicmap = makeTopicMap(); topic = builder.makeTopic(); basename = builder.makeTopicName(topic, ""); variant = builder.makeVariantName(basename, ""); stringifier = new NameStringifier(); }
public void testVariantName() { TopicIF sort = builder.makeTopic(); sort.addSubjectIdentifier(PSI.getXTMSort()); TopicNameIF bn1 = builder.makeTopicName(topic, "Name1"); VariantNameIF vn1 = builder.makeVariantName(bn1, "Sort name"); vn1.addTheme(sort); TopicNameIF bn2 = builder.makeTopicName(topic, "Name2"); TopicNameIF bn3 = builder.makeTopicName(topic, "Name3"); VariantNameIF vn2 = builder.makeVariantName(bn1, "Blecch"); StringifierIF sf = TopicStringifiers.getVariantNameStringifier(Collections.singleton(sort)); assertTrue("Stringifying topic gave wrong variant name", sf.toString(topic).equals("Sort name")); } }
public void testSSSort() { TopicIF sort = builder.makeTopic(); sort.addSubjectIdentifier(PSI.getXTMSort()); TopicNameIF bn1 = builder.makeTopicName(topic, "Name1"); VariantNameIF vn1 = builder.makeVariantName(bn1, "Sort name"); vn1.addTheme(sort); TopicNameIF bn2 = builder.makeTopicName(topic, "Name2"); TopicNameIF bn3 = builder.makeTopicName(topic, "Name3"); VariantNameIF vn2 = builder.makeVariantName(bn1, "Blecch"); StringifierIF sf = TopicStringifiers.getSortNameStringifier(); assertTrue("Stringifying topic gave wrong sort name", sf.toString(topic).equals("Sort name")); }
public void testGetVariantCount() { assertEquals(0, stats.getVariantCount()); List<TopicIF> emptyList = Collections.emptyList(); builder.makeVariantName(builder.makeTopicName(builder.makeTopic(), "foo"), "bar", emptyList); assertEquals(1, stats.getVariantCount()); }
public void testDSDisplay() { TopicIF display = builder.makeTopic(); display.addSubjectIdentifier(PSI.getXTMDisplay()); TopicNameIF bn1 = builder.makeTopicName(topic, "Name1"); VariantNameIF vn1 = builder.makeVariantName(bn1, "Display name"); vn1.addTheme(display); TopicNameIF bn2 = builder.makeTopicName(topic, "Name2"); TopicNameIF bn3 = builder.makeTopicName(topic, "Name3"); VariantNameIF vn2 = builder.makeVariantName(bn1, "Blecch"); StringifierIF sf = TopicStringifiers.getDefaultStringifier(); assertTrue("Stringifying topic gave wrong display name", sf.toString(topic).equals("Display name")); }
public void testVariantGenerate2() { TopicIF topic = builder.makeTopic(); TopicNameIF bn = builder.makeTopicName(topic, "foo"); VariantNameIF vn = builder.makeVariantName(bn, makeLocator("http://www.ontopia.no")); DocumentIF doc = generator.generate(vn); Collection fields = doc.getFields(); assertTrue("Variant DocumentIF has " + fields.size() + " fields", fields.size() == 4); verifyObjectId(vn, doc.getField("object_id")); verifyClass(doc.getField("class"), "N"); verifyLocator(doc, "http://www.ontopia.no/"); }
public void testVariantGenerate() { TopicIF topic = builder.makeTopic(); TopicNameIF bn = builder.makeTopicName(topic, "foo"); VariantNameIF vn = builder.makeVariantName(bn, "value"); DocumentIF doc = generator.generate(vn); Collection fields = doc.getFields(); assertTrue("Variant DocumentIF has " + fields.size() + " fields", fields.size() == 3); verifyObjectId(vn, doc.getField("object_id")); verifyClass(doc.getField("class"), "N"); verifyContent(doc.getField("content"), "value"); }
@Test public void testVariant() throws Exception { TopicNameIF name = tm1.getBuilder().makeTopicName(foo1, foo1, "foo"); VariantNameIF variant = tm1.getBuilder().makeVariantName(name, "foo", Collections.singletonList(foo1)); variant.setReifier(foo1); concurrentCommit(); // verify no inconsistenties were created check(tm1, variant.getTopicName(), "Variant", "name"); check(tm1, variant.getReifier(), "Variant", "reifier"); // todo: scope, pending #265 }