|
From: <lh...@us...> - 2008-08-08 12:10:39
|
Revision: 108
http://tinytim.svn.sourceforge.net/tinytim/?rev=108&view=rev
Author: lheuer
Date: 2008-08-08 12:10:45 +0000 (Fri, 08 Aug 2008)
Log Message:
-----------
- Signatures are Integers now (previously Strings)
- Added Literal.get(..) to retrieve either an existing Lit. or null
Modified Paths:
--------------
tinytim/trunk/src/main/java/org/tinytim/core/CopyUtils.java
tinytim/trunk/src/main/java/org/tinytim/core/DuplicateRemovalUtils.java
tinytim/trunk/src/main/java/org/tinytim/core/IFactory.java
tinytim/trunk/src/main/java/org/tinytim/core/ILiteral.java
tinytim/trunk/src/main/java/org/tinytim/core/ILiteralAware.java
tinytim/trunk/src/main/java/org/tinytim/core/ILocator.java
tinytim/trunk/src/main/java/org/tinytim/core/IdGenerator.java
tinytim/trunk/src/main/java/org/tinytim/core/Literal.java
tinytim/trunk/src/main/java/org/tinytim/core/MergeUtils.java
tinytim/trunk/src/main/java/org/tinytim/core/SignatureGenerator.java
tinytim/trunk/src/main/java/org/tinytim/index/LiteralIndexImpl.java
tinytim/trunk/src/main/java/org/tinytim/voc/Vocabulary.java
tinytim/trunk/src/main/java/org/tinytim/voc/XSD.java
Modified: tinytim/trunk/src/main/java/org/tinytim/core/CopyUtils.java
===================================================================
--- tinytim/trunk/src/main/java/org/tinytim/core/CopyUtils.java 2008-08-07 15:08:28 UTC (rev 107)
+++ tinytim/trunk/src/main/java/org/tinytim/core/CopyUtils.java 2008-08-08 12:10:45 UTC (rev 108)
@@ -176,7 +176,7 @@
*/
private static void _copyCharacteristics(Topic topic, TopicImpl targetTopic,
Map<Topic, Topic> mergeMap) {
- Map<String, Reifiable> sigs = ((TopicMapImpl) targetTopic.getTopicMap()).getCollectionFactory().createMap();
+ Map<Integer, Reifiable> sigs = ((TopicMapImpl) targetTopic.getTopicMap()).getCollectionFactory().createMap();
for (Occurrence occ: targetTopic.getOccurrences()) {
sigs.put(SignatureGenerator.generateSignature(occ), occ);
}
@@ -226,7 +226,7 @@
*/
private static void _copyVariants(Name source, NameImpl target,
Map<Topic, Topic> mergeMap) {
- Map<String, Variant> sigs = ((TopicMapImpl) target.getTopicMap()).getCollectionFactory().createMap();
+ Map<Integer, Variant> sigs = ((TopicMapImpl) target.getTopicMap()).getCollectionFactory().createMap();
for (Variant variant: target.getVariants()) {
sigs.put(SignatureGenerator.generateSignature(variant), variant);
}
@@ -321,7 +321,7 @@
private static void _copyAssociations(TopicMap source,
TopicMapImpl target, Map<Topic, Topic> mergeMap) {
Set<Association> assocs = target.getAssociations();
- Map<String, Association> sigs = target.getCollectionFactory().createMap(assocs.size());
+ Map<Integer, Association> sigs = target.getCollectionFactory().createMap(assocs.size());
for (Association assoc: assocs) {
sigs.put(SignatureGenerator.generateSignature(assoc), assoc);
}
Modified: tinytim/trunk/src/main/java/org/tinytim/core/DuplicateRemovalUtils.java
===================================================================
--- tinytim/trunk/src/main/java/org/tinytim/core/DuplicateRemovalUtils.java 2008-08-07 15:08:28 UTC (rev 107)
+++ tinytim/trunk/src/main/java/org/tinytim/core/DuplicateRemovalUtils.java 2008-08-08 12:10:45 UTC (rev 108)
@@ -22,9 +22,9 @@
import java.util.ArrayList;
import java.util.Collection;
-import java.util.HashMap;
import java.util.Map;
+import org.tinytim.utils.ICollectionFactory;
import org.tmapi.core.Association;
import org.tmapi.core.Name;
import org.tmapi.core.Occurrence;
@@ -56,7 +56,7 @@
for (Topic topic: tm.getTopics()) {
removeDuplicates(topic);
}
- Map<String, Association> sig2Assoc = tm.getCollectionFactory().createMap();
+ Map<Integer, Association> sig2Assoc = tm.getCollectionFactory().createMap();
TypeInstanceIndex typeInstanceIdx = tm.getIndexManager().getTypeInstanceIndex();
if (!typeInstanceIdx.isAutoUpdated()) {
typeInstanceIdx.reindex();
@@ -64,13 +64,12 @@
for (Topic type: typeInstanceIdx.getAssociationTypes()) {
_removeDuplicateAssociations(sig2Assoc, typeInstanceIdx.getAssociations(type));
}
- _removeDuplicateAssociations(sig2Assoc, typeInstanceIdx.getAssociations(null));
}
- private static void _removeDuplicateAssociations(Map<String, Association> sig2Assoc, Collection<Association> assocs) {
+ private static void _removeDuplicateAssociations(Map<Integer, Association> sig2Assoc, Collection<Association> assocs) {
sig2Assoc.clear();
Association existing = null;
- String sig = null;
+ Integer sig = null;
for (Association assoc: assocs) {
removeDuplicates(assoc);
sig = SignatureGenerator.generateSignature(assoc);
@@ -91,8 +90,9 @@
* @param topic The topic from which duplicates should be removed from.
*/
public static void removeDuplicates(Topic topic) {
- _removeDuplicateOccurrences(topic.getOccurrences());
- _removeDuplicateNames(topic.getNames());
+ ICollectionFactory collFactory = ((TopicMapImpl) topic.getTopicMap()).getCollectionFactory();
+ _removeDuplicateOccurrences(topic.getOccurrences(), collFactory);
+ _removeDuplicateNames(topic.getNames(), collFactory);
}
/**
@@ -101,9 +101,10 @@
* @param name The name from which the duplicates should be removed.
*/
public static void removeDuplicates(Name name) {
- Map<String, Variant> sigs = new HashMap<String, Variant>();
+ Map<Integer, Variant> sigs = ((TopicMapImpl) name.getTopicMap()).getCollectionFactory().createMap();
+ Integer sig = null;
for (Variant variant: new ArrayList<Variant>(name.getVariants())) {
- String sig = SignatureGenerator.generateSignature(variant);
+ sig = SignatureGenerator.generateSignature(variant);
Variant existing = sigs.get(sig);
if (existing != null) {
MergeUtils.handleExistingConstruct(variant, existing);
@@ -120,11 +121,12 @@
*
* @param occs
*/
- private static void _removeDuplicateOccurrences(Collection<Occurrence> occs) {
- Map<String, Occurrence> sigs = new HashMap<String, Occurrence>(occs.size());
+ private static void _removeDuplicateOccurrences(Collection<Occurrence> occs, ICollectionFactory collFactory) {
+ Map<Integer, Occurrence> sigs = collFactory.createMap(occs.size());
Occurrence existing = null;
+ Integer sig = null;
for (Occurrence occ: new ArrayList<Occurrence>(occs)) {
- String sig = SignatureGenerator.generateSignature(occ);
+ sig = SignatureGenerator.generateSignature(occ);
existing = sigs.get(sig);
if (existing != null) {
MergeUtils.handleExistingConstruct(occ, existing);
@@ -141,12 +143,13 @@
*
* @param names
*/
- private static void _removeDuplicateNames(Collection<Name> names) {
- Map<String, Name> sigs = new HashMap<String, Name>(names.size());
+ private static void _removeDuplicateNames(Collection<Name> names, ICollectionFactory collFactory) {
+ Map<Integer, Name> sigs = collFactory.createMap(names.size());
Name existing = null;
+ Integer sig = null;
for (Name name: new ArrayList<Name>(names)) {
removeDuplicates(name);
- String sig = SignatureGenerator.generateSignature(name);
+ sig = SignatureGenerator.generateSignature(name);
existing = sigs.get(sig);
if (existing != null) {
MergeUtils.handleExistingConstruct(name, existing);
@@ -165,9 +168,9 @@
* @param assoc The association to remove duplicate roles from.
*/
public static void removeDuplicates(Association assoc) {
- Map<String, Role> sig2Role = ((TopicMapImpl) assoc.getTopicMap()).getCollectionFactory().createMap();
+ Map<Integer, Role> sig2Role = ((TopicMapImpl) assoc.getTopicMap()).getCollectionFactory().createMap();
Role existing = null;
- String sig = null;
+ Integer sig = null;
for (Role role: new ArrayList<Role>(assoc.getRoles())) {
sig = SignatureGenerator.generateSignature(role);
existing = sig2Role.get(sig);
Modified: tinytim/trunk/src/main/java/org/tinytim/core/IFactory.java
===================================================================
--- tinytim/trunk/src/main/java/org/tinytim/core/IFactory.java 2008-08-07 15:08:28 UTC (rev 107)
+++ tinytim/trunk/src/main/java/org/tinytim/core/IFactory.java 2008-08-08 12:10:45 UTC (rev 108)
@@ -31,7 +31,7 @@
*
*
* @author Lars Heuer (heuer[at]semagia.com) <a href="http://www.semagia.com/">Semagia</a>
- * @version $Rev:$ - $Date:$
+ * @version $Rev$ - $Date$
*/
public interface IFactory {
Modified: tinytim/trunk/src/main/java/org/tinytim/core/ILiteral.java
===================================================================
--- tinytim/trunk/src/main/java/org/tinytim/core/ILiteral.java 2008-08-07 15:08:28 UTC (rev 107)
+++ tinytim/trunk/src/main/java/org/tinytim/core/ILiteral.java 2008-08-08 12:10:45 UTC (rev 108)
@@ -31,7 +31,7 @@
* This interface is not meant to be used outside of the tinyTiM package.
*
* @author Lars Heuer (heuer[at]semagia.com) <a href="http://www.semagia.com/">Semagia</a>
- * @version $Rev:$ - $Date:$
+ * @version $Rev$ - $Date$
*/
public interface ILiteral {
Modified: tinytim/trunk/src/main/java/org/tinytim/core/ILiteralAware.java
===================================================================
--- tinytim/trunk/src/main/java/org/tinytim/core/ILiteralAware.java 2008-08-07 15:08:28 UTC (rev 107)
+++ tinytim/trunk/src/main/java/org/tinytim/core/ILiteralAware.java 2008-08-08 12:10:45 UTC (rev 108)
@@ -26,7 +26,7 @@
* This interface is not meant to be used outside of the tinyTiM package.
*
* @author Lars Heuer (heuer[at]semagia.com) <a href="http://www.semagia.com/">Semagia</a>
- * @version $Rev:$ - $Date:$
+ * @version $Rev$ - $Date$
*/
public interface ILiteralAware {
Modified: tinytim/trunk/src/main/java/org/tinytim/core/ILocator.java
===================================================================
--- tinytim/trunk/src/main/java/org/tinytim/core/ILocator.java 2008-08-07 15:08:28 UTC (rev 107)
+++ tinytim/trunk/src/main/java/org/tinytim/core/ILocator.java 2008-08-08 12:10:45 UTC (rev 108)
@@ -28,7 +28,7 @@
* This interface is not meant to be used outside of the tinyTiM package.
*
* @author Lars Heuer (heuer[at]semagia.com) <a href="http://www.semagia.com/">Semagia</a>
- * @version $Rev:$ - $Date:$
+ * @version $Rev$ - $Date$
*/
public interface ILocator extends ILiteral, Locator {
Modified: tinytim/trunk/src/main/java/org/tinytim/core/IdGenerator.java
===================================================================
--- tinytim/trunk/src/main/java/org/tinytim/core/IdGenerator.java 2008-08-07 15:08:28 UTC (rev 107)
+++ tinytim/trunk/src/main/java/org/tinytim/core/IdGenerator.java 2008-08-08 12:10:45 UTC (rev 108)
@@ -26,7 +26,7 @@
*
*
* @author Lars Heuer (heuer[at]semagia.com) <a href="http://www.semagia.com/">Semagia</a>
- * @version $Rev:$ - $Date:$
+ * @version $Rev$ - $Date$
*/
final class IdGenerator {
Modified: tinytim/trunk/src/main/java/org/tinytim/core/Literal.java
===================================================================
--- tinytim/trunk/src/main/java/org/tinytim/core/Literal.java 2008-08-07 15:08:28 UTC (rev 107)
+++ tinytim/trunk/src/main/java/org/tinytim/core/Literal.java 2008-08-08 12:10:45 UTC (rev 108)
@@ -37,7 +37,7 @@
* This class is not meant to be used outside of the tinyTiM package.
*
* @author Lars Heuer (heuer[at]semagia.com) <a href="http://www.semagia.com/">Semagia</a>
- * @version $Rev:$ - $Date:$
+ * @version $Rev$ - $Date$
*/
public final class Literal implements ILiteral {
@@ -49,6 +49,9 @@
private final Locator _datatype;
private Literal(final String value, final Locator datatype) {
+ if (value == null) {
+ throw new IllegalArgumentException("The value must not be null");
+ }
_value = value;
_datatype = datatype;
}
@@ -61,6 +64,34 @@
return _value;
}
+ public static synchronized ILiteral get(String value) {
+ return _STRINGS.get(new Literal(value, XSD.STRING));
+ }
+
+ public static synchronized ILiteral getIRI(String value) {
+ if (value == null) {
+ throw new IllegalArgumentException("The value must not be null");
+ }
+ return _IRIS.get(new IRI(value));
+ }
+
+ public static synchronized ILiteral get(String value, Locator datatype) {
+ if (value == null) {
+ throw new IllegalArgumentException("The value must not be null");
+ }
+ if (datatype == null) {
+ throw new IllegalArgumentException("The datatype must not be null");
+ }
+ if (XSD.ANY_URI.equals(datatype)) {
+ return getIRI(value);
+ }
+ if (XSD.STRING.equals(datatype)) {
+ return get(value);
+ }
+ return _LITERALS.get(new Literal(value, datatype));
+
+ }
+
public static synchronized ILiteral create(final String value, final Locator datatype) {
if (value == null) {
throw new IllegalArgumentException("The value must not be null");
@@ -84,9 +115,6 @@
}
public static synchronized ILiteral create(String value) {
- if (value == null) {
- throw new IllegalArgumentException("The value must not be null");
- }
ILiteral literal = new Literal(value, XSD.STRING);
ILiteral existing = _STRINGS.get(literal);
if (existing != null) {
Modified: tinytim/trunk/src/main/java/org/tinytim/core/MergeUtils.java
===================================================================
--- tinytim/trunk/src/main/java/org/tinytim/core/MergeUtils.java 2008-08-07 15:08:28 UTC (rev 107)
+++ tinytim/trunk/src/main/java/org/tinytim/core/MergeUtils.java 2008-08-08 12:10:45 UTC (rev 108)
@@ -121,7 +121,7 @@
for(Topic type: source.getTypes()) {
target.addType(type);
}
- Map<String, Reifiable> sigs = ((TopicMapImpl) source.getTopicMap()).getCollectionFactory().createMap();
+ Map<Integer, Reifiable> sigs = ((TopicMapImpl) source.getTopicMap()).getCollectionFactory().createMap();
for (Occurrence occ: target.getOccurrences()) {
sigs.put(SignatureGenerator.generateSignature(occ), occ);
}
@@ -177,7 +177,7 @@
* @param target The association which takes the role characteristics.
*/
static void moveRoleCharacteristics(Association source, Association target) {
- Map<String, Role> sigs = ((TopicMapImpl) target.getTopicMap()).getCollectionFactory().<String, Role>createMap();
+ Map<Integer, Role> sigs = ((TopicMapImpl) target.getTopicMap()).getCollectionFactory().createMap();
for (Role role: target.getRoles()) {
sigs.put(SignatureGenerator.generateSignature(role), role);
}
@@ -196,7 +196,7 @@
*/
@SuppressWarnings("unchecked")
static void moveVariants(Name source, Name target) {
- Map<String, Variant> sigs = ((TopicMapImpl) target.getTopicMap()).getCollectionFactory().<String, Variant>createMap();
+ Map<Integer, Variant> sigs = ((TopicMapImpl) target.getTopicMap()).getCollectionFactory().createMap();
for (Variant var: target.getVariants()) {
sigs.put(SignatureGenerator.generateSignature(var), var);
}
Modified: tinytim/trunk/src/main/java/org/tinytim/core/SignatureGenerator.java
===================================================================
--- tinytim/trunk/src/main/java/org/tinytim/core/SignatureGenerator.java 2008-08-07 15:08:28 UTC (rev 107)
+++ tinytim/trunk/src/main/java/org/tinytim/core/SignatureGenerator.java 2008-08-08 12:10:45 UTC (rev 108)
@@ -21,6 +21,7 @@
package org.tinytim.core;
import java.util.Arrays;
+import java.util.Collection;
import java.util.Set;
import org.tmapi.core.Association;
@@ -61,24 +62,23 @@
* @param assoc The association to generate the signature for.
* @return The association's signature.
*/
- public static String generateSignature(Association assoc) {
- StringBuilder sb = new StringBuilder();
- sb.append(_generateTypeSignature(assoc))
- .append('s')
- .append(_generateScopeSignature(assoc))
- .append('.');
- Set<Role> roles = assoc.getRoles();
- String[] roleSigs = new String[roles.size()];
+ public static int generateSignature(Association assoc) {
+ return Arrays.hashCode(new int[] {_generateTypeSignature(assoc),
+ _generateScopeSignature(assoc),
+ _generateRolesSignature(assoc.getRoles())});
+ }
+
+ private static int _generateRolesSignature(final Collection<Role> roles) {
+ if (roles.isEmpty()) {
+ return 0;
+ }
+ int[] ids = new int[roles.size()];
int i = 0;
for (Role role : roles) {
- roleSigs[i++] = generateSignature(role);
+ ids[i++] = generateSignature(role);
}
- Arrays.sort(roleSigs);
- for (String sig : roleSigs) {
- sb.append(sig)
- .append('.');
- }
- return sb.toString();
+ Arrays.sort(ids);
+ return Arrays.hashCode(ids);
}
/**
@@ -87,12 +87,10 @@
* @param role The role to generate the signature for.
* @return The role's signature.
*/
- public static String generateSignature(Role role) {
- StringBuilder sb = new StringBuilder();
- sb.append(_generateTypeSignature(role))
- .append('p')
- .append(role.getPlayer() == null ? "" : role.getPlayer().getId());
- return sb.toString();
+ public static int generateSignature(final Role role) {
+ return Arrays.hashCode(new int[] {
+ _signature(role.getType()), _signature(role.getPlayer())
+ });
}
/**
@@ -101,14 +99,12 @@
* @param occ The occurrence to create the signature for.
* @return The signature of the occurrence.
*/
- public static String generateSignature(Occurrence occ) {
- StringBuilder sb = new StringBuilder();
- sb.append(_generateTypeSignature(occ))
- .append('s')
- .append(_generateScopeSignature(occ))
- .append('v')
- .append(_generateDataSignature((ILiteralAware) occ));
- return sb.toString();
+ public static int generateSignature(final Occurrence occ) {
+ return Arrays.hashCode(new int[] {
+ _generateTypeSignature(occ),
+ _generateScopeSignature(occ),
+ _generateDataSignature((ILiteralAware)occ)
+ });
}
/**
@@ -119,14 +115,12 @@
* @param name The name to generate the signature for.
* @return A signature for the name.
*/
- public static String generateSignature(Name name) {
- StringBuilder sb = new StringBuilder();
- sb.append(_generateTypeSignature(name))
- .append('s')
- .append(_generateScopeSignature(name))
- .append('v')
- .append(_generateDataSignature((ILiteralAware) name));
- return sb.toString();
+ public static int generateSignature(final Name name) {
+ return Arrays.hashCode(new int[] {
+ _generateTypeSignature(name),
+ _generateScopeSignature(name),
+ _generateDataSignature((ILiteralAware)name)
+ });
}
/**
@@ -135,12 +129,11 @@
* @param variant The variant to generate the signature for.
* @return A signature for the variant.
*/
- public static String generateSignature(Variant variant) {
- StringBuilder sb = new StringBuilder();
- sb.append(_generateScopeSignature(variant))
- .append('v')
- .append(_generateDataSignature((ILiteralAware)variant));
- return sb.toString();
+ public static int generateSignature(final Variant variant) {
+ return Arrays.hashCode(new int[] {
+ _generateScopeSignature(variant),
+ _generateDataSignature((ILiteralAware)variant)
+ });
}
/**
@@ -149,7 +142,7 @@
* @param construct An occurrence or variant.
* @return The signature.
*/
- private static int _generateDataSignature(ILiteralAware construct) {
+ private static int _generateDataSignature(final ILiteralAware construct) {
return System.identityHashCode(construct.getLiteral());
}
@@ -159,9 +152,8 @@
* @param typed The typed Topic Maps construct.
* @return The signature.
*/
- private static String _generateTypeSignature(Typed typed) {
- Topic type = typed.getType();
- return type == null ? "" : type.getId();
+ private static int _generateTypeSignature(final Typed typed) {
+ return _signature(typed.getType());
}
/**
@@ -173,23 +165,22 @@
* @param scoped The scoped Topic Maps construct.
* @return The signature.
*/
- private static String _generateScopeSignature(Scoped scoped) {
+ private static int _generateScopeSignature(final Scoped scoped) {
Set<Topic> scope = scoped.getScope();
if (scope.isEmpty()) {
- return "";
+ return 0;
}
- String[] ids = new String[scope.size()];
+ int[] ids = new int[scope.size()];
int i = 0;
for (Topic topic : scope) {
- ids[i++] = topic.getId();
+ ids[i++] = _signature(topic);
}
Arrays.sort(ids);
- StringBuilder sb = new StringBuilder();
- for (String id : ids) {
- sb.append(id)
- .append('.');
- }
- return sb.toString();
+ return Arrays.hashCode(ids);
}
+ private static int _signature(Topic topic) {
+ return System.identityHashCode(topic);
+ }
+
}
Modified: tinytim/trunk/src/main/java/org/tinytim/index/LiteralIndexImpl.java
===================================================================
--- tinytim/trunk/src/main/java/org/tinytim/index/LiteralIndexImpl.java 2008-08-07 15:08:28 UTC (rev 107)
+++ tinytim/trunk/src/main/java/org/tinytim/index/LiteralIndexImpl.java 2008-08-08 12:10:45 UTC (rev 108)
@@ -45,7 +45,7 @@
*
*
* @author Lars Heuer (heuer[at]semagia.com) <a href="http://www.semagia.com/">Semagia</a>
- * @version $Rev:$ - $Date:$
+ * @version $Rev$ - $Date$
*/
public class LiteralIndexImpl extends AbstractIndex implements LiteralIndex {
@@ -73,10 +73,13 @@
* @see org.tmapi.index.LiteralIndex#getNames(java.lang.String)
*/
public Collection<Name> getNames(String value) {
- return _getNames(Literal.create(value));
+ return _getNames(Literal.get(value));
}
private Collection<Name> _getNames(ILiteral literal) {
+ if (literal == null) {
+ return Collections.<Name>emptySet();
+ }
Collection<Name> names = _lit2Names.get(literal);
return names == null ? Collections.<Name>emptySet()
: new ArrayList<Name>(names);
@@ -86,24 +89,30 @@
* @see org.tmapi.index.LiteralIndex#getOccurrences(java.lang.String)
*/
public Collection<Occurrence> getOccurrences(String value) {
- return _getOccurrences(Literal.create(value));
+ return _getOccurrences(Literal.get(value));
}
/* (non-Javadoc)
* @see org.tmapi.index.LiteralIndex#getOccurrences(org.tmapi.core.Locator)
*/
public Collection<Occurrence> getOccurrences(Locator value) {
- return _getOccurrences(Literal.create(value));
+ if (value == null) {
+ throw new IllegalArgumentException("The value must not be null");
+ }
+ return _getOccurrences((ILiteral) value);
}
/* (non-Javadoc)
* @see org.tmapi.index.LiteralIndex#getOccurrences(java.lang.String, org.tmapi.core.Locator)
*/
public Collection<Occurrence> getOccurrences(String value, Locator datatype) {
- return _getOccurrences(Literal.create(value, datatype));
+ return _getOccurrences(Literal.get(value, datatype));
}
private Collection<Occurrence> _getOccurrences(ILiteral literal) {
+ if (literal == null) {
+ return Collections.<Occurrence>emptySet();
+ }
Collection<Occurrence> occs = _lit2Occs.get(literal);
return occs == null ? Collections.<Occurrence>emptySet()
: new ArrayList<Occurrence>(occs);
@@ -113,24 +122,30 @@
* @see org.tmapi.index.LiteralIndex#getVariants(java.lang.String)
*/
public Collection<Variant> getVariants(String value) {
- return _getVariants(Literal.create(value));
+ return _getVariants(Literal.get(value));
}
/* (non-Javadoc)
* @see org.tmapi.index.LiteralIndex#getVariants(org.tmapi.core.Locator)
*/
public Collection<Variant> getVariants(Locator value) {
- return _getVariants(Literal.create(value));
+ if (value == null) {
+ throw new IllegalArgumentException("The value must not be null");
+ }
+ return _getVariants((ILiteral) value);
}
/* (non-Javadoc)
* @see org.tmapi.index.LiteralIndex#getVariants(java.lang.String, org.tmapi.core.Locator)
*/
public Collection<Variant> getVariants(String value, Locator datatype) {
- return _getVariants(Literal.create(value, datatype));
+ return _getVariants(Literal.get(value, datatype));
}
private Collection<Variant> _getVariants(ILiteral literal) {
+ if (literal == null) {
+ return Collections.<Variant>emptySet();
+ }
Collection<Variant> variants = _lit2Variants.get(literal);
return variants == null ? Collections.<Variant>emptySet()
: new ArrayList<Variant>(variants);
Modified: tinytim/trunk/src/main/java/org/tinytim/voc/Vocabulary.java
===================================================================
--- tinytim/trunk/src/main/java/org/tinytim/voc/Vocabulary.java 2008-08-07 15:08:28 UTC (rev 107)
+++ tinytim/trunk/src/main/java/org/tinytim/voc/Vocabulary.java 2008-08-08 12:10:45 UTC (rev 108)
@@ -27,7 +27,7 @@
*
*
* @author Lars Heuer (heuer[at]semagia.com) <a href="http://www.semagia.com/">Semagia</a>
- * @version $Rev:$ - $Date:$
+ * @version $Rev$ - $Date$
*/
abstract class Vocabulary {
Modified: tinytim/trunk/src/main/java/org/tinytim/voc/XSD.java
===================================================================
--- tinytim/trunk/src/main/java/org/tinytim/voc/XSD.java 2008-08-07 15:08:28 UTC (rev 107)
+++ tinytim/trunk/src/main/java/org/tinytim/voc/XSD.java 2008-08-08 12:10:45 UTC (rev 108)
@@ -26,7 +26,7 @@
*
*
* @author Lars Heuer (heuer[at]semagia.com) <a href="http://www.semagia.com/">Semagia</a>
- * @version $Rev:$ - $Date:$
+ * @version $Rev$ - $Date$
*/
public final class XSD extends Vocabulary {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|