1 PACKAGE BODY IES_SAVE_METADATA AS
2 /* $Header: iessmetb.pls 115.6 2003/06/06 20:16:15 prkotha noship $ */
3
4 Procedure insert_meta_object_types(p_obj_name IN VARCHAR2, p_parent_name IN VARCHAR2) IS
5 parentId NUMBER := null;
6 begin
7 if (p_parent_name IS NOT NULL) then
8 parentId := get_obj_id(p_parent_name);
9 end if;
10 INSERT INTO IES_META_OBJECT_TYPES (type_id, type_name, parent_id, created_by)
11 SELECT ies_meta_object_types_s.nextval, p_obj_name, parentId, 1
12 FROM dual
13 WHERE NOT EXISTS (SELECT 1
14 FROM ies_meta_object_types
15 WHERE type_name = p_obj_name);
16 end insert_meta_object_types;
17
18 Procedure insert_meta_obj_type_props(p_obj_name IN VARCHAR2, p_prop_name IN VARCHAR2) IS
19 objId NUMBER;
20 propId NUMBER;
21 begin
22 objId := get_obj_id(p_obj_name);
23 propId := get_prop_id(p_prop_name);
24
25 INSERT INTO IES_META_OBJ_TYPE_PROPERTIES
26 (typeprop_id, created_by, objtype_id, property_id)
27 SELECT ies_meta_obj_type_properties_s.nextval, 1, objId, propId
28 FROM dual
29 WHERE NOT EXISTS (SELECT 1
30 FROM IES_META_OBJ_TYPE_PROPERTIES
31 WHERE objType_id = objId
32 AND property_id = propId);
33 end insert_meta_obj_type_props;
34
35 Procedure insert_meta_prop_lookups(p_prop_name IN VARCHAR2, p_prop_key IN NUMBER, p_prop_val IN VARCHAR2) IS
36 propId NUMBER;
37 begin
38 propId := get_prop_id(p_prop_name);
39
40 INSERT INTO IES_META_PROPERTY_LOOKUPS
41 (prop_lookup_id, property_id, lookup_key, lookup_value, created_by)
42 SELECT ies_meta_property_lookups_s.nextval, propId, p_prop_key, p_prop_val, 1
43 FROM dual
44 WHERE NOT EXISTS (SELECT 1
45 FROM IES_META_PROPERTY_LOOKUPS
46 WHERE lookup_key = p_prop_key
47 AND lookup_value = p_prop_val
48 AND property_id = propId);
49
50 end insert_meta_prop_lookups;
51
52 Procedure insert_meta_props(p_prop_name IN VARCHAR2, p_datatype IN VARCHAR2) IS
53 dataTypeId NUMBER;
54 begin
55 dataTypeId := get_prop_datatype_id(p_datatype);
56 INSERT INTO IES_META_PROPERTIES (property_id, name, datatype_id, created_by)
57 SELECT ies_meta_properties_s.nextval, p_prop_name, datatypeId, 1
58 FROM dual
59 WHERE NOT EXISTS (SELECT 1
60 FROM IES_META_PROPERTIES
61 WHERE name = p_prop_name
62 AND datatype_id = datatypeId);
63 end insert_meta_props;
64
65 Procedure insert_meta_prop_datatypes(p_datatype IN VARCHAR2) IS
66 begin
67 INSERT INTO IES_META_PROP_DATATYPES (type_id, type_name, created_by)
68 SELECT ies_meta_prop_datatypes_s.nextval, p_datatype, 1
69 FROM dual
70 WHERE NOT EXISTS (SELECT 1
71 FROM IES_META_PROP_DATATYPES
72 WHERE type_name = p_datatype);
73 end insert_meta_prop_datatypes;
74
75 Procedure insert_meta_relationship_types(p_type_name IN VARCHAR2) IS
76 begin
77 insert_meta_relationship_types(p_type_name, 0);
78 end insert_meta_relationship_types;
79
80 Procedure insert_meta_relationship_types(p_type_name IN VARCHAR2, list_relationship IN NUMBER) IS
81 begin
82 INSERT INTO IES_META_RELATIONSHIP_TYPES (type_id, type_name, created_by, list_relationship)
83 SELECT ies_meta_relationship_types_s.nextval, p_type_name, 1 , list_relationship
84 FROM dual
85 WHERE NOT EXISTS (SELECT 1
86 FROM IES_META_RELATIONSHIP_TYPES
87 WHERE type_name = p_type_name);
88 end insert_meta_relationship_types;
89
90 Function get_prop_id(p_prop_name IN VARCHAR2) return NUMBER IS
91 propId NUMBER;
92 begin
93 SELECT property_id
94 INTO propId
95 FROM ies_meta_properties
96 WHERE name = p_prop_name;
97
98 RETURN propId;
99 end get_prop_id;
100
101 Function get_obj_id(p_obj_name IN VARCHAR2) return NUMBER IS
102 objId NUMBER;
103 begin
104 SELECT type_id
105 INTO objId
106 FROM ies_meta_object_types
107 WHERE type_name = p_obj_name;
108
109 RETURN objId;
110 end get_obj_id;
111
112 Function get_prop_datatype_id(p_datatype IN VARCHAR2) return NUMBER IS
113 datatypeId NUMBER;
114 begin
115 SELECT type_id
116 INTO datatypeId
117 FROM ies_meta_prop_datatypes
118 WHERE type_name = p_datatype;
119
120 RETURN datatypeId;
121 end get_prop_datatype_id;
122
123 END; -- Package body