resolveValue<V> method
V?
resolveValue<V>(
- Object? value, {
- EntityHandler<
T> ? entityHandler, - EntityProvider? entityProvider,
- EntityHandlerProvider? entityHandlerProvider,
- EntityFetcher<
T> ? entityFetcher, - EntityCache? entityCache,
Implementation
V? resolveValue<V>(Object? value,
{EntityHandler<T>? entityHandler,
EntityProvider? entityProvider,
EntityHandlerProvider? entityHandlerProvider,
EntityFetcher<T>? entityFetcher,
EntityCache? entityCache}) {
Object? resolvedValue = value;
var forceToEntityReference = false;
var forceToEntityReferenceList = false;
if (value is EntityReference) {
if (isEntityReferenceType) {
if (genericType != value.genericType &&
genericType != Object &&
genericType != dynamic) {
forceToEntityReference = true;
}
} else {
if (value.isNull) {
resolvedValue = null;
} else if (value.hasEntity && value.entity is V) {
resolvedValue = value.entity;
} else if (value.isIdSet && value.id is V) {
resolvedValue = value.id;
}
}
} else if (value is EntityReferenceList) {
if (isEntityReferenceListType || isEntityReferenceType) {
if (genericType != value.genericType &&
genericType != Object &&
genericType != dynamic) {
forceToEntityReferenceList = true;
}
} else {
if (value.isNull) {
resolvedValue = null;
} else if (value.isEntitiesSet && value.entities is V) {
resolvedValue = value.entities;
} else if (value.isIDsSet && value.ids is V) {
resolvedValue = value.ids;
}
}
} else if (isEntityReferenceListType) {
forceToEntityReferenceList = true;
} else if (isEntityReferenceType) {
forceToEntityReference = true;
}
if (forceToEntityReferenceList) {
var t = isEntityReferenceListType ? arguments0! : this;
resolvedValue = t.toEntityReferenceList(value,
entityHandler: entityHandler,
entityProvider: entityProvider,
entityHandlerProvider: entityHandlerProvider,
entityFetcher: entityFetcher,
entityCache: entityCache);
} else if (forceToEntityReference) {
var t = isEntityReferenceType ? arguments0! : this;
resolvedValue = t.toEntityReference(value,
entityHandler: entityHandler,
entityProvider: entityProvider,
entityHandlerProvider: entityHandlerProvider,
entityFetcher: entityFetcher,
entityCache: entityCache);
}
return resolvedValue as V?;
}