19 impl_value_add_object = {
25 impl_value_delete_object = {
31 impl_value_modify_object = {
37 impl_value_replace_object = {
44 impl_get_self_and_model(
56 &session->inf->rti.implementation_id,
64 &(*self)->pub.inf->rti.implementation_id,
72 *model = (*self)->model;
165 object_id = &string_value->internal;
168 modelId_value = NULL;
176 context = object_value->internal;
180 if (
afw_utf8_equal(&objectType_value->internal, &afw_s__AdaptiveObjectType_)) {
181 AFW_OBJECT_ERROR_OBJECT_IMMUTABLE;
195 impl_get_self_and_model(&
self, &model, adaptorId_value, modelId_value, xctx);
198 ctx = afw_model_internal_create_to_adaptor_skeleton_context(
200 &self->adaptor->instance_skeleton__AdaptiveModelCurrentOnAddObject_,
203 &objectType_value->internal,
206 ctx->object = object_value->internal;
207 ctx->process_initial_values =
true;
210 afw_model_internal_complete_ctx_default_add_object(ctx, xctx);
222 (
const afw_value_t *)&impl_value_add_object, xctx);
224 self->adaptor->mapped_adaptor_id, xctx);
226 ctx->mapped_object_type_id, xctx);
227 if (ctx->mapped_object_id) {
229 ctx->mapped_object_id, xctx);
232 ctx->mapped_object, xctx);
313 modelId_value = NULL;
322 context = context_value->internal;
326 if (
afw_utf8_equal(&objectType_value->internal, &afw_s__AdaptiveObjectType_)) {
327 AFW_OBJECT_ERROR_OBJECT_IMMUTABLE;
341 impl_get_self_and_model(&
self, &model, adaptorId_value, modelId_value, xctx);
344 ctx = afw_model_internal_create_to_adaptor_skeleton_context(
346 &self->adaptor->instance_skeleton__AdaptiveModelCurrentOnDeleteObject_,
349 &objectType_value->internal,
350 &objectId_value->internal,
354 afw_model_internal_complete_ctx_default_delete_object(ctx, xctx);
366 (
const afw_value_t *)&impl_value_delete_object, xctx);
368 self->adaptor->mapped_adaptor_id, xctx);
370 ctx->mapped_object_type_id, xctx);
372 ctx->mapped_object_id, xctx);
484 modelId_value = NULL;
492 context = context_value->internal;
496 if (
afw_utf8_equal(&objectType_value->internal, &afw_s__AdaptiveObjectType_)) {
497 AFW_OBJECT_ERROR_OBJECT_IMMUTABLE;
511 impl_get_self_and_model(&
self, &model, adaptorId_value, modelId_value, xctx);
514 ctx = afw_model_internal_create_to_adaptor_skeleton_context(
516 &self->adaptor->instance_skeleton__AdaptiveModelCurrentOnModifyObject_,
519 &objectType_value->internal,
520 &objectId_value->internal,
539 (
const afw_value_t *)&impl_value_modify_object, xctx);
541 self->adaptor->mapped_adaptor_id, xctx);
543 ctx->mapped_object_type_id, xctx);
545 ctx->mapped_object_id, xctx);
635 modelId_value = NULL;
643 context = context_value->internal;
647 if (
afw_utf8_equal(&objectType_value->internal, &afw_s__AdaptiveObjectType_)) {
648 AFW_OBJECT_ERROR_OBJECT_IMMUTABLE;
662 impl_get_self_and_model(&
self, &model, adaptorId_value, modelId_value, xctx);
665 ctx = afw_model_internal_create_to_adaptor_skeleton_context(
667 &self->adaptor->instance_skeleton__AdaptiveModelCurrentOnReplaceObject_,
670 &objectType_value->internal,
671 &objectId_value->internal,
675 ctx->object_value = (
const afw_value_t *)object_value;
678 afw_model_internal_complete_ctx_default_replace_object(ctx, xctx);
690 (
const afw_value_t *)&impl_value_replace_object, xctx);
692 self->adaptor->mapped_adaptor_id, xctx);
694 ctx->mapped_object_type_id, xctx);
696 ctx->mapped_object_id, xctx);
Adaptive Framework Core Internal.
afw_adaptor_session_get_cached(const afw_utf8_t *adaptor_id, afw_boolean_t begin_transaction, afw_xctx_t *xctx)
Get/create an active cached session for adaptor_id.
afw_object_set_property_as_list(const afw_object_t *object, const afw_utf8_t *property_name, const afw_list_t *internal, afw_xctx_t *xctx)
Set property function for data type list values.
afw_object_set_property_as_object(const afw_object_t *object, const afw_utf8_t *property_name, const afw_object_t *internal, afw_xctx_t *xctx)
Set property function for data type object values.
afw_value_create_object(const afw_object_t *internal, const afw_pool_t *p, afw_xctx_t *xctx)
Create function for unmanaged data type object value.
afw_value_evaluated_string_inf
Unmanaged evaluated value inf for data type string.
afw_object_set_property_as_string(const afw_object_t *object, const afw_utf8_t *property_name, const afw_utf8_t *internal, afw_xctx_t *xctx)
Set property function for data type string values.
#define AFW_UTF8_FMT_ARG(A_STRING)
Convenience Macro for use with AFW_UTF8_FMT to specify arg.
#define AFW_UTF8_LITERAL(A_STRING)
String literal initializer.
struct afw_model_internal_s afw_model_t
#define AFW_UTF8_FMT
Format string specifier used for afw_utf8_t.
#define AFW_FINALLY
Always executed regardless of error.
#define AFW_ENDTRY
Ends an AFW try block.
#define AFW_TRY
Begin an AFW TRY block.
#define AFW_THROW_ERROR_FZ(code, xctx, format_z,...)
Macro used to set error and 0 rv in xctx and throw it.
#define AFW_THROW_ERROR_Z(code, message_z, xctx)
Macro used to set error and 0 rv in xctx and throw it.
#define AFW_FUNCTION_EVALUATE_REQUIRED_DATA_TYPE_PARAMETER(A_RESULT, A_N, A_TYPE)
Evaluate an arg for a particular data type.
#define AFW_FUNCTION_PARAMETER_IS_PRESENT(A_N)
Determine if a specific parameter value is present.
const afw_value_t * afw_function_execute_model_default_delete_object_action(afw_function_execute_t *x)
Adaptive Function model_default_delete_object_action
const afw_value_t * afw_function_execute_model_default_modify_object_action(afw_function_execute_t *x)
Adaptive Function model_default_modify_object_action
const afw_value_t * afw_function_execute_model_default_add_object_action(afw_function_execute_t *x)
Adaptive Function model_default_add_object_action
const afw_value_t * afw_function_execute_model_returnObject_signature(afw_function_execute_t *x)
Adaptive Function model_returnObject_signature
const afw_value_t * afw_function_execute_model_mapBackObject_signature(afw_function_execute_t *x)
Adaptive Function model_mapBackObject_signature
const afw_value_t * afw_function_execute_model_default_replace_object_action(afw_function_execute_t *x)
Adaptive Function model_default_replace_object_action
const afw_value_t * afw_function_execute_model_mapObject_signature(afw_function_execute_t *x)
Adaptive Function model_mapObject_signature
afw_model_internal_complete_ctx_default_modify_object(afw_model_internal_context_t *ctx, afw_xctx_t *xctx)
#define afw_object_create(p, xctx)
Create an empty unmanaged object in memory.
afw_object_set_property(const afw_object_t *instance, const afw_utf8_t *property_name, const afw_value_t *value, afw_xctx_t *xctx)
Set the value of an object's property.
afw_boolean_t afw_utf8_equal_utf8_z(const afw_utf8_t *s1, const afw_utf8_z_t *s2_z)
Check to see if a string equals a utf8_z string.
afw_boolean_t afw_utf8_equal(const afw_utf8_t *s1, const afw_utf8_t *s2)
Check to see if a string equals another string.
afw_xctx_get_qualifier_stack_top(afw_xctx_t *xctx)
Get qualifier stack top.
afw_xctx_push_qualifiers_object(const afw_object_t *context_object, afw_boolean_t secure, const afw_pool_t *p, afw_xctx_t *xctx)
Push qualifiers object on to stack.
afw_xctx_set_qualifier_stack_top(int top, afw_xctx_t *xctx)
Set stack top index.
Internal session info used by afw_adaptor_impl*() functions.
Interface afw_adaptor_session public struct.
Function execute parameter.
afw_xctx_t * xctx
The execution context (xctx) of caller.
const afw_pool_t * p
Pool for result.
Internal struct used by afw_model* functions.
const afw_list_t * mapped_entries
Mapped entries for modify.
const afw_value_t * modify_entries_value
Original entries for modify as list value.
Interface afw_object public struct.
NFC normalized UTF-8 string.
struct for data type list values.
struct for data type object values.
Interface afw_value public struct.
struct for data type string values.
Interface afw_xctx public struct.