|
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] |