From: <lh...@us...> - 2009-08-27 13:08:42
|
Revision: 356 http://tinytim.svn.sourceforge.net/tinytim/?rev=356&view=rev Author: lheuer Date: 2009-08-27 13:08:17 +0000 (Thu, 27 Aug 2009) Log Message: ----------- - New TinyTimMapInputHandler based upon the mio.HamsterHandler - Removed ConstructFactory - Added @Override annotation (requires Java 6) Modified Paths: -------------- tinytim/trunk/build.xml tinytim/trunk/src/main/java/org/tinytim/core/AssociationImpl.java tinytim/trunk/src/main/java/org/tinytim/core/ConstructImpl.java tinytim/trunk/src/main/java/org/tinytim/core/DatatypeAwareConstruct.java tinytim/trunk/src/main/java/org/tinytim/core/IdGenerator.java tinytim/trunk/src/main/java/org/tinytim/core/MemoryTopicMap.java tinytim/trunk/src/main/java/org/tinytim/core/MemoryTopicMapSystem.java tinytim/trunk/src/main/java/org/tinytim/core/NameImpl.java tinytim/trunk/src/main/java/org/tinytim/core/OccurrenceImpl.java tinytim/trunk/src/main/java/org/tinytim/core/RoleImpl.java tinytim/trunk/src/main/java/org/tinytim/core/Scope.java tinytim/trunk/src/main/java/org/tinytim/core/ScopedImpl.java tinytim/trunk/src/main/java/org/tinytim/core/TopicImpl.java tinytim/trunk/src/main/java/org/tinytim/core/TypedImpl.java tinytim/trunk/src/main/java/org/tinytim/core/VariantImpl.java tinytim/trunk/src/main/java/org/tinytim/internal/api/IAssociation.java tinytim/trunk/src/main/java/org/tinytim/internal/api/IName.java tinytim/trunk/src/main/java/org/tinytim/internal/api/ITopic.java tinytim/trunk/src/main/java/org/tinytim/internal/api/ITopicMap.java tinytim/trunk/src/main/java/org/tinytim/internal/api/IVariant.java tinytim/trunk/src/main/java/org/tinytim/internal/utils/Check.java tinytim/trunk/src/main/java/org/tinytim/internal/utils/CopyUtils.java tinytim/trunk/src/main/java/org/tinytim/internal/utils/MergeUtils.java tinytim/trunk/src/main/java/org/tinytim/mio/TinyTimMapInputHandler.java tinytim/trunk/src/test/java/org/tinytim/core/AllTests.java Added Paths: ----------- tinytim/trunk/lib/semagia-mio-0.9.5.jar tinytim/trunk/src/main/java/org/tinytim/internal/api/IRole.java Removed Paths: ------------- tinytim/trunk/lib/semagia-mio-0.9.4.jar tinytim/trunk/src/main/java/org/tinytim/core/MemoryConstructFactory.java tinytim/trunk/src/main/java/org/tinytim/internal/api/IConstructFactory.java tinytim/trunk/src/test/java/org/tinytim/core/TestIConstructFactory.java tinytim/trunk/src/test/java/org/tinytim/mio/TestTinyTimMapInputHandler.java Modified: tinytim/trunk/build.xml =================================================================== --- tinytim/trunk/build.xml 2009-08-18 12:54:43 UTC (rev 355) +++ tinytim/trunk/build.xml 2009-08-27 13:08:17 UTC (rev 356) @@ -12,7 +12,7 @@ <property name="lib.junit" value="${dir.lib}/junit-4.5.jar"/> <property name="lib.trove" value="${dir.lib}/trove-2.0.4.jar"/> - <property name="lib.mio" value="${dir.lib}/semagia-mio-0.9.4.jar"/> + <property name="lib.mio" value="${dir.lib}/semagia-mio-0.9.5.jar"/> <property name="lib.tmapi" value="${dir.lib}/tmapi-2.0a2.jar"/> <property name="lib.tmapi.tests" value="${dir.lib}/tmapi-2.0a2-tests.jar"/> <property name="lib.emma" value="${dir.lib}/emma.jar"/> Deleted: tinytim/trunk/lib/semagia-mio-0.9.4.jar =================================================================== (Binary files differ) Added: tinytim/trunk/lib/semagia-mio-0.9.5.jar =================================================================== (Binary files differ) Property changes on: tinytim/trunk/lib/semagia-mio-0.9.5.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: tinytim/trunk/src/main/java/org/tinytim/core/AssociationImpl.java =================================================================== --- tinytim/trunk/src/main/java/org/tinytim/core/AssociationImpl.java 2009-08-18 12:54:43 UTC (rev 355) +++ tinytim/trunk/src/main/java/org/tinytim/core/AssociationImpl.java 2009-08-27 13:08:17 UTC (rev 356) @@ -40,11 +40,6 @@ private Set<Role> _roles; - AssociationImpl(ITopicMap tm) { - super(tm); - _roles = CollectionFactory.createIdentitySet(IConstant.ASSOC_ROLE_SIZE); - } - AssociationImpl(ITopicMap topicMap, Topic type, IScope scope) { super(topicMap, type, scope); _roles = CollectionFactory.createIdentitySet(IConstant.ASSOC_ROLE_SIZE); @@ -58,6 +53,16 @@ return _tm; } + void attachRole(RoleImpl role) { + role._parent = this; + _roles.add(role); + } + + void detachRole(RoleImpl role) { + role._parent = null; + _roles.remove(role); + } + /** * Adds a role to this association. * Modified: tinytim/trunk/src/main/java/org/tinytim/core/ConstructImpl.java =================================================================== --- tinytim/trunk/src/main/java/org/tinytim/core/ConstructImpl.java 2009-08-18 12:54:43 UTC (rev 355) +++ tinytim/trunk/src/main/java/org/tinytim/core/ConstructImpl.java 2009-08-27 13:08:17 UTC (rev 356) @@ -208,4 +208,5 @@ sb.append("]"); return sb.toString(); } + } Modified: tinytim/trunk/src/main/java/org/tinytim/core/DatatypeAwareConstruct.java =================================================================== --- tinytim/trunk/src/main/java/org/tinytim/core/DatatypeAwareConstruct.java 2009-08-18 12:54:43 UTC (rev 355) +++ tinytim/trunk/src/main/java/org/tinytim/core/DatatypeAwareConstruct.java 2009-08-27 13:08:17 UTC (rev 356) @@ -42,10 +42,6 @@ private ILiteral _literal; - protected DatatypeAwareConstruct(ITopicMap tm) { - super(tm); - } - protected DatatypeAwareConstruct(ITopicMap topicMap, Topic type, ILiteral literal, IScope scope) { super(topicMap, type, scope); _literal = literal; Modified: tinytim/trunk/src/main/java/org/tinytim/core/IdGenerator.java =================================================================== --- tinytim/trunk/src/main/java/org/tinytim/core/IdGenerator.java 2009-08-18 12:54:43 UTC (rev 355) +++ tinytim/trunk/src/main/java/org/tinytim/core/IdGenerator.java 2009-08-27 13:08:17 UTC (rev 356) @@ -38,4 +38,5 @@ public static long nextId() { return _COUNTER.getAndIncrement(); } + } Deleted: tinytim/trunk/src/main/java/org/tinytim/core/MemoryConstructFactory.java =================================================================== --- tinytim/trunk/src/main/java/org/tinytim/core/MemoryConstructFactory.java 2009-08-18 12:54:43 UTC (rev 355) +++ tinytim/trunk/src/main/java/org/tinytim/core/MemoryConstructFactory.java 2009-08-27 13:08:17 UTC (rev 356) @@ -1,99 +0,0 @@ -/* - * Copyright 2008 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.core; - -import org.tinytim.internal.api.IConstructFactory; -import org.tinytim.internal.api.IName; -import org.tinytim.internal.api.IOccurrence; -import org.tinytim.internal.api.ITopic; -import org.tinytim.internal.api.IVariant; - -import org.tmapi.core.Association; -import org.tmapi.core.Role; -import org.tmapi.core.Topic; - -/** - * - * - * @author Lars Heuer (heuer[at]semagia.com) <a href="http://www.semagia.com/">Semagia</a> - * @version $Rev$ - $Date$ - */ -final class MemoryConstructFactory implements IConstructFactory { - - private final MemoryTopicMap _tm; - - public MemoryConstructFactory(MemoryTopicMap tm) { - _tm = tm; - } - - /* (non-Javadoc) - * @see org.tinytim.internal.api.IConstructFactory#createTopic() - */ - public ITopic createTopic() { - TopicImpl topic = new TopicImpl(_tm); - _tm.addTopic(topic); - return topic; - } - - /* (non-Javadoc) - * @see org.tinytim.internal.api.IConstructFactory#createAssociation() - */ - public Association createAssociation() { - AssociationImpl assoc = new AssociationImpl(_tm); - _tm.addAssociation(assoc); - return assoc; - } - - /* (non-Javadoc) - * @see org.tinytim.internal.api.IConstructFactory#createName(org.tinytim.internal.api.ITopic) - */ - public IName createName(ITopic parent) { - NameImpl name = new NameImpl(_tm); - ((TopicImpl) parent).addName(name); - return name; - } - - /* (non-Javadoc) - * @see org.tinytim.internal.api.IConstructFactory#createOccurrence(org.tinytim.internal.api.ITopic) - */ - public IOccurrence createOccurrence(ITopic parent) { - OccurrenceImpl occ = new OccurrenceImpl(_tm); - ((TopicImpl) parent).addOccurrence(occ); - return occ; - } - - /* (non-Javadoc) - * @see org.tinytim.internal.api.IConstructFactory#createRole(org.tmapi.core.Association) - */ - public Role createRole(Association parent) { - RoleImpl role = new RoleImpl(_tm); - ((AssociationImpl) parent).addRole(role); - return role; - } - - /* (non-Javadoc) - * @see org.tinytim.internal.api.IConstructFactory#createVariant(org.tinytim.internal.api.IName) - */ - public IVariant createVariant(IName parent) { - VariantImpl variant = new VariantImpl(_tm); - for (Topic theme: parent.getScope()) { - variant._addNameTheme(theme); - } - ((NameImpl) parent).addVariant(variant); - return variant; - } - -} Modified: tinytim/trunk/src/main/java/org/tinytim/core/MemoryTopicMap.java =================================================================== --- tinytim/trunk/src/main/java/org/tinytim/core/MemoryTopicMap.java 2009-08-18 12:54:43 UTC (rev 355) +++ tinytim/trunk/src/main/java/org/tinytim/core/MemoryTopicMap.java 2009-08-27 13:08:17 UTC (rev 356) @@ -24,11 +24,13 @@ import org.tinytim.core.value.Literal; import org.tinytim.index.IndexManager; import org.tinytim.internal.api.Event; +import org.tinytim.internal.api.IAssociation; import org.tinytim.internal.api.IConstant; import org.tinytim.internal.api.IConstruct; -import org.tinytim.internal.api.IConstructFactory; import org.tinytim.internal.api.IEventHandler; import org.tinytim.internal.api.IIndexManager; +import org.tinytim.internal.api.IScope; +import org.tinytim.internal.api.ITopic; import org.tinytim.internal.api.ITopicMap; import org.tinytim.internal.utils.Check; import org.tinytim.internal.utils.CollectionFactory; @@ -54,7 +56,6 @@ */ final class MemoryTopicMap extends AbstractTopicMap implements ITopicMap { - private final IConstructFactory _factory; private final IdentityManager _identityManager; private final IIndexManager _indexManager; private final Locator _locator; @@ -68,7 +69,6 @@ MemoryTopicMap(AbstractTopicMapSystem sys, Locator locator) { super(); super._tm = this; - _factory = new MemoryConstructFactory(this); _sys = sys; _locator = locator; _topics = CollectionFactory.createIdentitySet(IConstant.TM_TOPIC_SIZE); @@ -92,16 +92,17 @@ return this; } - /* (non-Javadoc) - * @see org.tinytim.api.internal.ITopicMap#getConstructFactory() - */ - public IConstructFactory getConstructFactory() { - return _factory; + @Override + public ITopic createEmptyTopic() { + TopicImpl topic = new TopicImpl(this); + addTopic(topic); + return topic; } /* (non-Javadoc) * @see org.tmapi.core.TopicMap#createLocator(java.lang.String) */ + @Override public Locator createLocator(String reference) { return Literal.createIRI(reference); } @@ -109,6 +110,7 @@ /* (non-Javadoc) * @see org.tmapi.core.TopicMap#getTopics() */ + @Override public Set<Topic> getTopics() { return Collections.unmodifiableSet(_topics); } @@ -116,8 +118,9 @@ /* (non-Javadoc) * @see org.tmapi.core.TopicMap#createTopic() */ + @Override public Topic createTopic() { - Topic topic = _factory.createTopic(); + Topic topic = createEmptyTopic(); topic.addItemIdentifier(Literal.createIRI("urn:x-tinytim:" + IdGenerator.nextId())); return topic; } @@ -125,6 +128,7 @@ /* (non-Javadoc) * @see org.tmapi.core.TopicMap#createTopicByItemIdentifier(org.tmapi.core.Locator) */ + @Override public Topic createTopicByItemIdentifier(Locator iid) { Check.itemIdentifierNotNull(this, iid); Construct construct = getConstructByItemIdentifier(iid); @@ -141,7 +145,7 @@ return topic; } } - Topic topic = _factory.createTopic(); + Topic topic = createEmptyTopic(); topic.addItemIdentifier(iid); return topic; } @@ -149,6 +153,7 @@ /* (non-Javadoc) * @see org.tmapi.core.TopicMap#createTopicBySubjectIdentifier(org.tmapi.core.Locator) */ + @Override public Topic createTopicBySubjectIdentifier(Locator sid) { Check.subjectIdentifierNotNull(this, sid); Topic topic = getTopicBySubjectIdentifier(sid); @@ -163,7 +168,7 @@ return topic; } } - topic = _factory.createTopic(); + topic = createEmptyTopic(); topic.addSubjectIdentifier(sid); return topic; } @@ -171,13 +176,14 @@ /* (non-Javadoc) * @see org.tmapi.core.TopicMap#createTopicBySubjectLocator(org.tmapi.core.Locator) */ + @Override public Topic createTopicBySubjectLocator(Locator slo) { Check.subjectLocatorNotNull(this, slo); Topic topic = getTopicBySubjectLocator(slo); if (topic != null) { return topic; } - topic = _factory.createTopic(); + topic = createEmptyTopic(); topic.addSubjectLocator(slo); return topic; } @@ -210,21 +216,34 @@ /* (non-Javadoc) * @see org.tmapi.core.TopicMap#getAssociations() */ + @Override public Set<Association> getAssociations() { return Collections.unmodifiableSet(_assocs); } + @Override public Association createAssociation(Topic type, Topic... scope) { Check.scopeNotNull(this, scope); return createAssociation(type, Arrays.asList(scope)); } - public Association createAssociation(Topic type, Collection<Topic> scope) { + /* (non-Javadoc) + * @see org.tmapi.core.TopicMap#createAssociation(org.tmapi.core.Topic, java.util.Collection) + */ + @Override + public IAssociation createAssociation(Topic type, Collection<Topic> scope) { + return createAssociation(type, createScope(scope)); + } + + + /* (non-Javadoc) + * @see org.tinytim.internal.api.ITopicMap#createAssociation(org.tinytim.internal.api.ITopic, org.tinytim.internal.api.IScope) + */ + @Override + public IAssociation createAssociation(Topic type, IScope scope) { Check.typeNotNull(this, type); - Check.scopeNotNull(this, scope); Check.sameTopicMap(this, type); - Check.sameTopicMap(this, scope); - AssociationImpl assoc = new AssociationImpl(this, type, Scope.create(scope)); + AssociationImpl assoc = new AssociationImpl(this, type, scope); addAssociation(assoc); return assoc; } @@ -258,6 +277,7 @@ /* (non-Javadoc) * @see org.tmapi.core.TopicMap#getConstructById(java.lang.String) */ + @Override public Construct getConstructById(String id) { return _identityManager.getConstructById(id); } @@ -265,6 +285,7 @@ /* (non-Javadoc) * @see org.tmapi.core.TopicMap#getTopicBySubjectIdentifier(org.tmapi.core.Locator) */ + @Override public Topic getTopicBySubjectIdentifier(Locator sid) { Check.subjectIdentifierNotNull(sid); return _identityManager.getTopicBySubjectIdentifier(sid); @@ -273,6 +294,7 @@ /* (non-Javadoc) * @see org.tmapi.core.TopicMap#getTopicBySubjectLocator(org.tmapi.core.Locator) */ + @Override public Topic getTopicBySubjectLocator(Locator slo) { Check.subjectLocatorNotNull(slo); return _identityManager.getTopicBySubjectLocator(slo); @@ -281,6 +303,7 @@ /* (non-Javadoc) * @see org.tmapi.core.TopicMap#getConstructByItemIdentifier(org.tmapi.core.Locator) */ + @Override public Construct getConstructByItemIdentifier(Locator iid) { Check.itemIdentifierNotNull(iid); return _identityManager.getConstructByItemIdentifier(iid); @@ -289,6 +312,7 @@ /* (non-Javadoc) * @see org.tmapi.core.TopicMap#getReifier() */ + @Override public Topic getReifier() { return _reifier; } @@ -296,6 +320,7 @@ /* (non-Javadoc) * @see org.tmapi.core.Reifiable#setReifier(org.tmapi.core.Topic) */ + @Override public void setReifier(Topic reifier) { Check.sameTopicMap(this, reifier); if (_reifier == reifier) { @@ -328,9 +353,17 @@ throw new UnsupportedOperationException("Index '" + indexInterface.getName() + "' is unknown"); } + @Override + public IScope createScope(Collection<Topic> themes) { + Check.scopeNotNull(this, themes); + Check.sameTopicMap(this, themes); + return Scope.create(themes); + } + /* (non-Javadoc) * @see org.tmapi.core.TopicMap#mergeIn(org.tmapi.core.TopicMap) */ + @Override public void mergeIn(TopicMap other) { MergeUtils.merge(other, this); } @@ -338,6 +371,7 @@ /* (non-Javadoc) * @see org.tmapi.core.TopicMap#close() */ + @Override public void close() { remove(); } @@ -353,6 +387,7 @@ /* (non-Javadoc) * @see org.tmapi.core.TopicMap#remove() */ + @Override public void remove() { _sys.removeTopicMap(this); _sys = null; @@ -375,6 +410,7 @@ /* (non-Javadoc) * @see org.tinytim.internal.api.IEventHandler#handleEvent(org.tinytim.internal.api.Event, org.tinytim.internal.api.IConstruct, java.lang.Object, java.lang.Object) */ + @Override public void handleEvent(Event evt, IConstruct sender, Object oldValue, Object newValue) { if (!_evtHandlers.containsKey(evt)) { _eventMultiplier.handleEvent(evt, sender, oldValue, newValue); @@ -390,6 +426,7 @@ /* (non-Javadoc) * @see org.tinytim.IEventPublisher#subscribe(org.tinytim.Event, org.tinytim.IEventHandler) */ + @Override public void subscribe(Event event, IEventHandler handler) { Collection<IEventHandler> handlers = _evtHandlers.get(event); if (handlers == null) { @@ -402,6 +439,7 @@ /* (non-Javadoc) * @see org.tinytim.internal.api.IEventPublisher#unsubscribe(org.tinytim.internal.api.Event, org.tinytim.internal.api.IEventHandler) */ + @Override public void unsubscribe(Event event, IEventHandler handler) { Collection<IEventHandler> handlers = _evtHandlers.get(event); if (handlers != null) { @@ -412,6 +450,7 @@ /* (non-Javadoc) * @see org.tinytim.internal.api.IIndexManagerAware#getIndexManager() */ + @Override public IIndexManager getIndexManager() { return _indexManager; } Modified: tinytim/trunk/src/main/java/org/tinytim/core/MemoryTopicMapSystem.java =================================================================== --- tinytim/trunk/src/main/java/org/tinytim/core/MemoryTopicMapSystem.java 2009-08-18 12:54:43 UTC (rev 355) +++ tinytim/trunk/src/main/java/org/tinytim/core/MemoryTopicMapSystem.java 2009-08-27 13:08:17 UTC (rev 356) @@ -54,6 +54,7 @@ /* (non-Javadoc) * @see org.tmapi.core.TopicMapSystem#createTopicMap(org.tmapi.core.Locator) */ + @Override public TopicMap createTopicMap(Locator locator) throws TopicMapExistsException { if (_topicMaps.containsKey(locator)) { throw new TopicMapExistsException("A topic map with the IRI + '" + locator.getReference() + "' exists in the system"); @@ -66,6 +67,7 @@ /* (non-Javadoc) * @see org.tmapi.core.TopicMapSystem#getLocators() */ + @Override public Set<Locator> getLocators() { return Collections.unmodifiableSet(_topicMaps.keySet()); } @@ -73,6 +75,7 @@ /* (non-Javadoc) * @see org.tmapi.core.TopicMapSystem#getTopicMap(org.tmapi.core.Locator) */ + @Override public TopicMap getTopicMap(Locator iri) { return _topicMaps.get(iri); } @@ -80,6 +83,7 @@ /* (non-Javadoc) * @see org.tmapi.core.TopicMapSystem#close() */ + @Override public void close() { super.close(); _topicMaps.clear(); Modified: tinytim/trunk/src/main/java/org/tinytim/core/NameImpl.java =================================================================== --- tinytim/trunk/src/main/java/org/tinytim/core/NameImpl.java 2009-08-18 12:54:43 UTC (rev 355) +++ tinytim/trunk/src/main/java/org/tinytim/core/NameImpl.java 2009-08-27 13:08:17 UTC (rev 356) @@ -47,11 +47,6 @@ private ILiteral _literal; private Set<Variant> _variants; - - NameImpl(ITopicMap tm) { - super(tm); - } - NameImpl(ITopicMap topicMap, Topic type, ILiteral literal, IScope scope) { super(topicMap, type, scope); _literal = literal; @@ -60,6 +55,7 @@ /* (non-Javadoc) * @see org.tinytim.core.ConstructImpl#getParent() */ + @Override public Topic getParent() { return (Topic) _parent; } @@ -67,6 +63,7 @@ /* (non-Javadoc) * @see org.tinytim.internal.api.ILiteralAware#getLiteral() */ + @Override public ILiteral getLiteral() { return _literal; } @@ -74,6 +71,7 @@ /* (non-Javadoc) * @see org.tinytim.internal.api.ILiteralAware#setLiteral(org.tinytim.internal.api.ILiteral) */ + @Override public void setLiteral(ILiteral literal) { assert literal != null; _fireEvent(Event.SET_LITERAL, _literal, literal); @@ -83,6 +81,7 @@ /* (non-Javadoc) * @see org.tmapi.core.Name#getValue() */ + @Override public String getValue() { return _literal.getValue(); } @@ -90,6 +89,7 @@ /* (non-Javadoc) * @see org.tmapi.core.Name#setValue(java.lang.String) */ + @Override public void setValue(String value) { Check.valueNotNull(this, value); setLiteral(Literal.create(value)); @@ -116,7 +116,7 @@ public void removeTheme(Topic theme) { IScope scope = _scope; super.removeTheme(theme); - if (_variants != null && scope != _scope) { + if (_variants != null && _scope != scope) { for (Variant variant: _variants) { ((VariantImpl) variant)._removeNameTheme(theme); } @@ -126,6 +126,7 @@ /* (non-Javadoc) * @see org.tmapi.core.Name#getVariants() */ + @Override public Set<Variant> getVariants() { return _variants == null ? Collections.<Variant>emptySet() : Collections.unmodifiableSet(_variants); @@ -134,22 +135,25 @@ /* (non-Javadoc) * @see org.tmapi.core.Name#createVariant(org.tmapi.core.Locator, java.util.Collection) */ + @Override public Variant createVariant(Locator value, Collection<Topic> scope) { Check.valueNotNull(this, value); - return createVariant(Literal.create(value), scope); + return createVariant(Literal.create(value), _tm.createScope(scope)); } /* (non-Javadoc) - * @see org.tmapi.core.Name#createVariant(java.lang.String, java.util.Collection) + * @see org.tmapi.core.Name#createVariant(org.tmapi.core.Locator, java.util.Collection) */ + @Override public Variant createVariant(String value, Collection<Topic> scope) { Check.valueNotNull(this, value); - return createVariant(Literal.create(value), scope); + return createVariant(Literal.create(value), _tm.createScope(scope)); } /* (non-Javadoc) * @see org.tmapi.core.Name#createVariant(org.tmapi.core.Locator, org.tmapi.core.Topic[]) */ + @Override public Variant createVariant(Locator value, Topic... scope) { Check.scopeNotNull(this, scope); return createVariant(value, Arrays.asList(scope)); @@ -158,15 +162,17 @@ /* (non-Javadoc) * @see org.tmapi.core.Name#createVariant(java.lang.String, org.tmapi.core.Locator, java.util.Collection) */ + @Override public Variant createVariant(String value, Locator datatype, Collection<Topic> scope) { Check.valueNotNull(this, value, datatype); - return _createVariant(value, datatype, scope); + return createVariant(Literal.create(value, datatype), _tm.createScope(scope)); } /* (non-Javadoc) * @see org.tmapi.core.Name#createVariant(java.lang.String, org.tmapi.core.Locator, org.tmapi.core.Topic[]) */ + @Override public Variant createVariant(String value, Locator datatype, Topic... scope) { Check.scopeNotNull(this, scope); return createVariant(value, datatype, Arrays.asList(scope)); @@ -175,25 +181,22 @@ /* (non-Javadoc) * @see org.tmapi.core.Name#createVariant(java.lang.String, org.tmapi.core.Topic[]) */ + @Override public Variant createVariant(String value, Topic... scope) { Check.scopeNotNull(this, scope); return createVariant(value, Arrays.asList(scope)); } - private Variant _createVariant(String value, Locator datatype, Collection<Topic> scope) { - Check.valueNotNull(this, value, datatype); - return createVariant(Literal.create(value, datatype), scope); - } - - public IVariant createVariant(ILiteral literal, Collection<Topic> scope) { - Check.sameTopicMap(this, scope); - if (scope.isEmpty()) { + @Override + public IVariant createVariant(ILiteral literal, IScope scope) { + Check.valueNotNull(this, literal); + if (scope.isUnconstrained()) { throw new ModelConstraintException(this, "The scope of the variant must not be unconstrained"); } - if (_scope.containsAll(scope)) { + if (_scope.containsAll(scope.asSet())) { throw new ModelConstraintException(this, "The variant's scope is not a true superset of the parent's scope"); } - VariantImpl variant = new VariantImpl(_tm, literal, Scope.create(scope)); + VariantImpl variant = new VariantImpl(_tm, literal, scope); addVariant(variant); for (Topic theme: _scope) { variant._addNameTheme(theme); @@ -236,6 +239,7 @@ /* (non-Javadoc) * @see org.tinytim.internal.api.IMovable#moveTo(org.tmapi.core.Construct) */ + @Override public void moveTo(Topic newParent) { ((TopicImpl) _parent).detachName(this, true); ((TopicImpl) newParent).attachName(this, true); @@ -253,6 +257,7 @@ /* (non-Javadoc) * @see org.tmapi.core.Construct#remove() */ + @Override public void remove() { ((TopicImpl) _parent).removeName(this); super.dispose(); Modified: tinytim/trunk/src/main/java/org/tinytim/core/OccurrenceImpl.java =================================================================== --- tinytim/trunk/src/main/java/org/tinytim/core/OccurrenceImpl.java 2009-08-18 12:54:43 UTC (rev 355) +++ tinytim/trunk/src/main/java/org/tinytim/core/OccurrenceImpl.java 2009-08-27 13:08:17 UTC (rev 356) @@ -31,10 +31,6 @@ */ final class OccurrenceImpl extends DatatypeAwareConstruct implements IOccurrence { - OccurrenceImpl(ITopicMap tm) { - super(tm); - } - OccurrenceImpl(ITopicMap topicMap, Topic type, ILiteral literal, IScope scope) { super(topicMap, type, literal, scope); } @@ -42,6 +38,7 @@ /* (non-Javadoc) * @see org.tmapi.core.Occurrence#getParent() */ + @Override public Topic getParent() { return (Topic) _parent; } @@ -49,6 +46,7 @@ /* (non-Javadoc) * @see org.tinytim.internal.api.IMovable#moveTo(org.tmapi.core.Construct) */ + @Override public void moveTo(Topic newParent) { ((TopicImpl) _parent).detachOccurrence(this, true); ((TopicImpl) newParent).attachOccurrence(this, true); @@ -66,6 +64,7 @@ /* (non-Javadoc) * @see org.tmapi.core.Construct#remove() */ + @Override public void remove() { ((TopicImpl) _parent).removeOccurrence(this); super.dispose(); Modified: tinytim/trunk/src/main/java/org/tinytim/core/RoleImpl.java =================================================================== --- tinytim/trunk/src/main/java/org/tinytim/core/RoleImpl.java 2009-08-18 12:54:43 UTC (rev 355) +++ tinytim/trunk/src/main/java/org/tinytim/core/RoleImpl.java 2009-08-27 13:08:17 UTC (rev 356) @@ -16,11 +16,12 @@ package org.tinytim.core; import org.tinytim.internal.api.Event; +import org.tinytim.internal.api.IAssociation; +import org.tinytim.internal.api.IRole; import org.tinytim.internal.api.ITopicMap; import org.tinytim.internal.utils.Check; import org.tmapi.core.Association; -import org.tmapi.core.Role; import org.tmapi.core.Topic; /** @@ -29,14 +30,10 @@ * @author Lars Heuer (heuer[at]semagia.com) <a href="http://www.semagia.com/">Semagia</a> * @version $Rev$ - $Date$ */ -final class RoleImpl extends TypedImpl implements Role { +final class RoleImpl extends TypedImpl implements IRole { private Topic _player; - RoleImpl(ITopicMap tm) { - super(tm); - } - RoleImpl(ITopicMap tm, Topic type, Topic player) { super(tm, type); _player = player; @@ -45,6 +42,7 @@ /* (non-Javadoc) * @see org.tinytim.core.ConstructImpl#getParent() */ + @Override public Association getParent() { return (Association) _parent; } @@ -52,6 +50,7 @@ /* (non-Javadoc) * @see org.tmapi.core.Role#getPlayer() */ + @Override public Topic getPlayer() { return _player; } @@ -59,6 +58,7 @@ /* (non-Javadoc) * @see org.tmapi.core.Role#setPlayer(org.tmapi.core.Topic) */ + @Override public void setPlayer(Topic player) { Check.playerNotNull(this, player); Check.sameTopicMap(this, player); @@ -75,6 +75,12 @@ } } + @Override + public void moveTo(IAssociation newParent) { + ((AssociationImpl) _parent).detachRole(this); + ((AssociationImpl) newParent).attachRole(this); + } + /* (non-Javadoc) * @see org.tinytim.core.ConstructImpl#isRole() */ @@ -86,6 +92,7 @@ /* (non-Javadoc) * @see org.tmapi.core.Construct#remove() */ + @Override public void remove() { ((AssociationImpl) _parent).removeRole(this); super.dispose(); Modified: tinytim/trunk/src/main/java/org/tinytim/core/Scope.java =================================================================== --- tinytim/trunk/src/main/java/org/tinytim/core/Scope.java 2009-08-18 12:54:43 UTC (rev 355) +++ tinytim/trunk/src/main/java/org/tinytim/core/Scope.java 2009-08-27 13:08:17 UTC (rev 356) @@ -24,7 +24,6 @@ import org.tinytim.internal.api.IScope; import org.tinytim.internal.utils.CollectionFactory; import org.tinytim.internal.utils.WeakObjectRegistry; - import org.tmapi.core.Topic; /** @@ -86,6 +85,7 @@ /* (non-Javadoc) * @see org.tinytim.internal.api.IScope#asSet() */ + @Override public Set<Topic> asSet() { // _set is immutable return _set; @@ -94,6 +94,7 @@ /* (non-Javadoc) * @see org.tinytim.internal.api.IScope#contains(org.tmapi.core.Topic) */ + @Override public boolean contains(Topic theme) { return _set.contains(theme); } @@ -101,6 +102,7 @@ /* (non-Javadoc) * @see org.tinytim.internal.api.IScope#containsAll(java.util.Collection) */ + @Override public boolean containsAll(Collection<Topic> scope) { return _set.containsAll(scope); } @@ -108,6 +110,7 @@ /* (non-Javadoc) * @see org.tinytim.internal.api.IScope#add(org.tmapi.core.Topic) */ + @Override public IScope add(Topic theme) { if (_set.contains(theme)) { return this; @@ -120,6 +123,7 @@ /* (non-Javadoc) * @see org.tinytim.internal.api.IScope#remove(org.tmapi.core.Topic) */ + @Override public IScope remove(Topic theme) { if (!_set.contains(theme)) { return this; @@ -132,6 +136,7 @@ /* (non-Javadoc) * @see java.lang.Iterable#iterator() */ + @Override public Iterator<Topic> iterator(){ return _set.iterator(); } @@ -139,6 +144,7 @@ /* (non-Javadoc) * @see org.tinytim.internal.api.IScope#isUnconstrained() */ + @Override public boolean isUnconstrained() { return this == UCS; } @@ -146,6 +152,7 @@ /* (non-Javadoc) * @see org.tinytim.internal.api.IScope#size() */ + @Override public int size() { return _set.size(); } Modified: tinytim/trunk/src/main/java/org/tinytim/core/ScopedImpl.java =================================================================== --- tinytim/trunk/src/main/java/org/tinytim/core/ScopedImpl.java 2009-08-18 12:54:43 UTC (rev 355) +++ tinytim/trunk/src/main/java/org/tinytim/core/ScopedImpl.java 2009-08-27 13:08:17 UTC (rev 356) @@ -20,6 +20,7 @@ import org.tinytim.internal.api.Event; import org.tinytim.internal.api.IScope; import org.tinytim.internal.api.IScoped; +import org.tinytim.internal.api.ITopic; import org.tinytim.internal.api.ITopicMap; import org.tinytim.internal.utils.Check; @@ -34,15 +35,8 @@ */ abstract class ScopedImpl extends TypedImpl implements IScoped { - //NOTE: This class does NOT implement IScoped by intention! - protected IScope _scope; - protected ScopedImpl(ITopicMap tm) { - super(tm); - _scope = Scope.UCS; - } - protected ScopedImpl(ITopicMap topicMap, Topic type, IScope scope) { super(topicMap, type); _scope = scope; @@ -51,6 +45,7 @@ /* (non-Javadoc) * @see org.tinytim.internal.api.IScoped#getScopeObject() */ + @Override public IScope getScopeObject() { return _scope; } @@ -58,6 +53,7 @@ /* (non-Javadoc) * @see org.tinytim.internal.api.IScoped#setScopeObject(org.tinytim.internal.api.IScope) */ + @Override public void setScopeObject(IScope scope) { if (_scope == scope) { return; @@ -69,6 +65,7 @@ /* (non-Javadoc) * @see org.tmapi.core.Scoped#getScope() */ + @Override public Set<Topic> getScope() { return _scope.asSet(); } @@ -76,6 +73,7 @@ /* (non-Javadoc) * @see org.tmapi.core.Scoped#addTheme(org.tmapi.core.Topic) */ + @Override public void addTheme(Topic theme) { Check.themeNotNull(this, theme); Check.sameTopicMap(this, theme); @@ -85,11 +83,12 @@ /* (non-Javadoc) * @see org.tmapi.core.Scoped#removeTheme(org.tmapi.core.Topic) */ + @Override public void removeTheme(Topic theme) { if (theme == null) { return; } - setScopeObject(_scope.remove(theme)); + setScopeObject(_scope.remove((ITopic) theme)); } /* (non-Javadoc) Modified: tinytim/trunk/src/main/java/org/tinytim/core/TopicImpl.java =================================================================== --- tinytim/trunk/src/main/java/org/tinytim/core/TopicImpl.java 2009-08-18 12:54:43 UTC (rev 355) +++ tinytim/trunk/src/main/java/org/tinytim/core/TopicImpl.java 2009-08-27 13:08:17 UTC (rev 356) @@ -26,6 +26,7 @@ import org.tinytim.internal.api.ILiteral; import org.tinytim.internal.api.IName; import org.tinytim.internal.api.IOccurrence; +import org.tinytim.internal.api.IScope; import org.tinytim.internal.api.ITopic; import org.tinytim.internal.api.ITopicMap; import org.tinytim.internal.utils.Check; @@ -84,6 +85,7 @@ /* (non-Javadoc) * @see org.tmapi.core.Topic#addSubjectIdentifier(org.tmapi.core.Locator) */ + @Override public void addSubjectIdentifier(Locator sid) { Check.subjectIdentifierNotNull(this, sid); if (_sids.contains(sid)) { @@ -96,6 +98,7 @@ /* (non-Javadoc) * @see org.tmapi.core.Topic#removeSubjectIdentifier(org.tmapi.core.Locator) */ + @Override public void removeSubjectIdentifier(Locator sid) { if (!_sids.contains(sid)) { return; @@ -107,6 +110,7 @@ /* (non-Javadoc) * @see org.tmapi.core.Topic#getSubjectLocators() */ + @Override public Set<Locator> getSubjectLocators() { return _slos == null ? Collections.<Locator>emptySet() : Collections.unmodifiableSet(_slos); @@ -115,6 +119,7 @@ /* (non-Javadoc) * @see org.tmapi.core.Topic#addSubjectLocator(org.tmapi.core.Locator) */ + @Override public void addSubjectLocator(Locator slo) { Check.subjectLocatorNotNull(this, slo); if (_slos != null && _sids.contains(slo)) { @@ -130,6 +135,7 @@ /* (non-Javadoc) * @see org.tmapi.core.Topic#removeSubjectLocator(org.tmapi.core.Locator) */ + @Override public void removeSubjectLocator(Locator slo) { if (_slos == null || !_slos.contains(slo)) { return; @@ -141,6 +147,7 @@ /* (non-Javadoc) * @see org.tmapi.core.Topic#getOccurrences() */ + @Override public Set<Occurrence> getOccurrences() { return Collections.unmodifiableSet(_occs); } @@ -148,30 +155,34 @@ /* (non-Javadoc) * @see org.tmapi.core.Topic#createOccurrence(org.tmapi.core.Topic, java.lang.String, java.util.Collection) */ + @Override public Occurrence createOccurrence(Topic type, String value, Collection<Topic> scope) { Check.valueNotNull(this, value); - return createOccurrence(type, Literal.create(value), scope); + return createOccurrence(type, Literal.create(value), _tm.createScope(scope)); } /* (non-Javadoc) * @see org.tmapi.core.Topic#createOccurrence(org.tmapi.core.Locator, org.tmapi.core.Topic, java.util.Collection) */ + @Override public Occurrence createOccurrence(Topic type, Locator value, Collection<Topic> scope) { Check.valueNotNull(this, value); - return createOccurrence(type, Literal.create(value), scope); + return createOccurrence(type, Literal.create(value), _tm.createScope(scope)); } /* (non-Javadoc) * @see org.tmapi.core.Topic#createOccurrence(org.tmapi.core.Topic, java.lang.String, org.tmapi.core.Locator, java.util.Collection) */ + @Override public Occurrence createOccurrence(Topic type, String value, Locator datatype, Collection<Topic> scope) { Check.valueNotNull(this, value, datatype); - return createOccurrence(type, Literal.create(value, datatype), scope); + return createOccurrence(type, Literal.create(value, datatype), _tm.createScope(scope)); } /* (non-Javadoc) * @see org.tmapi.core.Topic#createOccurrence(org.tmapi.core.Topic, java.lang.String, org.tmapi.core.Locator, org.tmapi.core.Topic[]) */ + @Override public Occurrence createOccurrence(Topic type, String value, Locator datatype, Topic... scope) { Check.scopeNotNull(this, scope); return createOccurrence(type, value, datatype, Arrays.asList(scope)); @@ -180,6 +191,7 @@ /* (non-Javadoc) * @see org.tmapi.core.Topic#createOccurrence(org.tmapi.core.Topic, org.tmapi.core.Locator, org.tmapi.core.Topic[]) */ + @Override public Occurrence createOccurrence(Topic type, Locator value, Topic... scope) { Check.scopeNotNull(this, scope); return createOccurrence(type, value, Arrays.asList(scope)); @@ -188,17 +200,19 @@ /* (non-Javadoc) * @see org.tmapi.core.Topic#createOccurrence(org.tmapi.core.Topic, java.lang.String, org.tmapi.core.Topic[]) */ + @Override public Occurrence createOccurrence(Topic type, String value, Topic... scope) { Check.scopeNotNull(this, scope); return createOccurrence(type, value, Arrays.asList(scope)); } - public IOccurrence createOccurrence(Topic type, ILiteral literal, Collection<Topic> scope) { + @Override + public IOccurrence createOccurrence(Topic type, ILiteral literal, IScope scope) { Check.typeNotNull(this, type); - Check.scopeNotNull(this, scope); + Check.valueNotNull(this, literal); + Check.scopeNotNull(this, scope.asSet()); Check.sameTopicMap(this, type); - Check.sameTopicMap(this, scope); - IOccurrence occ = new OccurrenceImpl(_tm, type, literal, Scope.create(scope)); + IOccurrence occ = new OccurrenceImpl(_tm, type, literal, scope); addOccurrence(occ); return occ; } @@ -250,6 +264,7 @@ /* (non-Javadoc) * @see org.tmapi.core.Topic#getNames() */ + @Override public Set<Name> getNames() { return Collections.unmodifiableSet(_names); } @@ -257,6 +272,7 @@ /* (non-Javadoc) * @see org.tmapi.core.Topic#getNames(org.tmapi.core.Topic) */ + @Override public Set<Name> getNames(Topic type) { Check.typeNotNull(type); Set<Name> names = CollectionFactory.createIdentitySet(); @@ -271,6 +287,7 @@ /* (non-Javadoc) * @see org.tmapi.core.Topic#createName(java.lang.String, org.tmapi.core.Topic[]) */ + @Override public Name createName(String value, Topic... scope) { Check.scopeNotNull(this, scope); return createName(value, Arrays.asList(scope)); @@ -279,6 +296,7 @@ /* (non-Javadoc) * @see org.tmapi.core.Topic#createName(org.tmapi.core.Topic, java.lang.String, org.tmapi.core.Topic[]) */ + @Override public Name createName(Topic type, String value, Topic... scope) { Check.scopeNotNull(this, scope); return createName(type, value, Arrays.asList(scope)); @@ -287,6 +305,7 @@ /* (non-Javadoc) * @see org.tmapi.core.Topic#getOccurrences(org.tmapi.core.Topic) */ + @Override public Set<Occurrence> getOccurrences(Topic type) { Check.typeNotNull(type); Set<Occurrence> occs = CollectionFactory.createIdentitySet(); @@ -301,6 +320,7 @@ /* (non-Javadoc) * @see org.tmapi.core.Topic#createName(java.lang.String, java.util.Collection) */ + @Override public Name createName(String value, Collection<Topic> scope) { return createName(_tm.createTopicBySubjectIdentifier(TMDM.TOPIC_NAME), value, scope); } @@ -308,18 +328,20 @@ /* (non-Javadoc) * @see org.tmapi.core.Topic#createName(org.tmapi.core.Topic, java.lang.String, java.util.Collection) */ + @Override public Name createName(Topic type, String value, Collection<Topic> scope) { Check.valueNotNull(this, value); - return createName(type, Literal.create(value), scope); + return createName(type, Literal.create(value), _tm.createScope(scope)); } - public IName createName(Topic type, ILiteral literal, Collection<Topic> scope) { + @Override + public IName createName(Topic type, ILiteral literal, IScope scope) { Check.typeNotNull(this, type); Check.scopeNotNull(this, scope); Check.sameTopicMap(this, type); - Check.sameTopicMap(this, scope); - NameImpl name = new NameImpl(_tm, type, literal, Scope.create(scope)); - addName(name); + Check.valueNotNull(this, literal); + IName name = new NameImpl(_tm, type, literal, scope); + this.addName(name); return name; } @@ -361,6 +383,7 @@ /* (non-Javadoc) * @see org.tmapi.core.Topic#getReified() */ + @Override public Reifiable getReified() { return _reified; } @@ -368,6 +391,7 @@ /* (non-Javadoc) * @see org.tmapi.core.Topic#getRolesPlayed() */ + @Override public Set<Role> getRolesPlayed() { return _rolesPlayed == null ? Collections.<Role>emptySet() : Collections.unmodifiableSet(_rolesPlayed); @@ -376,6 +400,7 @@ /* (non-Javadoc) * @see org.tmapi.core.Topic#getRolesPlayed(org.tmapi.core.Topic) */ + @Override public Set<Role> getRolesPlayed(Topic type) { Check.typeNotNull(type); if (_rolesPlayed == null) { @@ -393,6 +418,7 @@ /* (non-Javadoc) * @see org.tmapi.core.Topic#getRolesPlayed(org.tmapi.core.Topic, org.tmapi.core.Topic) */ + @Override public Set<Role> getRolesPlayed(Topic type, Topic assoc) { Check.typeNotNull(type); if (assoc == null) { @@ -427,6 +453,7 @@ /* (non-Javadoc) * @see org.tmapi.core.Topic#getTypes() */ + @Override public Set<Topic> getTypes() { return _types == null ? Collections.<Topic>emptySet() : Collections.unmodifiableSet(_types); @@ -435,6 +462,7 @@ /* (non-Javadoc) * @see org.tmapi.core.Topic#addType(org.tmapi.core.Topic) */ + @Override public void addType(Topic type) { Check.typeNotNull(this, type); Check.sameTopicMap(this, type); @@ -451,6 +479,7 @@ /* (non-Javadoc) * @see org.tmapi.core.Topic#removeType(org.tmapi.core.Topic) */ + @Override public void removeType(Topic type) { if (_types == null || !_types.contains(type)) { return; @@ -462,6 +491,7 @@ /* (non-Javadoc) * @see org.tmapi.core.Topic#mergeIn(org.tmapi.core.Topic) */ + @Override public void mergeIn(Topic source) { MergeUtils.merge(source, this); } @@ -477,6 +507,7 @@ /* (non-Javadoc) * @see org.tmapi.core.Construct#remove() */ + @Override public void remove() throws TopicInUseException { if (!TopicUtils.isRemovable(this, true)) { throw new TopicInUseException(this, "The topic is used as type, player, reifier, or theme"); Modified: tinytim/trunk/src/main/java/org/tinytim/core/TypedImpl.java =================================================================== --- tinytim/trunk/src/main/java/org/tinytim/core/TypedImpl.java 2009-08-18 12:54:43 UTC (rev 355) +++ tinytim/trunk/src/main/java/org/tinytim/core/TypedImpl.java 2009-08-27 13:08:17 UTC (rev 356) @@ -38,10 +38,6 @@ private Topic _type; private Topic _reifier; - protected TypedImpl(ITopicMap tm) { - super(tm); - } - protected TypedImpl(ITopicMap topicMap, Topic type) { super(topicMap); _type = type; @@ -70,6 +66,7 @@ /* (non-Javadoc) * @see org.tmapi.core.Reifiable#getReifier() */ + @Override public Topic getReifier() { return _reifier; } @@ -77,6 +74,7 @@ /* (non-Javadoc) * @see org.tmapi.core.Reifiable#setReifier(org.tmapi.core.Topic) */ + @Override public void setReifier(Topic reifier) { Check.sameTopicMap(this, reifier); if (_reifier == reifier) { Modified: tinytim/trunk/src/main/java/org/tinytim/core/VariantImpl.java =================================================================== --- tinytim/trunk/src/main/java/org/tinytim/core/VariantImpl.java 2009-08-18 12:54:43 UTC (rev 355) +++ tinytim/trunk/src/main/java/org/tinytim/core/VariantImpl.java 2009-08-27 13:08:17 UTC (rev 356) @@ -19,6 +19,7 @@ import org.tinytim.internal.api.Event; import org.tinytim.internal.api.ILiteral; +import org.tinytim.internal.api.IName; import org.tinytim.internal.api.IScope; import org.tinytim.internal.api.ITopicMap; import org.tinytim.internal.api.IVariant; @@ -36,10 +37,6 @@ final class VariantImpl extends DatatypeAwareConstruct implements IVariant { - VariantImpl(ITopicMap tm) { - super(tm); - } - VariantImpl(ITopicMap topicMap, ILiteral literal, IScope scope) { super(topicMap, null, literal, scope); } @@ -47,13 +44,14 @@ /* (non-Javadoc) * @see org.tinytim.core.ConstructImpl#getParent() */ - public Name getParent() { - return (Name) _parent; + public IName getParent() { + return (IName) _parent; } /* (non-Javadoc) * @see org.tinytim.internal.api.IMovable#moveTo(org.tmapi.core.Construct) */ + @Override public void moveTo(Name newParent) { ((NameImpl) _parent).detachVariant(this); ((NameImpl) newParent).attachVariant(this); Modified: tinytim/trunk/src/main/java/org/tinytim/internal/api/IAssociation.java =================================================================== --- tinytim/trunk/src/main/java/org/tinytim/internal/api/IAssociation.java 2009-08-18 12:54:43 UTC (rev 355) +++ tinytim/trunk/src/main/java/org/tinytim/internal/api/IAssociation.java 2009-08-27 13:08:17 UTC (rev 356) @@ -21,7 +21,7 @@ * * * @author Lars Heuer (heuer[at]semagia.com) <a href="http://www.semagia.com/">Semagia</a> - * @version $Rev:$ - $Date:$ + * @version $Rev$ - $Date$ */ public interface IAssociation extends Association, IScoped { Deleted: tinytim/trunk/src/main/java/org/tinytim/internal/api/IConstructFactory.java =================================================================== --- tinytim/trunk/src/main/java/org/tinytim/internal/api/IConstructFactory.java 2009-08-18 12:54:43 UTC (rev 355) +++ tinytim/trunk/src/main/java/org/tinytim/internal/api/IConstructFactory.java 2009-08-27 13:08:17 UTC (rev 356) @@ -1,80 +0,0 @@ -/* - * Copyright 2008 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.internal.api; - -import org.tmapi.core.Association; -import org.tmapi.core.Role; - -/** - * Factory for {@link IConstruct}s. - * <p> - * This interface is not meant to be used outside of the tinyTiM package. - * </p> - * - * @author Lars Heuer (heuer[at]semagia.com) <a href="http://www.semagia.com/">Semagia</a> - * @version $Rev$ - $Date$ - */ -public interface IConstructFactory { - - /** - * Creates a topic attached to the topic map this factory belongs to. - * - * @return A topic with no identity. - */ - public ITopic createTopic(); - - /** - * Creates an association attached to the topic map this - * factory belongs to. - * - * @return An association with no type, scope, and roles. - */ - public Association createAssociation(); - - /** - * Creates a role attached to the specified <tt>parent</tt>. - * - * @param parent The parent of the role. - * @return A role with no type and player. - */ - public Role createRole(Association parent); - - /** - * Creates an occurrence attached to the specified <tt>parent</tt>. - * - * @param parent The parent of the occurrence. - * @return An occurrence with no type, literal, and scope. - */ - public IOccurrence createOccurrence(ITopic parent); - - /** - * Creates a name attached to the specified <tt>parent</tt>. - * - * @param parent The parent of the name. - * @return A name with no type, literal, and scope. - */ - public IName createName(ITopic parent); - - /** - * Creates a variant attached to the specified <tt>parent</tt>. - * - * @param parent The parent of the variant. - * @return A variant with the parent's scope, but no own scope and - * no literal. - */ - public IVariant createVariant(IName parent); - -} Modified: tinytim/trunk/src/main/java/org/tinytim/internal/api/IName.java =================================================================== --- tinytim/trunk/src/main/java/org/tinytim/internal/api/IName.java 2009-08-18 12:54:43 UTC (rev 355) +++ tinytim/trunk/src/main/java/org/tinytim/internal/api/IName.java 2009-08-27 13:08:17 UTC (rev 356) @@ -15,8 +15,6 @@ */ package org.tinytim.internal.api; -import java.util.Collection; - import org.tmapi.core.Name; import org.tmapi.core.Topic; @@ -28,6 +26,6 @@ */ public interface IName extends Name, IScoped, ILiteralAware, IMovable<Topic>{ - public IVariant createVariant(ILiteral literal, Collection<Topic> scope); + public IVariant createVariant(ILiteral literal, IScope scope); } Added: tinytim/trunk/src/main/java/org/tinytim/internal/api/IRole.java =================================================================== --- tinytim/trunk/src/main/java/org/tinytim/internal/api/IRole.java (rev 0) +++ tinytim/trunk/src/main/java/org/tinytim/internal/api/IRole.java 2009-08-27 13:08:17 UTC (rev 356) @@ -0,0 +1,28 @@ +/* + * Copyright 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.internal.api; + +import org.tmapi.core.Role; + +/** + * + * + * @author Lars Heuer (heuer[at]semagia.com) <a href="http://www.semagia.com/">Semagia</a> + * @version $Rev:$ - $Date:$ + */ +public interface IRole extends Role, IMovable<IAssociation> { + +} Property changes on: tinytim/trunk/src/main/java/org/tinytim/internal/api/IRole.java ___________________________________________________________________ Added: svn:keywords + Rev Date Id Added: svn:eol-style + native Modified: tinytim/trunk/src/main/java/org/tinytim/internal/api/ITopic.java =================================================================== --- tinytim/trunk/src/main/java/org/tinytim/internal/api/ITopic.java 2009-08-18 12:54:43 UTC (rev 355) +++ tinytim/trunk/src/main/java/org/tinytim/internal/api/ITopic.java 2009-08-27 13:08:17 UTC (rev 356) @@ -15,8 +15,6 @@ */ package org.tinytim.internal.api; -import java.util.Collection; - import org.tmapi.core.Topic; /** @@ -27,8 +25,8 @@ */ public interface ITopic extends Topic, IConstruct { - public IOccurrence createOccurrence(Topic type, ILiteral literal, Collection<Topic> scope); + public IOccurrence createOccurrence(Topic type, ILiteral literal, IScope scope); - public IName createName(Topic type, ILiteral literal, Collection<Topic> scope); + public IName createName(Topic type, ILiteral literal, IScope scope); } Modified: tinytim/trunk/src/main/java/org/tinytim/internal/api/ITopicMap.java =================================================================== --- tinytim/trunk/src/main/java/org/tinytim/internal/api/ITopicMap.java 2009-08-18 12:54:43 UTC (rev 355) +++ tinytim/trunk/src/main/java/org/tinytim/internal/api/ITopicMap.java 2009-08-27 13:08:17 UTC (rev 356) @@ -15,6 +15,9 @@ */ package org.tinytim.internal.api; +import java.util.Collection; + +import org.tmapi.core.Topic; import org.tmapi.core.TopicMap; /** @@ -27,9 +30,13 @@ * @author Lars Heuer (heuer[at]semagia.com) <a href="http://www.semagia.com/">Semagia</a> * @version $Rev$ - $Date$ */ -public interface ITopicMap extends TopicMap, IConstruct, IIndexManagerAware, +public interface ITopicMap extends TopicMap, IIndexManagerAware, IEventHandler, IEventPublisher { - public IConstructFactory getConstructFactory(); + public ITopic createEmptyTopic(); + public IAssociation createAssociation(Topic type, IScope scope); + + public IScope createScope(Collection<Topic> themes); + } Modified: tinytim/trunk/src/main/java/org/tinytim/internal/api/IVariant.java =================================================================== --- tinytim/trunk/src/main/java/org/tinytim/internal/api/IVariant.java 2009-08-18 12:54:43 UTC (rev 355) +++ tinytim/trunk/src/main/java/org/tinytim/internal/api/IVariant.java 2009-08-27 13:08:17 UTC (rev 356) @@ -26,4 +26,6 @@ */ public interface IVariant extends Variant, IScoped, ILiteralAware, IMovable<Name> { + public IName getParent(); + } Modified: tinytim/trunk/src/main/java/org/tinytim/internal/utils/Check.java =================================================================== --- tinytim/trunk/src/main/java/org/tinytim/internal/utils/Check.java 2009-08-18 12:54:43 UTC (rev 355) +++ tinytim/trunk/src/main/java/org/tinytim/internal/utils/Check.java 2009-08-27 13:08:17 UTC (rev 356) @@ -47,9 +47,9 @@ } /** - * + * Throws an {@link IllegalArgumentException}. * - * @param msg + * @param msg The error message. */ private static void _reportIllegalArgument(String msg) { throw new IllegalArgumentException(msg); @@ -75,7 +75,7 @@ * @param sender The sender. * @param scope The scope. */ - public static void scopeNotNull(Construct sender, Collection<Topic> scope) { + public static void scopeNotNull(Construct sender, Iterable<Topic> scope) { if (scope == null) { _reportModelConstraintViolation(sender, "The scope must not be null"); } @@ -200,6 +200,13 @@ _sameTopicMap(sender, sender.getTopicMap(), construct); } + /** + * Throws a {@link ModelConstraintException} iff the specified <tt>constructs</tt> + * do not belong to the same topic map as the <tt>sender</tt>. + * + * @param sender The sender. + * @param constructs The constructs. + */ public static void sameTopicMap(Construct sender, Construct...constructs) { if (constructs == null || constructs.length == 0) { return; @@ -210,6 +217,13 @@ } } + /** + * Throws a {@link ModelConstraintException} iff the specified <tt>constructs</tt> + * do not belong to the same topic map as the <tt>sender</tt>. + * + * @param sender The sender. + * @param constructs The constructs. + */ public static void sameTopicMap(Construct sender, Collection<? extends Construct> constructs) { if (constructs == null) { return; Modified: tinytim/trunk/src/main/java/org/tinytim/internal/utils/CopyUtils.java =================================================================== --- tinytim/trunk/src/main/java/org/tinytim/internal/utils/CopyUtils.java 2009-08-18 12:54:43 UTC (rev 355) +++ tinytim/trunk/src/main/java/org/tinytim/internal/utils/CopyUtils.java 2009-08-27 13:08:17 UTC (rev 356) @@ -20,6 +20,7 @@ import org.tinytim.internal.api.ILiteralAware; import org.tinytim.internal.api.IName; +import org.tinytim.internal.api.IScope; import org.tinytim.internal.api.ITopic; import org.tinytim.internal.api.ITopicMap; @@ -126,9 +127,9 @@ * @param mergeMap The map which holds the merge mappings. * @return The newly created topic in the target topic map. */ - private static Topic _copyTopic(Topic topic, ITopicMap target, + private static ITopic _copyTopic(Topic topic, ITopicMap target, Map<Topic, Topic> mergeMap) { - Topic targetTopic = target.getConstructFactory().createTopic(); + ITopic targetTopic = target.createEmptyTopic(); _copyIdentities(topic, ... [truncated message content] |