From 8606051205e59b3628a683224b5c345f4d7f9a23 Mon Sep 17 00:00:00 2001 From: Nikita Date: Mon, 5 Feb 2018 09:11:42 +0300 Subject: [PATCH] javadocs added --- .../java/org/redisson/api/RCascadeType.java | 20 +++++++++++++++++++ .../org/redisson/api/annotation/RCascade.java | 4 ++++ .../org/redisson/api/annotation/REntity.java | 18 ++++++++++++++++- .../api/annotation/RFieldAccessor.java | 13 ++++++++++++ .../java/org/redisson/api/annotation/RId.java | 10 ++++++++++ .../org/redisson/api/annotation/RInject.java | 1 + .../redisson/api/annotation/RObjectField.java | 13 ++++++++++++ 7 files changed, 78 insertions(+), 1 deletion(-) diff --git a/redisson/src/main/java/org/redisson/api/RCascadeType.java b/redisson/src/main/java/org/redisson/api/RCascadeType.java index 17354cfe9..c4e045101 100644 --- a/redisson/src/main/java/org/redisson/api/RCascadeType.java +++ b/redisson/src/main/java/org/redisson/api/RCascadeType.java @@ -16,16 +16,36 @@ package org.redisson.api; /** + * Live Object cascade type. * * @author Nikita Koksharov * */ public enum RCascadeType { + /** + * Includes all cascade types. + */ ALL, + + /** + * Cascade persist operation during {@link RLiveObjectService#persist} method invocation. + */ PERSIST, + + /** + * Cascade detach operation during {@link RLiveObjectService#detach} method invocation. + */ DETACH, + + /** + * Cascade merge operation during {@link RLiveObjectService#merge} method invocation. + */ MERGE, + + /** + * Cascade delete operation during {@link RLiveObjectService#delete} method invocation. + */ DELETE diff --git a/redisson/src/main/java/org/redisson/api/annotation/RCascade.java b/redisson/src/main/java/org/redisson/api/annotation/RCascade.java index f8bc83efd..9d144ea86 100644 --- a/redisson/src/main/java/org/redisson/api/annotation/RCascade.java +++ b/redisson/src/main/java/org/redisson/api/annotation/RCascade.java @@ -23,6 +23,7 @@ import java.lang.annotation.Target; import org.redisson.api.RCascadeType; /** + * Specifies that the defined cascade types are applied to the object/objects contained in Live Object field. * * @author Nikita Koksharov * @@ -31,6 +32,9 @@ import org.redisson.api.RCascadeType; @Target({ElementType.FIELD}) public @interface RCascade { + /** + * List of applied cascade types. + */ RCascadeType[] value(); } diff --git a/redisson/src/main/java/org/redisson/api/annotation/REntity.java b/redisson/src/main/java/org/redisson/api/annotation/REntity.java index 9d4497224..60444098d 100644 --- a/redisson/src/main/java/org/redisson/api/annotation/REntity.java +++ b/redisson/src/main/java/org/redisson/api/annotation/REntity.java @@ -25,6 +25,7 @@ import org.redisson.client.codec.Codec; import org.redisson.codec.JsonJacksonCodec; /** + * Specifies that the class is a Live Object. * * @author Rui Gu (https://github.com/jackygurui) */ @@ -33,13 +34,28 @@ import org.redisson.codec.JsonJacksonCodec; public @interface REntity { public enum TransformationMode { - IMPLEMENTATION_BASED, ANNOTATION_BASED + + IMPLEMENTATION_BASED, + + ANNOTATION_BASED } + /** + * (Optional) Live Object naming scheme. Defines how to assign key names for each instance of this class. + * Used to create a reference to an existing Live Object and materialising a new one in redis. + * Defaults to {@link DefaultNamingScheme} implementation. + */ Class namingScheme() default DefaultNamingScheme.class; + /** + * (Optional) Live Object state codec. Defaults to {@link JsonJacksonCodec}. + */ Class codec() default JsonJacksonCodec.class; + /** + * (Optional) Live Object field transformation. + * Defaults to {@link TransformationMode#ANNOTATION_BASED} + */ TransformationMode fieldTransformation() default TransformationMode.ANNOTATION_BASED; } diff --git a/redisson/src/main/java/org/redisson/api/annotation/RFieldAccessor.java b/redisson/src/main/java/org/redisson/api/annotation/RFieldAccessor.java index dc9bcd573..98545a9c0 100644 --- a/redisson/src/main/java/org/redisson/api/annotation/RFieldAccessor.java +++ b/redisson/src/main/java/org/redisson/api/annotation/RFieldAccessor.java @@ -21,6 +21,19 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** + * Specifies that the method is a field accessor for Live Object. + * Example: + *
+ *       @RFieldAccessor
+ *       public  void set(String field, T value) {
+ *       }
+ *       
+ *       @RFieldAccessor
+ *       public  T get(String field) {
+ *           return null;
+ *       }
+ * 
+ * * * @author Rui Gu (https://github.com/jackygurui) */ diff --git a/redisson/src/main/java/org/redisson/api/annotation/RId.java b/redisson/src/main/java/org/redisson/api/annotation/RId.java index 217f4313d..26820f8e3 100644 --- a/redisson/src/main/java/org/redisson/api/annotation/RId.java +++ b/redisson/src/main/java/org/redisson/api/annotation/RId.java @@ -20,10 +20,14 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.redisson.liveobject.resolver.LongGenerator; import org.redisson.liveobject.resolver.RIdResolver; import org.redisson.liveobject.resolver.RequiredIdResolver; +import org.redisson.liveobject.resolver.UUIDGenerator; /** + * Specifies that the field is a Live Object's id field. + * Only single field could be specified per class. * * @author Rui Gu (https://github.com/jackygurui) */ @@ -31,6 +35,12 @@ import org.redisson.liveobject.resolver.RequiredIdResolver; @Target({ElementType.FIELD}) public @interface RId { + /** + * (Optional) Live Object id generator. By default id is required to be fill during object creation. + * + * @see UUIDGenerator + * @see LongGenerator + */ Class generator() default RequiredIdResolver.class; } diff --git a/redisson/src/main/java/org/redisson/api/annotation/RInject.java b/redisson/src/main/java/org/redisson/api/annotation/RInject.java index 9a90423ec..cf6b1cea8 100644 --- a/redisson/src/main/java/org/redisson/api/annotation/RInject.java +++ b/redisson/src/main/java/org/redisson/api/annotation/RInject.java @@ -21,6 +21,7 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** + * Specifies that the field value is filled up with RedissonClient instance. * * @author Nikita Koksharov * diff --git a/redisson/src/main/java/org/redisson/api/annotation/RObjectField.java b/redisson/src/main/java/org/redisson/api/annotation/RObjectField.java index adbfbdfa6..eb4640176 100644 --- a/redisson/src/main/java/org/redisson/api/annotation/RObjectField.java +++ b/redisson/src/main/java/org/redisson/api/annotation/RObjectField.java @@ -25,6 +25,11 @@ import org.redisson.client.codec.Codec; import org.redisson.codec.JsonJacksonCodec; /** + * By default namingScheme and/or codec parameters specified in {@link REntity} + * are applied for each Live Object field. + * + * This annotation allows to specify custom namingScheme and/or codec parameters + * for any Live Object field except that marked with {@link RId}. * * @author Rui Gu (https://github.com/jackygurui) */ @@ -32,8 +37,16 @@ import org.redisson.codec.JsonJacksonCodec; @Target({ElementType.FIELD}) public @interface RObjectField{ + /** + * (Optional) Live Object naming scheme. Defines how to assign key names for each instance of this class. + * Used to create a reference to an existing Live Object and materialising a new one in redis. + * Defaults to {@link DefaultNamingScheme} implementation. + */ Class namingScheme() default DefaultNamingScheme.class; + /** + * (Optional) Live Object state codec. Defaults to {@link JsonJacksonCodec}. + */ Class codec() default JsonJacksonCodec.class; }