You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@abdera.apache.org by jm...@apache.org on 2006/09/11 18:58:52 UTC
svn commit: r442254 - in
/incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server:
target/Target.java util/RegexTargetResolver.java
Author: jmsnell
Date: Mon Sep 11 09:58:51 2006
New Revision: 442254
URL: http://svn.apache.org/viewvc?view=rev&rev=442254
Log:
Make Target serializable.
Because Matcher is not serializable, implement custom serialization for
RegexTargetResolver$RegexTarget
Modified:
incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/target/Target.java
incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/util/RegexTargetResolver.java
Modified: incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/target/Target.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/target/Target.java?view=diff&rev=442254&r1=442253&r2=442254
==============================================================================
--- incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/target/Target.java (original)
+++ incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/target/Target.java Mon Sep 11 09:58:51 2006
@@ -17,14 +17,26 @@
*/
package org.apache.abdera.protocol.server.target;
+import java.io.Serializable;
+
import org.apache.abdera.protocol.server.util.ResourceType;
-public interface Target extends Iterable<String> {
+public interface Target
+ extends Iterable<String>,
+ Serializable {
ResourceType getResourceType();
+ /**
+ * Requests a target token value. index=0 should always return the complete
+ * identifier of the target.
+ */
String getValue(int index);
+ /**
+ * Determines whether or not the Target specifies the specified token value.
+ * MUST return true if index=0
+ */
boolean hasValue(int index);
}
Modified: incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/util/RegexTargetResolver.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/util/RegexTargetResolver.java?view=diff&rev=442254&r1=442253&r2=442254
==============================================================================
--- incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/util/RegexTargetResolver.java (original)
+++ incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/util/RegexTargetResolver.java Mon Sep 11 09:58:51 2006
@@ -17,6 +17,9 @@
*/
package org.apache.abdera.protocol.server.util;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
@@ -83,8 +86,9 @@
public static class RegexTarget implements Target {
- final Matcher matcher;
- final ResourceType type;
+ private static final long serialVersionUID = 165211244926064449L;
+ transient Matcher matcher;
+ private ResourceType type;
RegexTarget(ResourceType type, Matcher matcher) {
this.type = type;
@@ -109,6 +113,24 @@
public Iterator<String> iterator() {
return new TargetIterator(this);
+ }
+
+ private void writeObject(ObjectOutputStream out)
+ throws IOException {
+ out.defaultWriteObject();
+ out.writeObject(matcher.pattern().pattern());
+ out.writeObject(matcher.group(0));
+ }
+
+ private void readObject(ObjectInputStream in)
+ throws IOException,
+ ClassNotFoundException {
+ in.defaultReadObject();
+ String p = (String) in.readObject();
+ String v = (String) in.readObject();
+ Pattern pattern = Pattern.compile(p);
+ matcher = pattern.matcher(v);
+ matcher.matches();
}
}