|
82 | 82 | /** |
83 | 83 | * The listener class for {@link EntityCallback} |
84 | 84 | * |
| 85 | + * <h3>Example Usage</h3> |
| 86 | + * <pre>{@code |
| 87 | + * // Default constructor loads EntityCallback implementations via ServiceLoader |
| 88 | + * EntityCallbackListener listener = new EntityCallbackListener(); |
| 89 | + * |
| 90 | + * // Or supply callbacks directly (useful in tests) |
| 91 | + * List<EntityCallback> callbacks = Arrays.asList(new LoggingEntityCallback()); |
| 92 | + * EntityCallbackListener listener = new EntityCallbackListener(callbacks); |
| 93 | + * |
| 94 | + * // The listener is registered by {@link EntittyCallbackIntegrator} on SessionFactory startup; |
| 95 | + * // it translates Hibernate events into EntityCallback invocations automatically. |
| 96 | + * }</pre> |
| 97 | + * |
85 | 98 | * @author <a href="mailto:mercyblitz@gmail.com">Mercy</a> |
86 | 99 | * @see LoadEventListener |
87 | 100 | * @see PersistEventListener |
@@ -123,10 +136,20 @@ class EntityCallbackListener implements LoadEventListener, PersistEventListener, |
123 | 136 |
|
124 | 137 | private final EntityCallback callback; |
125 | 138 |
|
| 139 | + /** |
| 140 | + * Creates a new {@link EntityCallbackListener} that loads {@link EntityCallback} implementations |
| 141 | + * from the classpath using {@link java.util.ServiceLoader}. |
| 142 | + */ |
126 | 143 | EntityCallbackListener() { |
127 | 144 | this(load(EntityCallback.class)); |
128 | 145 | } |
129 | 146 |
|
| 147 | + /** |
| 148 | + * Creates a new {@link EntityCallbackListener} backed by the given {@link EntityCallback} instances. |
| 149 | + * Callbacks are sorted by priority using {@link io.microsphere.lang.Prioritized#COMPARATOR}. |
| 150 | + * |
| 151 | + * @param callbacks the iterable of {@link EntityCallback} instances to use |
| 152 | + */ |
130 | 153 | EntityCallbackListener(Iterable<EntityCallback> callbacks) { |
131 | 154 | List<EntityCallback> entityCallbacks = newLinkedList(callbacks); |
132 | 155 | entityCallbacks.sort(COMPARATOR); |
@@ -342,6 +365,12 @@ public boolean requiresPostCommitHandling(EntityPersister persister) { |
342 | 365 | return PostDeleteEventListener.super.requiresPostCommitHandling(persister); |
343 | 366 | } |
344 | 367 |
|
| 368 | + /** |
| 369 | + * Extracts the {@link LockMode} from the given {@link LockOptions}. |
| 370 | + * |
| 371 | + * @param lockOptions the lock options to extract the lock mode from |
| 372 | + * @return the {@link LockMode} from the given {@link LockOptions} |
| 373 | + */ |
345 | 374 | protected LockMode getLockMode(LockOptions lockOptions) { |
346 | 375 | return lockOptions.getLockMode(); |
347 | 376 | } |
|
0 commit comments