Class EntityState
- java.lang.Object
-
- net.lecousin.reactive.data.relational.enhance.EntityState
-
public class EntityState extends Object
Internal state of an entity, allowing to implement features such as lazy loading, updated attributes detection...- Author:
- Guillaume Le Cousin
-
-
Constructor Summary
Constructors Constructor Description EntityState(EntityMetadata entityType)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voiddeleted()voidforeignTableLoaded(Field field, Object value)static EntityStateget(Object entity, LcReactiveDataRelationalClient client)static EntityStateget(Object entity, EntityMetadata entityType)LcReactiveDataRelationalClientgetClient()<T,R>
Function<T,R>getFieldMapper(String fieldName)<T> org.apache.commons.lang3.mutable.MutableObject<T>getForeignTableField(Object entity, PropertyStaticMetadata property)<T> reactor.core.publisher.Mono<T>getLoading()EntityMetadatagetMetadata()ObjectgetPersistedValue(String fieldName)booleanisLoaded()booleanisPersisted()<T> reactor.core.publisher.Flux<T>lazyGetForeignTableCollectionField(Object entity, String fieldName, String joinKey)<T> reactor.core.publisher.Mono<T>lazyGetForeignTableField(Object entity, String fieldName, String joinKey)<T> reactor.core.publisher.Flux<T>lazyGetJoinTableField(Object entity, String joinFieldName, int joinFieldKeyNumber)voidlazyLoaded()<T> reactor.core.publisher.Mono<T>load(T entity)<T> voidloaded(T entity)<T> reactor.core.publisher.Mono<EntityInstance<T>>loading(EntityInstance<T> instance, Supplier<reactor.core.publisher.Mono<EntityInstance<T>>> doLoading)voidrestorePersistedValue(Object instance, PropertyStaticMetadata property)voidsetForeignTableField(Object instance, PropertyStaticMetadata property, Object value)
-
-
-
Constructor Detail
-
EntityState
public EntityState(@NonNull EntityMetadata entityType)
-
-
Method Detail
-
get
public static EntityState get(@NonNull Object entity, @NonNull LcReactiveDataRelationalClient client)
-
get
public static EntityState get(@NonNull Object entity, @NonNull EntityMetadata entityType)
-
getMetadata
public EntityMetadata getMetadata()
-
getClient
public LcReactiveDataRelationalClient getClient()
-
isPersisted
public boolean isPersisted()
-
deleted
public void deleted()
-
lazyLoaded
public void lazyLoaded()
-
isLoaded
public boolean isLoaded()
-
loading
public <T> reactor.core.publisher.Mono<EntityInstance<T>> loading(EntityInstance<T> instance, Supplier<reactor.core.publisher.Mono<EntityInstance<T>>> doLoading)
-
getLoading
@Nullable public <T> reactor.core.publisher.Mono<T> getLoading()
-
loaded
public <T> void loaded(T entity)
-
load
public <T> reactor.core.publisher.Mono<T> load(T entity)
-
restorePersistedValue
public void restorePersistedValue(Object instance, PropertyStaticMetadata property)
-
setForeignTableField
public void setForeignTableField(Object instance, PropertyStaticMetadata property, Object value)
-
getForeignTableField
@Nullable public <T> org.apache.commons.lang3.mutable.MutableObject<T> getForeignTableField(Object entity, PropertyStaticMetadata property) throws IllegalAccessException
- Throws:
IllegalAccessException
-
lazyGetForeignTableField
public <T> reactor.core.publisher.Mono<T> lazyGetForeignTableField(Object entity, String fieldName, String joinKey)
-
lazyGetForeignTableCollectionField
public <T> reactor.core.publisher.Flux<T> lazyGetForeignTableCollectionField(Object entity, String fieldName, String joinKey)
-
lazyGetJoinTableField
public <T> reactor.core.publisher.Flux<T> lazyGetJoinTableField(Object entity, String joinFieldName, int joinFieldKeyNumber)
-
-