Package io.jmix.core.impl
Class InstanceNameProviderImpl
java.lang.Object
io.jmix.core.impl.InstanceNameProviderImpl
- All Implemented Interfaces:
InstanceNameProvider
@Component("core_InstanceNameProvider")
public class InstanceNameProviderImpl
extends Object
implements InstanceNameProvider
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static classstatic class -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected CorePropertiesprotected DatatypeRegistryprotected ExtendedEntitiesprotected com.google.common.cache.LoadingCache<MetaClass,Optional<InstanceNameProviderImpl.InstanceNameRec>> protected Messagesprotected Metadataprotected MetadataToolsprotected MethodArgumentsProviderprotected ContextArgumentResolverCompositestatic final String -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetInstanceName(InstanceNameProviderImpl.InstanceNameRec rec, Object instance) getInstanceName(Object instance) Gets entity instance name defined byInstanceNameannotation.getInstanceName(Object instance, MetaClass metaClass) Gets entity instance name defined byInstanceNameannotation inmetaClassor its ancestor ifCoreProperties.instanceNameFallbackEnabledis true.getInstanceName(Object instance, Class<?> clazz) Gets entity instance name defined byInstanceNameannotation inentityClassor its ancestor ifCoreProperties.instanceNameFallbackEnabledis true.protected Collection<MetaProperty>getInstanceNameProperties(MetaClass metaClass, Method nameMethod, MetaProperty nameProperty) getInstanceNameRelatedProperties(MetaClass metaClass, boolean useOriginal) Return a collection of properties included into entity's name pattern (seeInstanceName).booleanisInstanceNameDefined(Class<?> aClass) Checks ifInstanceNameannotation is present in an entity class, i.e.parseNamePattern(MetaClass metaClass) voidsetResolvers(ContextArgumentResolverComposite resolvers)
-
Field Details
-
UNFETCHED_EXCEPTION_MESSAGE_PREFIX
- See Also:
-
metadata
-
extendedEntities
-
datatypeRegistry
-
messages
-
metadataTools
-
coreProperties
-
resolvers
-
methodArgumentsProvider
-
instanceNameRecCache
protected com.google.common.cache.LoadingCache<MetaClass,Optional<InstanceNameProviderImpl.InstanceNameRec>> instanceNameRecCache
-
-
Constructor Details
-
InstanceNameProviderImpl
public InstanceNameProviderImpl()
-
-
Method Details
-
getResolvers
-
setResolvers
-
isInstanceNameDefined
Description copied from interface:InstanceNameProviderChecks ifInstanceNameannotation is present in an entity class, i.e. whether instance name can be obtained for entity instances.- Specified by:
isInstanceNameDefinedin interfaceInstanceNameProvider- Parameters:
aClass- an entity class to check- Returns:
trueifInstanceNameannotation is present,falseotherwise
-
getInstanceName
Description copied from interface:InstanceNameProviderGets entity instance name defined byInstanceNameannotation. IfInstanceNameannotation is not defined, returnsentity.toString().- Specified by:
getInstanceNamein interfaceInstanceNameProvider- Parameters:
instance- an entity instance to get instance name- Returns:
- instance name
-
getInstanceName
Description copied from interface:InstanceNameProviderGets entity instance name defined byInstanceNameannotation inentityClassor its ancestor ifCoreProperties.instanceNameFallbackEnabledis true.- Specified by:
getInstanceNamein interfaceInstanceNameProvider- Parameters:
instance- instanceclazz- class to get @InstanceName definition from- Returns:
- instance name
- See Also:
-
CoreProperties.instanceNameFallbackEnabled
-
getInstanceName
Description copied from interface:InstanceNameProviderGets entity instance name defined byInstanceNameannotation inmetaClassor its ancestor ifCoreProperties.instanceNameFallbackEnabledis true.- Specified by:
getInstanceNamein interfaceInstanceNameProvider- Parameters:
instance- instancemetaClass- class to get @InstanceName definition from- Returns:
- instance name
- See Also:
-
CoreProperties.instanceNameFallbackEnabled
-
getInstanceName
protected InstanceNameProviderImpl.EvaluationResult getInstanceName(InstanceNameProviderImpl.InstanceNameRec rec, Object instance) -
getInstanceNameRelatedProperties
public Collection<MetaProperty> getInstanceNameRelatedProperties(MetaClass metaClass, boolean useOriginal) Description copied from interface:InstanceNameProviderReturn a collection of properties included into entity's name pattern (seeInstanceName).- Specified by:
getInstanceNameRelatedPropertiesin interfaceInstanceNameProvider- Parameters:
metaClass- entity metaclassuseOriginal- if true, and if the given metaclass doesn't define aInstanceNameand if it is an extended entity, this method tries to find a name pattern in an original entity- Returns:
- collection of the name pattern properties
-
getInstanceNameProperties
protected Collection<MetaProperty> getInstanceNameProperties(MetaClass metaClass, @Nullable Method nameMethod, @Nullable MetaProperty nameProperty) -
parseNamePattern
-