You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(9) |
Jun
(30) |
Jul
(74) |
Aug
(2) |
Sep
(91) |
Oct
(27) |
Nov
(77) |
Dec
(33) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(175) |
Feb
(133) |
Mar
(94) |
Apr
(65) |
May
(108) |
Jun
(100) |
Jul
(46) |
Aug
(19) |
Sep
(145) |
Oct
(289) |
Nov
(134) |
Dec
(211) |
2003 |
Jan
(106) |
Feb
(269) |
Mar
(106) |
Apr
(202) |
May
(300) |
Jun
(83) |
Jul
(70) |
Aug
(217) |
Sep
(183) |
Oct
(292) |
Nov
(324) |
Dec
(117) |
2004 |
Jan
(318) |
Feb
(151) |
Mar
(64) |
Apr
(195) |
May
(279) |
Jun
(263) |
Jul
(280) |
Aug
(167) |
Sep
(91) |
Oct
(175) |
Nov
(34) |
Dec
(38) |
2005 |
Jan
|
Feb
|
Mar
(4) |
Apr
|
May
(5) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(5) |
2006 |
Jan
|
Feb
|
Mar
(5) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
(6) |
2007 |
Jan
(2) |
Feb
(11) |
Mar
(1) |
Apr
(33) |
May
(13) |
Jun
(1) |
Jul
(3) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
2008 |
Jan
(191) |
Feb
|
Mar
(1) |
Apr
|
May
(1) |
Jun
(33) |
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
(14) |
2009 |
Jan
(39) |
Feb
(6) |
Mar
(22) |
Apr
(31) |
May
(78) |
Jun
(74) |
Jul
(39) |
Aug
(22) |
Sep
(16) |
Oct
(32) |
Nov
(4) |
Dec
(5) |
2010 |
Jan
(1) |
Feb
|
Mar
(33) |
Apr
(45) |
May
(66) |
Jun
(63) |
Jul
(32) |
Aug
(56) |
Sep
(19) |
Oct
(1) |
Nov
|
Dec
|
2013 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(4) |
Nov
|
Dec
|
2015 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(2) |
Dec
(1) |
2016 |
Jan
(1) |
Feb
(1) |
Mar
(3) |
Apr
|
May
(1) |
Jun
|
Jul
(2) |
Aug
(1) |
Sep
|
Oct
(1) |
Nov
(1) |
Dec
|
From: Xuan B. <med...@us...> - 2008-01-23 18:59:16
|
Update of /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv27283/src/org/tm4j/topicmap/tmdm Modified Files: Occurrence.java Log Message: Clarify that TMAPI 1.0 is too incompatible to TMDM such that it is not possible to support TMAPI 1.0 fully in the Occurence class. Index: Occurrence.java =================================================================== RCS file: /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/Occurrence.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Occurrence.java 23 Jan 2008 00:11:14 -0000 1.3 --- Occurrence.java 23 Jan 2008 18:59:18 -0000 1.4 *************** *** 7,10 **** --- 7,16 ---- /** + + We do <b>not</b> support TMAPI setValue(), getValue(), + because the TMAPI setValue(), getValue() methods have different semantics (they not only set the TMDM value but also the TMDM datatype, whereas a TMDM setValue sets only the TMDM value and leaves the TMDM datatyoe untouched). + + Likewise, we do not support setResource(), getResource(). + @author <a href="mailto:xua...@pu...">Xuân Baldauf</a> */ *************** *** 26,37 **** @TMDM - @TMAPI public void setValue(String value); @TMDM - @TMAPI public String getValue(); /** FIXME: it is unclear whether we should expose this method in this interface. */ --- 32,48 ---- @TMDM public void setValue(String value); @TMDM public String getValue(); /** + Provide a shortcut to change the datatype and the value in one transaction. + This is to avoid cases where value unintentionally does not match the datatype + for a very brief time. + */ + public String setDatatypeAndValue(Locator datatype,String value); + + /** FIXME: it is unclear whether we should expose this method in this interface. */ |
From: Xuan B. <med...@us...> - 2008-01-23 16:23:17
|
Update of /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv26228/src/org/tm4j/topicmap/tmdm Modified Files: TMDMUtil.java Log Message: Provide helper function for (later quickly) checking whether a Locator object represents a particular URI or PSI. Index: TMDMUtil.java =================================================================== RCS file: /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/TMDMUtil.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TMDMUtil.java 21 Jan 2008 11:13:44 -0000 1.1 --- TMDMUtil.java 23 Jan 2008 16:23:19 -0000 1.2 *************** *** 9,12 **** --- 9,14 ---- import java.util.HashMap; + import org.tm4j.net.Locator; + /** @author <a href="mailto:xua...@pu...">Xuân Baldauf</a> *************** *** 30,33 **** --- 32,39 ---- */ + public static boolean locatorRepresentsURI(Locator locator,String uri) { + return (locator.getNotation().equals("URI")&&locator.getAddress().equals(uri)); + } + public static <T> Set<T> maybeWrapUnmodifiable(Set<T> set) { if (enableWrapUnmodifieable) { |
From: Xuan B. <med...@us...> - 2008-01-23 16:08:46
|
Update of /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/tm4j1 In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv19696/src/org/tm4j/topicmap/tmdm/tm4j1 Modified Files: TopicMapImpl.java Log Message: Use centralized PSI String objects. Index: TopicMapImpl.java =================================================================== RCS file: /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/tm4j1/TopicMapImpl.java,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** TopicMapImpl.java 22 Jan 2008 21:46:04 -0000 1.13 --- TopicMapImpl.java 23 Jan 2008 16:08:48 -0000 1.14 *************** *** 15,18 **** --- 15,19 ---- import org.tm4j.topicmap.*; + import org.tm4j.topicmap.tmdm.PSI; import org.tm4j.topicmap.tmdm.ReadableTopic; import org.tm4j.topicmap.tmdm.ReadableTopicMap; *************** *** 109,115 **** try { if (type==null) { ! type = createInternalTopic("http://psi.topicmaps.org/iso13250/model/type",XTMPSI.CLASS); ! instance = createInternalTopic("http://psi.topicmaps.org/iso13250/model/instance",XTMPSI.INSTANCE); ! type_instance = createInternalTopic("http://psi.topicmaps.org/iso13250/model/type-instance",XTMPSI.CLASS_INSTANCE); } } catch (LocatorFactoryException e) { --- 110,116 ---- try { if (type==null) { ! type = createInternalTopic(PSI.TMDM.type,XTMPSI.CLASS); ! instance = createInternalTopic(PSI.TMDM.instance,XTMPSI.INSTANCE); ! type_instance = createInternalTopic(PSI.TMDM.type_instance,XTMPSI.CLASS_INSTANCE); } } catch (LocatorFactoryException e) { |
From: Xuan B. <med...@us...> - 2008-01-23 16:08:46
|
Update of /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/basic In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv19696/src/org/tm4j/topicmap/tmdm/basic Modified Files: BasicTopicMap.java Log Message: Use centralized PSI String objects. Index: BasicTopicMap.java =================================================================== RCS file: /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/basic/BasicTopicMap.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** BasicTopicMap.java 21 Jan 2008 11:13:44 -0000 1.1 --- BasicTopicMap.java 23 Jan 2008 16:08:48 -0000 1.2 *************** *** 43,47 **** defaultNameTypeTopic = createTopic(); try { ! defaultNameTypeTopic.addSubjectIdentifier(locatorFactory.createLocator("URI","http://psi.topicmaps.org/iso13250/model/topic-name")); } catch (LocatorFactoryException e) { throw new RuntimeException(e); --- 43,47 ---- defaultNameTypeTopic = createTopic(); try { ! defaultNameTypeTopic.addSubjectIdentifier(locatorFactory.createLocator("URI",PSI.TMDM.topic_name)); } catch (LocatorFactoryException e) { throw new RuntimeException(e); |
From: Xuan B. <med...@us...> - 2008-01-23 16:02:16
|
Update of /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv17159/src/org/tm4j/topicmap/tmdm Modified Files: PSI.java Log Message: Have some more centralized PSI String objects. Divide them into different classes. Index: PSI.java =================================================================== RCS file: /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/PSI.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** PSI.java 23 Jan 2008 15:58:49 -0000 1.1 --- PSI.java 23 Jan 2008 16:02:18 -0000 1.2 *************** *** 6,16 **** @author <a href="mailto:xua...@pu...">Xuân Baldauf</a> */ ! public static class PSI { ! public static String type = "http://psi.topicmaps.org/iso13250/model/type"; ! public static String instance = "http://psi.topicmaps.org/iso13250/model/instance"; ! public static String type_instance = "http://psi.topicmaps.org/iso13250/model/type-instance"; ! public static String topic_name = "http://psi.topicmaps.org/iso13250/model/topic-name"; } --- 6,28 ---- @author <a href="mailto:xua...@pu...">Xuân Baldauf</a> */ ! public class PSI { ! public static class TMDM { ! public static String type = "http://psi.topicmaps.org/iso13250/model/type"; ! public static String instance = "http://psi.topicmaps.org/iso13250/model/instance"; ! public static String type_instance = "http://psi.topicmaps.org/iso13250/model/type-instance"; ! ! public static String topic_name = "http://psi.topicmaps.org/iso13250/model/topic-name"; ! } ! public static class XMLSchema { ! public static String string = "http://www.w3.org/2001/XMLSchema#string"; ! public static String anyURI = "http://www.w3.org/2001/XMLSchema#anyURI"; ! public static String anyType = "http://www.w3.org/2001/XMLSchema#anyType"; ! ! public static String String = string; ! public static String IRI = anyURI; ! public static String XML = anyType; ! } } |
From: Xuan B. <med...@us...> - 2008-01-23 15:59:03
|
Update of /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv15383/src/org/tm4j/topicmap/tmdm Added Files: PSI.java Log Message: Create some centralized PSI String objects such that we have an opportunity to not duplicate those String objects. --- NEW FILE: PSI.java --- package org.tm4j.topicmap.tmdm; /** @author <a href="mailto:xua...@pu...">Xuân Baldauf</a> */ public static class PSI { public static String type = "http://psi.topicmaps.org/iso13250/model/type"; public static String instance = "http://psi.topicmaps.org/iso13250/model/instance"; public static String type_instance = "http://psi.topicmaps.org/iso13250/model/type-instance"; public static String topic_name = "http://psi.topicmaps.org/iso13250/model/topic-name"; } /* Copyright (c) 2007-2008 Xuân Baldauf. This software is licensed, under the terms of * Apache 2 License * GPL v2 License * GPL v3 License * LGPL v2.1 License * MPL v1.1 License as well as each later version of these licenses. This means: (1) If you are using this software, you can choose any subset of the licenses mentioned, and you can choose any version of each of these licenses (starting with the respective version indicated). (Note that, however, choosing the empty set of licenses means that you do not have any right granted by any license at all.) (2) If you are committing contributions to this software (i.e. this software as part of the official TM4J sourcecode), then you agree to each of these licenses for your contribution (such that each user of this software has still at least the same set of rights and licenses when using this software together with you contribution compared to when using this software without your contribution). */ // :tabSize=2:indentSize=2: |
From: Xuan B. <med...@us...> - 2008-01-23 00:11:11
|
Update of /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv29332/src/org/tm4j/topicmap/tmdm Modified Files: Occurrence.java Log Message: Redefine return type of Occurence.getParent() properly. Index: Occurrence.java =================================================================== RCS file: /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/Occurrence.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Occurrence.java 21 Jan 2008 20:00:25 -0000 1.2 --- Occurrence.java 23 Jan 2008 00:11:14 -0000 1.3 *************** *** 32,35 **** --- 32,41 ---- @TMAPI public String getValue(); + + /** + FIXME: it is unclear whether we should expose this method in this interface. + */ + @TMDM + public Topic getParent(); } |
From: Xuan B. <med...@us...> - 2008-01-23 00:07:50
|
Update of /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/merged In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv27567/src/org/tm4j/topicmap/tmdm/merged Modified Files: MergedOccurrence.java Log Message: Implement MergedOccurence better Index: MergedOccurrence.java =================================================================== RCS file: /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/merged/MergedOccurrence.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** MergedOccurrence.java 21 Jan 2008 20:00:27 -0000 1.2 --- MergedOccurrence.java 23 Jan 2008 00:07:53 -0000 1.3 *************** *** 16,20 **** @author <a href="mailto:xua...@pu...">Xuân Baldauf</a> */ ! public class MergedOccurrence extends MergedReifiable<ReadableOccurrence,MergedOccurrenceKey> /*implements ReadableOccurrence*/ { protected MergedTopic parent; --- 16,20 ---- @author <a href="mailto:xua...@pu...">Xuân Baldauf</a> */ ! public class MergedOccurrence extends MergedScopeable<ReadableOccurrence,MergedOccurrenceKey> implements ReadableOccurrence { protected MergedTopic parent; *************** *** 25,28 **** --- 25,46 ---- } + @TMDM + @TMAPI + public ReadableTopic getType() { + return getContainer().getMergedTopic(getRandomComponent().getType()); + } + + @TMDM + public Locator getDatatype() { + return getRandomComponent().getDatatype(); + } + + @TMDM + @TMAPI + public String getValue() { + return getRandomComponent().getValue(); + } + + @TMDM public MergedTopic getParent() { return parent; |
From: Xuan B. <med...@us...> - 2008-01-22 22:51:57
|
Update of /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv27921/src/org/tm4j/topicmap/tmdm Modified Files: TMAPI.java TMDM.java Log Message: Reason why we annotate using @TMDM and @TMAPI annotations still exists (upon a question asked during a code-review by Benjamin Bock <bb-...@bo...>) Index: TMAPI.java =================================================================== RCS file: /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/TMAPI.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TMAPI.java 21 Jan 2008 11:13:44 -0000 1.1 --- TMAPI.java 22 Jan 2008 22:52:00 -0000 1.2 *************** *** 3,7 **** /** ! Methods annotated with TMAPI are there because the method implements a particular TMAPI interface. @author <a href="mailto:xua...@pu...">Xuân Baldauf</a> --- 3,7 ---- /** ! Methods annotated with TMAPI are there because the method implements a particular TMAPI interface. We use these annotations because otherwise people may wonder why we have two methods with a different name but the same meaning. @author <a href="mailto:xua...@pu...">Xuân Baldauf</a> Index: TMDM.java =================================================================== RCS file: /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/TMDM.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TMDM.java 21 Jan 2008 11:13:44 -0000 1.1 --- TMDM.java 22 Jan 2008 22:52:00 -0000 1.2 *************** *** 3,7 **** /** ! Methods annotated with TMDM are there because the method implements a particular TMAPI interface. @author <a href="mailto:xua...@pu...">Xuân Baldauf</a> --- 3,7 ---- /** ! Methods annotated with TMDM are there because the method implements a particular TMAPI interface. We use these annotations because otherwise people may wonder why we have two methods with a different name but the same meaning. @author <a href="mailto:xua...@pu...">Xuân Baldauf</a> |
From: Xuan B. <med...@us...> - 2008-01-22 22:48:52
|
Update of /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv26565/src/org/tm4j/topicmap/tmdm Modified Files: ReadableTopicName.java Log Message: Show more interfaces to be implemented. Index: ReadableTopicName.java =================================================================== RCS file: /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/ReadableTopicName.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ReadableTopicName.java 22 Jan 2008 19:06:31 -0000 1.4 --- ReadableTopicName.java 22 Jan 2008 22:48:50 -0000 1.5 *************** *** 25,28 **** --- 25,32 ---- public ReadableTopic getParent(); + /* + @TMDM + public Set<? extends Variant> getVariants(); + */ } |
From: Xuan B. <med...@us...> - 2008-01-22 21:49:06
|
Update of /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/tm4j1 In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv3471/src/org/tm4j/topicmap/tmdm/tm4j1 Modified Files: TopicImpl.java Log Message: Implement TopicImpl.createName(String id) legacy method. Index: TopicImpl.java =================================================================== RCS file: /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/tm4j1/TopicImpl.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** TopicImpl.java 22 Jan 2008 20:58:11 -0000 1.5 --- TopicImpl.java 22 Jan 2008 21:49:10 -0000 1.6 *************** *** 316,322 **** * violate a constraint imposed by a VetoableChangeListener assigned to * this TopicMap. */ public BaseName createName(String id) throws DuplicateObjectIDException, PropertyVetoException { ! throw new UnsupportedOperationException(); } --- 316,324 ---- * violate a constraint imposed by a VetoableChangeListener assigned to * this TopicMap. + * @deprecated As of TMDM, it is not allowed to have names without value. */ + @Deprecated public BaseName createName(String id) throws DuplicateObjectIDException, PropertyVetoException { ! return createName(id,""); } *************** *** 335,338 **** --- 337,342 ---- */ public BaseName createName(String id, String nameString) throws DuplicateObjectIDException, PropertyVetoException { + assert id==null; // currently not implemented + return getContainer().unmergedToExternal(getRepresentedObject().createTopicName(nameString,null)); } |
From: Xuan B. <med...@us...> - 2008-01-22 21:47:17
|
Update of /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/tm4j1 In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv2646/src/org/tm4j/topicmap/tmdm/tm4j1 Modified Files: AssociationImpl.java Log Message: Implement AssociationImpl.createMember(String id) legacy method better. Index: AssociationImpl.java =================================================================== RCS file: /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/tm4j1/AssociationImpl.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** AssociationImpl.java 22 Jan 2008 21:36:05 -0000 1.2 --- AssociationImpl.java 22 Jan 2008 21:47:20 -0000 1.3 *************** *** 84,87 **** --- 84,88 ---- * @deprecated As of TMDM, it is not allowed to have association roles without type or without player. */ + @Deprecated public Member createMember(String id) throws DuplicateObjectIDException, PropertyVetoException { try { |
From: Xuan B. <med...@us...> - 2008-01-22 21:46:00
|
Update of /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/tm4j1 In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv1985/src/org/tm4j/topicmap/tmdm/tm4j1 Modified Files: MemberImpl.java TopicMapImpl.java Log Message: Implement MergedImpl.addPlayer(Topic player) legacy method. Index: MemberImpl.java =================================================================== RCS file: /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/tm4j1/MemberImpl.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** MemberImpl.java 22 Jan 2008 21:38:35 -0000 1.4 --- MemberImpl.java 22 Jan 2008 21:46:04 -0000 1.5 *************** *** 98,102 **** */ public void addPlayer(Topic player) throws PropertyVetoException { ! throw new UnsupportedOperationException(); } --- 98,106 ---- */ public void addPlayer(Topic player) throws PropertyVetoException { ! if (getContainer().isInternalUnspecifiedTopic(getRepresentedObject().getPlayer())) { ! getRepresentedObject().setPlayer(getContainer().externalToUnmerged(player)); ! } else { ! throw new UnsupportedOperationException("We do not support association roles having more than one player. Also, no workaround (like creating a separate association role in this case) has been implemented so far."); ! } } Index: TopicMapImpl.java =================================================================== RCS file: /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/tm4j1/TopicMapImpl.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** TopicMapImpl.java 22 Jan 2008 21:36:05 -0000 1.12 --- TopicMapImpl.java 22 Jan 2008 21:46:04 -0000 1.13 *************** *** 138,142 **** protected org.tm4j.topicmap.tmdm.Topic getInternalUnspecifiedTopic() { if (unspecifiedTopic==null) { ! unspecifiedTopic = getRepresentedObject().createTopic(); // this topic does not have properties, but this should be fine for now. } --- 138,146 ---- protected org.tm4j.topicmap.tmdm.Topic getInternalUnspecifiedTopic() { if (unspecifiedTopic==null) { ! /* ! this topic does not have properties, but this should be fine for now. ! However, when having multiple merged topic maps, maybe the instances of the internal unspecified topic should merge, too? ! */ ! unspecifiedTopic = getRepresentedObject().createTopic(); } *************** *** 144,147 **** --- 148,159 ---- } + /** + Having this method is good, as this method may evaluate faster than getInternalUnspecifiedTopic()==t, because: + If we never created the internal unspecified topic, then the test should always return false, because, in this case, what is supplied cannot be the internal unspecified topic. + */ + protected boolean isInternalUnspecifiedTopic(org.tm4j.topicmap.tmdm.ReadableTopic t) { + return unspecifiedTopic==t; + } + protected MergedTopicMap getMergedObject() { return getMergedTopicMapView().getMergedTopicMap(); |
From: Xuan B. <med...@us...> - 2008-01-22 21:39:07
|
Update of /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/tm4j1 In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv31294/src/org/tm4j/topicmap/tmdm/tm4j1 Modified Files: MemberImpl.java Log Message: Really implement MergedImpl.setRoleSpec(Topic roleSpec) legacy method. Index: MemberImpl.java =================================================================== RCS file: /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/tm4j1/MemberImpl.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** MemberImpl.java 22 Jan 2008 21:37:45 -0000 1.3 --- MemberImpl.java 22 Jan 2008 21:38:35 -0000 1.4 *************** *** 86,90 **** public void setRoleSpec(Topic roleSpec) throws PropertyVetoException { getRepresentedObject().setType(getContainer().externalToUnmerged(roleSpec)); - throw new UnsupportedOperationException(); } --- 86,89 ---- |
From: Xuan B. <med...@us...> - 2008-01-22 21:37:41
|
Update of /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/tm4j1 In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv30886/src/org/tm4j/topicmap/tmdm/tm4j1 Modified Files: MemberImpl.java Log Message: Implement MergedImpl.setRoleSpec(Topic roleSpec) legacy method. Index: MemberImpl.java =================================================================== RCS file: /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/tm4j1/MemberImpl.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** MemberImpl.java 21 Jan 2008 19:43:57 -0000 1.2 --- MemberImpl.java 22 Jan 2008 21:37:45 -0000 1.3 *************** *** 85,88 **** --- 85,89 ---- */ public void setRoleSpec(Topic roleSpec) throws PropertyVetoException { + getRepresentedObject().setType(getContainer().externalToUnmerged(roleSpec)); throw new UnsupportedOperationException(); } |
From: Xuan B. <med...@us...> - 2008-01-22 21:36:02
|
Update of /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/tm4j1 In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv30388/src/org/tm4j/topicmap/tmdm/tm4j1 Modified Files: AssociationImpl.java TopicMapImpl.java Log Message: Implement AssociationImpl.createMember(String id) legacy method. Index: AssociationImpl.java =================================================================== RCS file: /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/tm4j1/AssociationImpl.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** AssociationImpl.java 21 Jan 2008 11:13:45 -0000 1.1 --- AssociationImpl.java 22 Jan 2008 21:36:05 -0000 1.2 *************** *** 5,8 **** --- 5,9 ---- import java.util.Collection; import java.util.Iterator; + import java.util.Collections; import java.beans.PropertyVetoException; *************** *** 81,88 **** * @param id the unique ID to be assigned to the newly created Member object. If * null, then the back-end will assign a unique ID to the object. */ ! public Member createMember(String id) ! throws DuplicateObjectIDException, PropertyVetoException { ! throw new UnsupportedOperationException(); } --- 82,93 ---- * @param id the unique ID to be assigned to the newly created Member object. If * null, then the back-end will assign a unique ID to the object. + * @deprecated As of TMDM, it is not allowed to have association roles without type or without player. */ ! public Member createMember(String id) throws DuplicateObjectIDException, PropertyVetoException { ! try { ! return createMember(id,null,null,Collections.emptyList()); ! } catch (DuplicateResourceLocatorException e) { ! throw new RuntimeException("This may never happen.",e); ! } } *************** *** 102,110 **** @SuppressWarnings("unchecked") public Member createMember(String id, Locator resourceLoc, Topic roleSpec,Collection players) throws DuplicateObjectIDException,PropertyVetoException,DuplicateResourceLocatorException { ! org.tm4j.topicmap.tmdm.AssociationRole result = null; ! assert roleSpec!=null; // this is allowed in old TM4J ! org.tm4j.topicmap.tmdm.Topic roleType = getContainer().externalToUnmerged(roleSpec); for (Topic player : (Collection<Topic>) players) { --- 107,121 ---- @SuppressWarnings("unchecked") public Member createMember(String id, Locator resourceLoc, Topic roleSpec,Collection players) throws DuplicateObjectIDException,PropertyVetoException,DuplicateResourceLocatorException { ! assert resourceLoc==null; // not implemented ! org.tm4j.topicmap.tmdm.Topic roleType; ! if (roleSpec!=null) { ! roleType = getContainer().externalToUnmerged(roleSpec); ! } else { ! roleType = getContainer().getInternalUnspecifiedTopic(); ! } ! ! org.tm4j.topicmap.tmdm.AssociationRole result = null; for (Topic player : (Collection<Topic>) players) { *************** *** 112,116 **** } ! assert result!=null; return getContainer().unmergedToExternal(result); --- 123,129 ---- } ! if (result==null) { // We have not have a player. Thus, we use the dummy player. ! result = getRepresentedObject().createRole(roleType,getContainer().getInternalUnspecifiedTopic()); ! } return getContainer().unmergedToExternal(result); Index: TopicMapImpl.java =================================================================== RCS file: /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/tm4j1/TopicMapImpl.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** TopicMapImpl.java 22 Jan 2008 21:28:32 -0000 1.11 --- TopicMapImpl.java 22 Jan 2008 21:36:05 -0000 1.12 *************** *** 60,63 **** --- 60,64 ---- <li>associations without type</li> <li>association roles without type</li> + <li>association roles without player</li> </ul> */ |
From: Xuan B. <med...@us...> - 2008-01-22 21:28:30
|
Update of /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/tm4j1 In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv27002/src/org/tm4j/topicmap/tmdm/tm4j1 Modified Files: TopicMapImpl.java Log Message: Make the unspecified topic generic for the TM4J 0.9.x compatibility layer. Index: TopicMapImpl.java =================================================================== RCS file: /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/tm4j1/TopicMapImpl.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** TopicMapImpl.java 22 Jan 2008 21:22:25 -0000 1.10 --- TopicMapImpl.java 22 Jan 2008 21:28:32 -0000 1.11 *************** *** 55,59 **** protected org.tm4j.topicmap.tmdm.Topic type_instance; ! protected org.tm4j.topicmap.tmdm.Topic nullAssociationType; protected static HashMap<String,Boolean> defaultProperties = new HashMap<String,Boolean>(); --- 55,66 ---- protected org.tm4j.topicmap.tmdm.Topic type_instance; ! /** ! This is the topic which is placed into topic variables in TMDM where TM4J 1 allows a null value, like in ! <ul> ! <li>associations without type</li> ! <li>association roles without type</li> ! </ul> ! */ ! protected org.tm4j.topicmap.tmdm.Topic unspecifiedTopic; protected static HashMap<String,Boolean> defaultProperties = new HashMap<String,Boolean>(); *************** *** 128,137 **** } ! protected org.tm4j.topicmap.tmdm.Topic getInternalNullAssociationTypeTopic() { ! if (nullAssociationType==null) { ! nullAssociationType = getRepresentedObject().createTopic(); // this topic does not have properties, but this should be fine for now. } ! return nullAssociationType; } --- 135,144 ---- } ! protected org.tm4j.topicmap.tmdm.Topic getInternalUnspecifiedTopic() { ! if (unspecifiedTopic==null) { ! unspecifiedTopic = getRepresentedObject().createTopic(); // this topic does not have properties, but this should be fine for now. } ! return unspecifiedTopic; } *************** *** 390,394 **** assert resourceLocator==null; // not implemented ! return unmergedToExternal(getRepresentedObject().createAssociation(type!=null?(((TopicImpl) type).getRepresentedObject()):getInternalNullAssociationTypeTopic(),convertToInternalScope(themes))); } --- 397,401 ---- assert resourceLocator==null; // not implemented ! return unmergedToExternal(getRepresentedObject().createAssociation(type!=null?(((TopicImpl) type).getRepresentedObject()):getInternalUnspecifiedTopic(),convertToInternalScope(themes))); } |
From: Xuan B. <med...@us...> - 2008-01-22 21:22:23
|
Update of /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/tm4j1 In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv24483/src/org/tm4j/topicmap/tmdm/tm4j1 Modified Files: TopicMapImpl.java Log Message: Implement TopicMapImpl.createAssociation(String id) legacy method. Index: TopicMapImpl.java =================================================================== RCS file: /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/tm4j1/TopicMapImpl.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** TopicMapImpl.java 22 Jan 2008 21:15:12 -0000 1.9 --- TopicMapImpl.java 22 Jan 2008 21:22:25 -0000 1.10 *************** *** 352,359 **** * is already assigned to some other object in this TopicMap. * @throws PropertyVetoException if some listener to the TopicMap vetoes the creation of this object. */ ! public Association createAssociation(String id) ! throws DuplicateObjectIDException, PropertyVetoException { ! throw new UnsupportedOperationException(); } --- 352,364 ---- * is already assigned to some other object in this TopicMap. * @throws PropertyVetoException if some listener to the TopicMap vetoes the creation of this object. + * @deprecated As of TMDM, it is not allowed to have untyped associations. */ ! @Deprecated ! public Association createAssociation(String id) throws DuplicateObjectIDException, PropertyVetoException { ! try { ! return createAssociation(id,null,null,null); ! } catch (DuplicateResourceLocatorException e) { ! throw new RuntimeException("This may never happen.",e); ! } } |
From: Xuan B. <med...@us...> - 2008-01-22 21:15:09
|
Update of /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/tm4j1 In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv21363/src/org/tm4j/topicmap/tmdm/tm4j1 Modified Files: TopicMapImpl.java Log Message: Make more clear that some invocations of TopicMapImpl.createAssocation() are not yet implemented. Index: TopicMapImpl.java =================================================================== RCS file: /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/tm4j1/TopicMapImpl.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** TopicMapImpl.java 22 Jan 2008 21:13:02 -0000 1.8 --- TopicMapImpl.java 22 Jan 2008 21:15:12 -0000 1.9 *************** *** 382,385 **** --- 382,388 ---- */ public Association createAssociation(String id, org.tm4j.net.Locator resourceLocator,Topic type, Topic[] themes) throws DuplicateObjectIDException, DuplicateResourceLocatorException,PropertyVetoException { + assert id==null; // not implemented + assert resourceLocator==null; // not implemented + return unmergedToExternal(getRepresentedObject().createAssociation(type!=null?(((TopicImpl) type).getRepresentedObject()):getInternalNullAssociationTypeTopic(),convertToInternalScope(themes))); } |
From: Xuan B. <med...@us...> - 2008-01-22 21:13:11
|
Update of /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/basic In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv20129/src/org/tm4j/topicmap/tmdm/basic Modified Files: BasicScope.java Log Message: Fix BasicScope.internalAddScopingTopic such that it also works for scopes where the user is not yet known. Index: BasicScope.java =================================================================== RCS file: /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/basic/BasicScope.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** BasicScope.java 21 Jan 2008 11:13:44 -0000 1.1 --- BasicScope.java 22 Jan 2008 21:13:02 -0000 1.2 *************** *** 15,18 **** --- 15,22 ---- protected Set<BasicTopic> scope; + public boolean internalAddScopingTopic(BasicScopeable user,BasicTopic scopingTopic,BasicTopicMapConstruct eventListenerProvider) { + return internalAddScopingTopic(user,scopingTopic,false,eventListenerProvider); + } + public boolean internalAddScopingTopic(BasicScopeable user,BasicTopic scopingTopic) { return internalAddScopingTopic(user,scopingTopic,false); *************** *** 20,25 **** protected boolean internalAddScopingTopic(BasicScopeable user,BasicTopic scopingTopic,boolean notifyListener) { if (scope==null) { ! scope = user.createSet(); } --- 24,33 ---- protected boolean internalAddScopingTopic(BasicScopeable user,BasicTopic scopingTopic,boolean notifyListener) { + return internalAddScopingTopic(user,scopingTopic,notifyListener,user); + } + + protected boolean internalAddScopingTopic(BasicScopeable user,BasicTopic scopingTopic,boolean notifyListener,BasicTopicMapConstruct eventListenerProvider) { if (scope==null) { ! scope = eventListenerProvider.createSet(); } *************** *** 28,32 **** if (notifyListener) { if (success) { ! user.getEventListener().notifyScopingTopicAdded(user.getContainingTopicMap(),user,scopingTopic); } } --- 36,40 ---- if (notifyListener) { if (success) { ! eventListenerProvider.getEventListener().notifyScopingTopicAdded(user.getContainingTopicMap(),user,scopingTopic); } } |
From: Xuan B. <med...@us...> - 2008-01-22 21:13:11
|
Update of /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/tm4j1 In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv20129/src/org/tm4j/topicmap/tmdm/tm4j1 Modified Files: TopicMapImpl.java Log Message: Fix BasicScope.internalAddScopingTopic such that it also works for scopes where the user is not yet known. Index: TopicMapImpl.java =================================================================== RCS file: /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/tm4j1/TopicMapImpl.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** TopicMapImpl.java 22 Jan 2008 20:58:11 -0000 1.7 --- TopicMapImpl.java 22 Jan 2008 21:13:02 -0000 1.8 *************** *** 329,333 **** for (Topic topic : scope) { ! basicScope.internalAddScopingTopic((BasicScopeable) getRepresentedObject(),(BasicTopic) ((TopicImpl) topic).getRepresentedObject()); } --- 329,333 ---- for (Topic topic : scope) { ! basicScope.internalAddScopingTopic(null,(BasicTopic) ((TopicImpl) topic).getRepresentedObject(),(BasicTopicMap) getRepresentedObject()); } |
From: Xuan B. <med...@us...> - 2008-01-22 20:58:07
|
Update of /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/tm4j1 In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv14006/src/org/tm4j/topicmap/tmdm/tm4j1 Modified Files: TopicImpl.java TopicMapImpl.java Log Message: We cannot force the callers of the TM4J 0.9.x API to use TopicImpl[] instead of Topic[]. Thus, we have to assume that, although we get a Topic[] array, it contains only TopicImpl objects.. Index: TopicImpl.java =================================================================== RCS file: /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/tm4j1/TopicImpl.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** TopicImpl.java 22 Jan 2008 20:52:46 -0000 1.4 --- TopicImpl.java 22 Jan 2008 20:58:11 -0000 1.5 *************** *** 353,362 **** */ public BaseName createName(String id, String nameString, Topic[] scope) throws DuplicateObjectIDException, PropertyVetoException { ! return createName(id,nameString,(TopicImpl[]) scope); } protected BaseName createName(String id, String nameString, TopicImpl[] scope) throws DuplicateObjectIDException, PropertyVetoException { return getContainer().unmergedToExternal(getRepresentedObject().createTopicName(nameString,getContainer().convertToInternalScope(scope))); } // Get/Set/Add Occurrence --- 353,365 ---- */ public BaseName createName(String id, String nameString, Topic[] scope) throws DuplicateObjectIDException, PropertyVetoException { ! return getContainer().unmergedToExternal(getRepresentedObject().createTopicName(nameString,getContainer().convertToInternalScope(scope))); ! // return createName(id,nameString,(TopicImpl[]) scope); } + /* protected BaseName createName(String id, String nameString, TopicImpl[] scope) throws DuplicateObjectIDException, PropertyVetoException { return getContainer().unmergedToExternal(getRepresentedObject().createTopicName(nameString,getContainer().convertToInternalScope(scope))); } + */ // Get/Set/Add Occurrence Index: TopicMapImpl.java =================================================================== RCS file: /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/tm4j1/TopicMapImpl.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** TopicMapImpl.java 22 Jan 2008 20:46:52 -0000 1.6 --- TopicMapImpl.java 22 Jan 2008 20:58:11 -0000 1.7 *************** *** 316,324 **** } protected BasicScope convertToInternalScope(Topic[] scope) { return convertToInternalScope((TopicImpl[]) scope); } ! protected BasicScope convertToInternalScope(TopicImpl[] scope) { if ((scope==null)||(scope.length==0)) { return null; --- 316,326 ---- } + /* protected BasicScope convertToInternalScope(Topic[] scope) { return convertToInternalScope((TopicImpl[]) scope); } + */ ! protected BasicScope convertToInternalScope(Topic/*Impl*/[] scope) { if ((scope==null)||(scope.length==0)) { return null; *************** *** 326,331 **** BasicScope basicScope = new BasicScope(); ! for (TopicImpl topic : scope) { ! basicScope.internalAddScopingTopic((BasicScopeable) getRepresentedObject(),(BasicTopic) topic.getRepresentedObject()); } --- 328,333 ---- BasicScope basicScope = new BasicScope(); ! for (Topic topic : scope) { ! basicScope.internalAddScopingTopic((BasicScopeable) getRepresentedObject(),(BasicTopic) ((TopicImpl) topic).getRepresentedObject()); } |
From: Xuan B. <med...@us...> - 2008-01-22 20:52:44
|
Update of /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/tm4j1 In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv11877/src/org/tm4j/topicmap/tmdm/tm4j1 Modified Files: TopicImpl.java Log Message: Implement TopicImpl.String id, String nameString legacy method. Index: TopicImpl.java =================================================================== RCS file: /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/tm4j1/TopicImpl.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** TopicImpl.java 22 Jan 2008 20:38:34 -0000 1.3 --- TopicImpl.java 22 Jan 2008 20:52:46 -0000 1.4 *************** *** 335,339 **** */ public BaseName createName(String id, String nameString) throws DuplicateObjectIDException, PropertyVetoException { ! throw new UnsupportedOperationException(); } --- 335,339 ---- */ public BaseName createName(String id, String nameString) throws DuplicateObjectIDException, PropertyVetoException { ! return getContainer().unmergedToExternal(getRepresentedObject().createTopicName(nameString,null)); } |
From: Xuan B. <med...@us...> - 2008-01-22 20:46:51
|
Update of /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/tm4j1 In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv10045/src/org/tm4j/topicmap/tmdm/tm4j1 Modified Files: TopicMapImpl.java Log Message: Support TopicMapImpl.unmergedToExternal(TopicMap tm), at least if we are tm ourselves. Index: TopicMapImpl.java =================================================================== RCS file: /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/tm4j1/TopicMapImpl.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** TopicMapImpl.java 22 Jan 2008 20:26:50 -0000 1.5 --- TopicMapImpl.java 22 Jan 2008 20:46:52 -0000 1.6 *************** *** 259,262 **** --- 259,264 ---- } else if (unmerged instanceof org.tm4j.topicmap.tmdm.Association) { return unmergedToExternal((org.tm4j.topicmap.tmdm.Association) unmerged); + } else if (unmerged instanceof org.tm4j.topicmap.tmdm.TopicMap) { + return unmergedToExternal((org.tm4j.topicmap.tmdm.TopicMap) unmerged); } else if (unmerged==null) { return null; *************** *** 300,307 **** protected TopicMapImpl unmergedToExternal(org.tm4j.topicmap.tmdm.TopicMap unmerged) { assert unmerged!=null; ! assert getMergedObject().containsComponent(unmerged); ! return this; } --- 302,313 ---- protected TopicMapImpl unmergedToExternal(org.tm4j.topicmap.tmdm.TopicMap unmerged) { assert unmerged!=null; ! assert unmerged==getRepresentedObject(); assert getMergedObject().containsComponent(unmerged); ! if (unmerged==getRepresentedObject()) { ! return this; ! } else { ! throw new UnsupportedOperationException("Returning the TopicMapImpl objects for TopicMaps which we do not represent ourselves is currently not supported."); ! } } |
From: Xuan B. <med...@us...> - 2008-01-22 20:38:33
|
Update of /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/tm4j1 In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv7632/src/org/tm4j/topicmap/tmdm/tm4j1 Modified Files: TopicImpl.java Log Message: Implement TopicImpl.getMergedTopics() legacy method. Index: TopicImpl.java =================================================================== RCS file: /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/tmdm/tm4j1/TopicImpl.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** TopicImpl.java 21 Jan 2008 20:00:27 -0000 1.2 --- TopicImpl.java 22 Jan 2008 20:38:34 -0000 1.3 *************** *** 6,9 **** --- 6,10 ---- import java.util.Collections; import java.util.Iterator; + import java.util.ArrayList; import java.beans.PropertyVetoException; *************** *** 520,524 **** */ public Collection getMergedTopics() { ! throw new UnsupportedOperationException(); } --- 521,534 ---- */ public Collection getMergedTopics() { ! Collection<ReadableTopic> components = getMergedObject().getComponents(); ! ArrayList<TopicImpl> result = new ArrayList(components.size()-1); ! ! for (ReadableTopic t : components) { ! if (t!=this) { ! result.add(getContainer().unmergedToExternal((org.tm4j.topicmap.tmdm.Topic) t)); ! } ! } ! ! return result; } |