From: <lh...@us...> - 2009-03-11 15:00:29
|
Revision: 289 http://tinytim.svn.sourceforge.net/tinytim/?rev=289&view=rev Author: lheuer Date: 2009-03-11 15:00:12 +0000 (Wed, 11 Mar 2009) Log Message: ----------- - Added XTM10Utils tests - TMCL vocabulary - TMCL namespace added Modified Paths: -------------- tinytim/trunk/src/main/java/org/tinytim/utils/XTM10Utils.java tinytim/trunk/src/main/java/org/tinytim/voc/Namespace.java Added Paths: ----------- tinytim/trunk/src/main/java/org/tinytim/voc/TMCL.java tinytim/trunk/src/test/java/org/tinytim/utils/TestXTM10Utils.java Modified: tinytim/trunk/src/main/java/org/tinytim/utils/XTM10Utils.java =================================================================== --- tinytim/trunk/src/main/java/org/tinytim/utils/XTM10Utils.java 2009-03-10 15:31:31 UTC (rev 288) +++ tinytim/trunk/src/main/java/org/tinytim/utils/XTM10Utils.java 2009-03-11 15:00:12 UTC (rev 289) @@ -31,6 +31,10 @@ */ public class XTM10Utils { + private XTM10Utils() { + // noop. + } + private static final Logger LOG = Logger.getLogger(XTM10Utils.class.getName()); /** Modified: tinytim/trunk/src/main/java/org/tinytim/voc/Namespace.java =================================================================== --- tinytim/trunk/src/main/java/org/tinytim/voc/Namespace.java 2009-03-10 15:31:31 UTC (rev 288) +++ tinytim/trunk/src/main/java/org/tinytim/voc/Namespace.java 2009-03-11 15:00:12 UTC (rev 289) @@ -48,6 +48,11 @@ public static final String TMDM_MODEL = "http://psi.topicmaps.org/iso13250/model/"; /** + * TMCL namespace (<tt>http://psi.topicmaps.org/tmcl/</tt>) + */ + public static final String TMCL = "http://psi.topicmaps.org/tmcl/"; + + /** * XTM 2.0 namespace (<tt>http://www.topicmaps.org/xtm/</tt>). */ public static final String XTM_20 = "http://www.topicmaps.org/xtm/"; Added: tinytim/trunk/src/main/java/org/tinytim/voc/TMCL.java =================================================================== --- tinytim/trunk/src/main/java/org/tinytim/voc/TMCL.java (rev 0) +++ tinytim/trunk/src/main/java/org/tinytim/voc/TMCL.java 2009-03-11 15:00:12 UTC (rev 289) @@ -0,0 +1,127 @@ +/* + * Copyright 2008 - 2009 Lars Heuer (heuer[at]semagia.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.tinytim.voc; + +import org.tmapi.core.Locator; + +/** + * Constants for TMCL PSIs. + * <p> + * These PSIs are not stable yet. + * </p> + * + * @author Lars Heuer (heuer[at]semagia.com) <a href="http://www.semagia.com/">Semagia</a> + * @version $Rev$ - $Date$ + */ +public final class TMCL extends Vocabulary { + + private TMCL() { + // noop. + } + + private static final String _BASE = Namespace.TMCL; + + // Topic types + + public static final Locator TOPIC_TYPE = _createLocator(_BASE + "topictype"); + + public static final Locator ASSOCIATION_TYPE = _createLocator(_BASE + "associationtype"); + + public static final Locator ROLE_TYPE = _createLocator(_BASE + "roletype"); + + public static final Locator OCCURRENCE_TYPE = _createLocator(_BASE + "occurrencetype"); + + public static final Locator NAME_TYPE = _createLocator(_BASE + "nametype"); + + public static final Locator SCOPE_TYPE = _createLocator(_BASE + "scopetype"); + + + // Role types + + public static final Locator TOPIC_TYPE_ROLE = _createLocator(_BASE + "topictype-role"); + + public static final Locator ASSOCIATION_TYPE_ROLE = _createLocator(_BASE + "associationtype-role"); + + public static final Locator ROLE_TYPE_ROLE = _createLocator(_BASE + "roletype-role"); + + public static final Locator OTHERROLE_TYPE_ROLE = _createLocator(_BASE + "roletype-role"); + + public static final Locator OCCURRENCE_TYPE_ROLE = _createLocator(_BASE + "occurrencetype-role"); + + public static final Locator NAME_TYPE_ROLE = _createLocator(_BASE + "nametype-role"); + + public static final Locator SCOPE_TYPE_ROLE = _createLocator(_BASE + "scopetype-role"); + + public static final Locator CONSTRAINT_ROLE = _createLocator(_BASE + "constraint-role"); + + + // Model topics + public static final Locator CONSTRAINT = _createLocator(_BASE + "constraint"); + + public static final Locator VALIDATION_EXPRESSION = _createLocator(_BASE + "validation-expression"); + + public static final Locator APPLIES_TO = _createLocator(_BASE + "applies-to"); + + public static final Locator CARD_MIN = _createLocator(_BASE + "card-min"); + + public static final Locator CARD_MAX = _createLocator(_BASE + "card-max"); + + //TODO: TMCL uses sometimes "regexp" and sometimes "reg-exp" + public static final Locator REGEXP = _createLocator(_BASE + "reg-exp"); + + public static final Locator DATATYPE = _createLocator(_BASE + "datatype"); + + + // Constraint types + public static final Locator TOPIC_TYPE_CONSTRAINT = _createLocator(_BASE + "topictype-constraint"); + + public static final Locator ASSOCIATION_TYPE_CONSTRAINT = _createLocator(_BASE + "associationtype-constraint"); + + public static final Locator ROLE_TYPE_CONSTRAINT = _createLocator(_BASE + "roletype-constraint"); + + public static final Locator OCCURRENCE_TYPE_CONSTRAINT = _createLocator(_BASE + "occurrencetype-constraint"); + + public static final Locator NAME_TYPE_CONSTRAINT = _createLocator(_BASE + "nametype-constraint"); + + public static final Locator ABSTRACT_TOPIC_TYPE_CONSTRAINT = _createLocator(_BASE + "abstract-topictype-constraint"); + + public static final Locator EXCLUSIVE_INSTANCE = _createLocator(_BASE + "exclusive-instance"); + + public static final Locator SUBJECT_IDENTIFIER_CONSTRAINT = _createLocator(_BASE + "subjectidentifier-constraint"); + + public static final Locator SUBJECT_LOCATOR_CONSTRAINT = _createLocator(_BASE + "subjectlocator-constraint"); + + public static final Locator NAME_CONSTRAINT = _createLocator(_BASE + "topicname-constraint"); + + public static final Locator NAME_TYPE_SCOPE_CONSTRAINT = _createLocator(_BASE + "nametypescope-constraint"); + + public static final Locator OCCURRENCE_TYPE_SCOPE_CONSTRAINT = _createLocator(_BASE + "occurrencetypescope-constraint"); + + public static final Locator OCCURRENCE_DATATYPE_CONSTRAINT = _createLocator(_BASE + "occurrencedatatype-constraint"); + + public static final Locator ASSOCIATION_TYPE_SCOPE_CONSTRAINT = _createLocator(_BASE + "associationtypescope-constraint"); + + public static final Locator ASSOCIATION_ROLE_CONSTRAINT = _createLocator(_BASE + "associationrole-constraint"); + + public static final Locator ROLE_PLAYER_CONSTRAINT = _createLocator(_BASE + "roleplayer-constraint"); + + public static final Locator OTHERROLE_CONSTRAINT = _createLocator(_BASE + "otherrole-constraint"); + + public static final Locator TOPIC_OCCURRENCE_CONSTRAINT = _createLocator(_BASE + "topicoccurrence-constraint"); + + public static final Locator UNIQUE_OCCURRENCE_CONSTRAINT = _createLocator(_BASE + "uniqueoccurrence-constraint"); + +} Property changes on: tinytim/trunk/src/main/java/org/tinytim/voc/TMCL.java ___________________________________________________________________ Added: svn:keywords + Rev Date Id Added: svn:eol-style + native Added: tinytim/trunk/src/test/java/org/tinytim/utils/TestXTM10Utils.java =================================================================== --- tinytim/trunk/src/test/java/org/tinytim/utils/TestXTM10Utils.java (rev 0) +++ tinytim/trunk/src/test/java/org/tinytim/utils/TestXTM10Utils.java 2009-03-11 15:00:12 UTC (rev 289) @@ -0,0 +1,82 @@ +/* + * Copyright 2008 - 2009 Lars Heuer (heuer[at]semagia.com). All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.tinytim.utils; + +import org.tinytim.core.TinyTimTestCase; +import org.tmapi.core.Locator; +import org.tmapi.core.Name; +import org.tmapi.core.Reifiable; +import org.tmapi.core.Topic; + +/** + * Tests against the {@link XTM10Utils}. + * + * @author Lars Heuer (heuer[at]semagia.com) <a href="http://www.semagia.com/">Semagia</a> + * @version $Rev:$ - $Date:$ + */ +public class TestXTM10Utils extends TinyTimTestCase { + + private void _testConvertReification(Reifiable reifiable) { + final Locator loc = _tm.createLocator("http://www.semagia.com/test"); + Topic t = _tm.createTopicBySubjectIdentifier(loc); + reifiable.addItemIdentifier(loc); + assertNull(reifiable.getReifier()); + assertNull(t.getReified()); + assertEquals(1, t.getSubjectIdentifiers().size()); + assertEquals(loc, t.getSubjectIdentifiers().iterator().next()); + assertEquals(1, reifiable.getItemIdentifiers().size()); + assertEquals(loc, reifiable.getItemIdentifiers().iterator().next()); + XTM10Utils.convertReification(_tm); + assertEquals(t, reifiable.getReifier()); + assertEquals(reifiable, t.getReified()); + assertEquals(0, t.getSubjectIdentifiers().size()); + assertEquals(0, reifiable.getItemIdentifiers().size()); + reifiable.setReifier(null); + t.remove(); + } + + public void testConvertReification() { + _testConvertReification(_tm); + _testConvertReification(createAssociation()); + _testConvertReification(createRole()); + _testConvertReification(createOccurrence()); + _testConvertReification(createName()); + _testConvertReification(createVariant()); + } + + public void testConvertReificationSkipReified() { + final Locator loc = _tm.createLocator("http://www.semagia.com/test"); + Topic t = _tm.createTopicBySubjectIdentifier(loc); + Name reifiedName = createName(); + reifiedName.setReifier(t); + assertEquals(t, reifiedName.getReifier()); + assertEquals(reifiedName, t.getReified()); + Name name = createName(); + name.addItemIdentifier(loc); + assertEquals(1, t.getSubjectIdentifiers().size()); + assertEquals(loc, t.getSubjectIdentifiers().iterator().next()); + assertEquals(1, name.getItemIdentifiers().size()); + assertEquals(loc, name.getItemIdentifiers().iterator().next()); + XTM10Utils.convertReification(_tm); + assertEquals(t, reifiedName.getReifier()); + assertEquals(reifiedName, t.getReified()); + assertEquals(1, t.getSubjectIdentifiers().size()); + assertEquals(loc, t.getSubjectIdentifiers().iterator().next()); + assertEquals(1, name.getItemIdentifiers().size()); + assertEquals(loc, name.getItemIdentifiers().iterator().next()); + } + +} Property changes on: tinytim/trunk/src/test/java/org/tinytim/utils/TestXTM10Utils.java ___________________________________________________________________ Added: svn:keywords + Rev Date Id Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |