六 4th, 09
1
public abstract class ID implements java.io.Serializable {
private static final Map<ID, WeakReference<ID>> interned = new WeakHashMap<ID, WeakReference<ID>>(1000);
public static final String URIEncodingName = "urn";
public static final String URNNamespace = "jxta";
public static final ID nullID = (new NullID()).intern();
public static ID create(URI fromURI) {
try {
return IDFactory.fromURI(fromURI);
} catch (URISyntaxException badid) {
IllegalArgumentException failure = new IllegalArgumentException();
failure.initCause(badid);
throw failure;
}
}
protected ID() {}
private Object readResolve() throws ObjectStreamException {
return intern();
}
public abstract String getIDFormat();
public abstract Object getUniqueValue();
protected ID intern() {
synchronized (ID.class) {
Reference<ID> common = interned.get(this);
ID result = null;
if (null != common) {
result = common.get();
}
if (null == result) {
interned.put(this, new WeakReference<ID>(this));
result = this;
}
return result;
}
}
public URI toURI() {
return URI.create(URIEncodingName + ":" + URNNamespace + ":" + getUniqueValue());
}
}
}
快速链接:http://www.antigamez.com/go/46525.html
Rand Posts:
相关日志
本文地址 : http://www.antigamez.com/articles/1.html
如果你对本文感兴趣,欢迎订阅我的博客
六月 5, 2009 2:01 上午
这是备忘?!
这个标题=。=!
[回复]