Class MapEntityContext<T>
- java.lang.Object
-
- org.keycloak.models.map.storage.file.common.MapEntityContext<T>
-
- All Implemented Interfaces:
BlockContext<T>
public class MapEntityContext<T> extends Object implements BlockContext<T>
BlockContext
which handles any entity accompanied withEntityField
field getters and setters, namelyMap*Entity
classes.- Author:
- hmlnarik
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
MapEntityContext.MapEntityMappingYamlContext<T>
static class
MapEntityContext.MapEntitySequenceYamlContext<T>
-
Nested classes/interfaces inherited from interface org.keycloak.models.map.storage.file.common.BlockContext
BlockContext.DefaultListContext<T>, BlockContext.DefaultMapContext<T>, BlockContext.DefaultObjectContext<T>
-
-
Field Summary
Fields Modifier and Type Field Description protected static String
ATTRIBUTES_NAME
protected Class<T>
objectClass
protected T
result
static String
SCHEMA_VERSION
-
Constructor Summary
Constructors Modifier Constructor Description MapEntityContext(Class<T> clazz)
MapEntityContext(Class<T> clazz, boolean topContext)
protected
MapEntityContext(Class<T> clazz, Map<String,EntityField<?>> nameToEntityField, Map<String,Supplier<? extends BlockContext<?>>> contextCreators, boolean topContext)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
add(String name, Object value)
Modifies theresult returned
from within this context by providing the read mapping entryname
to givenvalue
.protected static <T> Map<String,Supplier<? extends BlockContext<?>>>
fieldsToContextCreators(Class<T> type)
static <T> Map<String,EntityField<?>>
fieldsToEntityField(Class<T> type)
BlockContext<?>
getContext(String nameOfSubcontext)
Called after reading a key of map entry in YAML file and before reading its value.T
getResult()
Returns the result of parsing the given part of YAML file.Class<T>
getScalarType()
static <T> boolean
setEntityField(T result, EntityField<? super T> ef, Object value)
void
writeValue(T entity, WritingMechanism mech)
Writes the given value usingWritingMechanism
.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.keycloak.models.map.storage.file.common.BlockContext
add
-
-
-
-
Constructor Detail
-
MapEntityContext
protected MapEntityContext(Class<T> clazz, Map<String,EntityField<?>> nameToEntityField, Map<String,Supplier<? extends BlockContext<?>>> contextCreators, boolean topContext)
-
-
Method Detail
-
fieldsToContextCreators
protected static <T> Map<String,Supplier<? extends BlockContext<?>>> fieldsToContextCreators(Class<T> type)
-
fieldsToEntityField
public static <T> Map<String,EntityField<?>> fieldsToEntityField(Class<T> type)
-
setEntityField
public static <T> boolean setEntityField(T result, EntityField<? super T> ef, Object value)
-
add
public void add(String name, Object value)
Description copied from interface:BlockContext
Modifies theresult returned
from within this context by providing the read mapping entryname
to givenvalue
.Called after reading a map entry (both key and value) from the YAML file is finished. The entry is represented as
name
parameter (key part of the entry) andvalue
(value part of the entry).The method is called in the same order as the mapping items appear in the source YAML mapping.
- Specified by:
add
in interfaceBlockContext<T>
-
getScalarType
public Class<T> getScalarType()
- Specified by:
getScalarType
in interfaceBlockContext<T>
-
getResult
public T getResult()
Description copied from interface:BlockContext
Returns the result of parsing the given part of YAML file.- Specified by:
getResult
in interfaceBlockContext<T>
- Returns:
-
getContext
public BlockContext<?> getContext(String nameOfSubcontext)
Description copied from interface:BlockContext
Called after reading a key of map entry in YAML file and before reading its value. The key of the entry is represented asnameOfSubcontext
parameter, and provides means to specify aYamlContext
for transforming the mapping value into appropriate Java object.- Specified by:
getContext
in interfaceBlockContext<T>
- Parameters:
nameOfSubcontext
- Key of the map entry- Returns:
- Context used for transforming the value,
or
null
if the default primitive / sequence / mapping context should be used instead. - See Also:
BlockContext.DefaultObjectContext
,BlockContext.DefaultListContext
,BlockContext.DefaultMapContext
-
writeValue
public void writeValue(T entity, WritingMechanism mech)
Description copied from interface:BlockContext
Writes the given value usingWritingMechanism
.- Specified by:
writeValue
in interfaceBlockContext<T>
-
-