1 #define DWG_TYPE DWG_TYPE_FIELD
2 #include "common.c"
3
4 void
5 api_process (dwg_object *obj)
6 {
7 int error, isnew;
8 BITCODE_TV id; /* 1 */
9 BITCODE_TV code; /* 2,3 */
10 BITCODE_BL num_childs; /* 90 */
11 BITCODE_H *childs, *hdls;
12 BITCODE_BL num_objects; /* 97 */
13 BITCODE_H *objects; /* code:5, 331 */
14 BITCODE_TV format; /* 4, until r2004 only */
15 BITCODE_BL evaluation_option; /* 91 */
16 BITCODE_BL filing_option; /* 92 */
17 BITCODE_BL field_state; /* 94 */
18 BITCODE_BL evaluation_status; /* 95 */
19 BITCODE_BL evaluation_error_code; /* 96 */
20 BITCODE_TV evaluation_error_msg; /* 300 */
21 // Dwg_TABLE_value value;
22 BITCODE_TV value_string; /* 301,9 */
23 BITCODE_BL value_string_length; /* 98 ODA bug: TV */
24 BITCODE_BL i, num_childval; /* 93 */
25 Dwg_FIELD_ChildValue *childval;
26
27 Dwg_Version_Type dwg_version = obj->parent->header.version;
28 dwg_obj_field *_obj = dwg_object_to_FIELD (obj);
29
30 CHK_ENTITY_UTF8TEXT (_obj, FIELD, id);
31 CHK_ENTITY_UTF8TEXT (_obj, FIELD, code);
32 CHK_ENTITY_TYPE (_obj, FIELD, num_childs, BL);
33 if (!dwg_dynapi_entity_value (_obj, "FIELD", "childs", &childs, NULL))
34 fail ("FIELD.childs");
35 hdls = _obj->childs;
36 for (i = 0; i < num_childs; i++)
37 {
38 if (hdls[i] == childs[i])
39 ok ("FIELD.childs[%d]: " FORMAT_REF, i, ARGS_REF (childs[i]));
40 else
41 fail ("FIELD.childs[%d]: " FORMAT_REF, i, ARGS_REF (childs[i]));
42 }
43 CHK_ENTITY_TYPE (_obj, FIELD, num_objects, BL);
44 if (!dwg_dynapi_entity_value (_obj, "FIELD", "objects", &objects, NULL))
45 fail ("FIELD.objects");
46 hdls = _obj->objects;
47 for (i = 0; i < num_objects; i++)
48 {
49 if (hdls[i] == objects[i])
50 ok ("FIELD.objects[%d]: " FORMAT_REF, i, ARGS_REF (objects[i]));
51 else
52 fail ("FIELD.objects[%d]: " FORMAT_REF, i, ARGS_REF (objects[i]));
53 }
54 CHK_ENTITY_UTF8TEXT (_obj, FIELD, format);
55 CHK_ENTITY_TYPE (_obj, FIELD, evaluation_option, BL);
56 CHK_ENTITY_TYPE (_obj, FIELD, filing_option, BL);
57 CHK_ENTITY_TYPE (_obj, FIELD, field_state, BL);
58 CHK_ENTITY_TYPE (_obj, FIELD, evaluation_status, BL);
59 CHK_ENTITY_TYPE (_obj, FIELD, evaluation_error_code, BL);
60 CHK_ENTITY_UTF8TEXT (_obj, FIELD, evaluation_error_msg);
61 // Dwg_TABLE_value value;
62 CHK_ENTITY_UTF8TEXT (_obj, FIELD, value_string);
63 CHK_ENTITY_TYPE (_obj, FIELD, value_string_length, BL);
64 CHK_ENTITY_TYPE (_obj, FIELD, num_childval, BL);
65 if (!dwg_dynapi_entity_value (_obj, "FIELD", "childval", &childval, NULL))
66 fail ("FIELD.childval");
67 for (i = 0; i < num_childval; i++)
68 {
69 CHK_SUBCLASS_UTF8TEXT (childval[i], FIELD_ChildValue, key);
70 // embedded value
71 }
72 }