[jackson-annotations] 24/207: minor mod to ObjectIdGenerator, allow passing of context
Timo Aaltonen
tjaalton at moszumanska.debian.org
Sat Sep 6 13:55:35 UTC 2014
This is an automated email from the git hooks/post-receive script.
tjaalton pushed a commit to branch master
in repository jackson-annotations.
commit 214266285489d8c58f603fb5bdd0688306ce4da6
Author: Tatu Saloranta <tsaloranta at gmail.com>
Date: Fri Feb 10 09:44:28 2012 -0800
minor mod to ObjectIdGenerator, allow passing of context
---
.../jackson/annotation/ObjectIdGenerator.java | 20 ++++++++++++++++----
.../jackson/annotation/ObjectIdGenerators.java | 8 ++++----
2 files changed, 20 insertions(+), 8 deletions(-)
diff --git a/src/main/java/com/fasterxml/jackson/annotation/ObjectIdGenerator.java b/src/main/java/com/fasterxml/jackson/annotation/ObjectIdGenerator.java
index 995c522..5fb66a4 100644
--- a/src/main/java/com/fasterxml/jackson/annotation/ObjectIdGenerator.java
+++ b/src/main/java/com/fasterxml/jackson/annotation/ObjectIdGenerator.java
@@ -21,7 +21,9 @@ public abstract class ObjectIdGenerator<T>
/**
* Method called to check whether this generator instance can
* be used for Object Ids of specific generator type and
- * scope.
+ * scope; determination is based by passing a configured
+ * "blueprint" (prototype) instance; from which the actual
+ * instances are created (using {@link #newForSerialization}).
*
* @return True if this instance can be used as-is; false if not
*/
@@ -35,16 +37,26 @@ public abstract class ObjectIdGenerator<T>
/**
* Factory method to create a blueprint instance for specified
- * scope. Generator that do not use scope may return 'this'.
+ * scope. Generators that do not use scope may return 'this'.
*/
public abstract ObjectIdGenerator<T> forScope(Class<?> scope);
/**
* Factory method called to create a new instance to use for
* serialization: needed since generators may have state
- * (next id to produce)
+ * (next id to produce).
+ *<p>
+ * Note that actual type of 'context' is
+ * <code>com.fasterxml.jackson.databind.SerializerProvider</code>,
+ * but can not be declared here as type itself (as well as call
+ * to this object) comes from databind package.
+ *
+ * @param config Serialization context object used (of type
+ * <code>com.fasterxml.jackson.databind.SerializerProvider</code>;
+ * may be needed by more complex generators to access contextual
+ * information such as configuration.
*/
- public abstract ObjectIdGenerator<T> newForSerialization();
+ public abstract ObjectIdGenerator<T> newForSerialization(Object context);
/**
* Method for constructing key to use for ObjectId-to-POJO maps.
diff --git a/src/main/java/com/fasterxml/jackson/annotation/ObjectIdGenerators.java b/src/main/java/com/fasterxml/jackson/annotation/ObjectIdGenerators.java
index f0ae0eb..3317fba 100644
--- a/src/main/java/com/fasterxml/jackson/annotation/ObjectIdGenerators.java
+++ b/src/main/java/com/fasterxml/jackson/annotation/ObjectIdGenerators.java
@@ -49,7 +49,7 @@ public class ObjectIdGenerators
* that no generator is used; which also implies that no
* Object Id is to be included or used.
*/
- public abstract class None extends ObjectIdGenerator<Object> { }
+ public abstract static class None extends ObjectIdGenerator<Object> { }
/**
* Abstract place-holder class which is used to denote case
@@ -60,7 +60,7 @@ public class ObjectIdGenerators
* Actual implementation class is part of <code>databind</code>
* package.
*/
- public abstract class PropertyGenerator<T> extends Base<T> {
+ public abstract static class PropertyGenerator extends Base<Object> {
protected PropertyGenerator(Class<?> scope) { super(scope); }
}
@@ -86,7 +86,7 @@ public class ObjectIdGenerators
}
@Override
- public ObjectIdGenerator<Integer> newForSerialization() {
+ public ObjectIdGenerator<Integer> newForSerialization(Object context) {
return new IntSequenceGenerator(_scope, initialValue());
}
@@ -131,7 +131,7 @@ public class ObjectIdGenerators
* Can just return base instance since this is essentially scopeless
*/
@Override
- public ObjectIdGenerator<UUID> newForSerialization() {
+ public ObjectIdGenerator<UUID> newForSerialization(Object context) {
return this;
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/jackson-annotations.git
More information about the pkg-java-commits
mailing list