namespace eval ::xo::db::sql {}
::nsf::object::alloc ::xo::db::Class ::xo::db::sql::content_type {set :__default_metaclass ::xotcl::Class
set :__default_superclass ::xotcl::Object
set :abstract_p f
set :auto_save false
set :name_method {}
set :object_type ::xo::db::sql::content_type
set :security_inherit_p t
set :sql_package_name content_type
set :supertype acs_object
set :with_table true}
::xo::db::sql::content_type proc set_default_template {{-dbn {}} -content_type:required -template_id:required -use_context:required} {
foreach var [list CONTENT_TYPE TEMPLATE_ID USE_CONTEXT] {
set varname [string tolower $var]
if {[info exists $varname]} {
set $var [set $varname]
set _$var :$var
} else {
set _$var null
}
}
set sql "
select content_type__set_default_template($_CONTENT_TYPE, $_TEMPLATE_ID, $_USE_CONTEXT)
"
db_with_handle -dbn $dbn db {
return [ ns_set value [ns_pg_bind 0or1row $db $sql] 0 ]
}
}
::xo::db::sql::content_type proc create_type {{-dbn {}} -content_type:required {-supertype content_revision} -pretty_name:required -pretty_plural:required -table_name:required {-id_column XXX} -name_method} {
foreach var [list CONTENT_TYPE SUPERTYPE PRETTY_NAME PRETTY_PLURAL TABLE_NAME ID_COLUMN NAME_METHOD] {
set varname [string tolower $var]
if {[info exists $varname]} {
set $var [set $varname]
set _$var :$var
} else {
set _$var null
}
}
set sql "
select content_type__create_type($_CONTENT_TYPE, $_SUPERTYPE, $_PRETTY_NAME, $_PRETTY_PLURAL, $_TABLE_NAME, $_ID_COLUMN, $_NAME_METHOD)
"
db_with_handle -dbn $dbn db {
return [ ns_set value [ns_pg_bind 0or1row $db $sql] 0 ]
}
}
::xo::db::sql::content_type proc unregister_relation_type {{-dbn {}} -content_type:required -target_type:required -relation_tag} {
foreach var [list CONTENT_TYPE TARGET_TYPE RELATION_TAG] {
set varname [string tolower $var]
if {[info exists $varname]} {
set $var [set $varname]
set _$var :$var
} else {
set _$var null
}
}
set sql "
select content_type__unregister_relation_type($_CONTENT_TYPE, $_TARGET_TYPE, $_RELATION_TAG)
"
db_with_handle -dbn $dbn db {
return [ ns_set value [ns_pg_bind 0or1row $db $sql] 0 ]
}
}
::xo::db::sql::content_type proc drop_type {{-dbn {}} -content_type:required {-drop_children_p f} {-drop_table_p f} {-drop_objects_p f}} {
foreach var [list CONTENT_TYPE DROP_CHILDREN_P DROP_TABLE_P DROP_OBJECTS_P] {
set varname [string tolower $var]
if {[info exists $varname]} {
set $var [set $varname]
set _$var :$var
} else {
set _$var null
}
}
set sql "
select content_type__drop_type($_CONTENT_TYPE, $_DROP_CHILDREN_P, $_DROP_TABLE_P, $_DROP_OBJECTS_P)
"
db_with_handle -dbn $dbn db {
return [ ns_set value [ns_pg_bind 0or1row $db $sql] 0 ]
}
}
::xo::db::sql::content_type proc register_template {{-dbn {}} -content_type:required -template_id:required -use_context:required {-is_default f}} {
foreach var [list CONTENT_TYPE TEMPLATE_ID USE_CONTEXT IS_DEFAULT] {
set varname [string tolower $var]
if {[info exists $varname]} {
set $var [set $varname]
set _$var :$var
} else {
set _$var null
}
}
set sql "
select content_type__register_template($_CONTENT_TYPE, $_TEMPLATE_ID, $_USE_CONTEXT, $_IS_DEFAULT)
"
db_with_handle -dbn $dbn db {
return [ ns_set value [ns_pg_bind 0or1row $db $sql] 0 ]
}
}
::xo::db::sql::content_type proc drop_attribute {{-dbn {}} -content_type:required -attribute_name:required {-drop_column f}} {
foreach var [list CONTENT_TYPE ATTRIBUTE_NAME DROP_COLUMN] {
set varname [string tolower $var]
if {[info exists $varname]} {
set $var [set $varname]
set _$var :$var
} else {
set _$var null
}
}
set sql "
select content_type__drop_attribute($_CONTENT_TYPE, $_ATTRIBUTE_NAME, $_DROP_COLUMN)
"
db_with_handle -dbn $dbn db {
return [ ns_set value [ns_pg_bind 0or1row $db $sql] 0 ]
}
}
::xo::db::sql::content_type proc unregister_mime_type {{-dbn {}} -content_type:required -mime_type:required} {
foreach var [list CONTENT_TYPE MIME_TYPE] {
set varname [string tolower $var]
if {[info exists $varname]} {
set $var [set $varname]
set _$var :$var
} else {
set _$var null
}
}
set sql "
select content_type__unregister_mime_type($_CONTENT_TYPE, $_MIME_TYPE)
"
db_with_handle -dbn $dbn db {
return [ ns_set value [ns_pg_bind 0or1row $db $sql] 0 ]
}
}
::xo::db::sql::content_type proc register_child_type {{-dbn {}} -parent_type:required -child_type:required {-relation_tag generic} {-min_n 0} -max_n} {
foreach var [list PARENT_TYPE CHILD_TYPE RELATION_TAG MIN_N MAX_N] {
set varname [string tolower $var]
if {[info exists $varname]} {
set $var [set $varname]
set _$var :$var
} else {
set _$var null
}
}
set sql "
select content_type__register_child_type($_PARENT_TYPE, $_CHILD_TYPE, $_RELATION_TAG, $_MIN_N, $_MAX_N)
"
db_with_handle -dbn $dbn db {
return [ ns_set value [ns_pg_bind 0or1row $db $sql] 0 ]
}
}
::xo::db::sql::content_type proc refresh_view {{-dbn {}} -content_type:required} {
foreach var [list CONTENT_TYPE] {
set varname [string tolower $var]
if {[info exists $varname]} {
set $var [set $varname]
set _$var :$var
} else {
set _$var null
}
}
set sql "
select content_type__refresh_view($_CONTENT_TYPE)
"
db_with_handle -dbn $dbn db {
return [ ns_set value [ns_pg_bind 0or1row $db $sql] 0 ]
}
}
::xo::db::sql::content_type proc refresh_trigger {{-dbn {}} -content_type:required} {
foreach var [list CONTENT_TYPE] {
set varname [string tolower $var]
if {[info exists $varname]} {
set $var [set $varname]
set _$var :$var
} else {
set _$var null
}
}
set sql "
select content_type__refresh_trigger($_CONTENT_TYPE)
"
db_with_handle -dbn $dbn db {
return [ ns_set value [ns_pg_bind 0or1row $db $sql] 0 ]
}
}
::xo::db::sql::content_type proc rotate_template {{-dbn {}} -template_id:required -v_content_type:required -use_context:required} {
foreach var [list TEMPLATE_ID V_CONTENT_TYPE USE_CONTEXT] {
set varname [string tolower $var]
if {[info exists $varname]} {
set $var [set $varname]
set _$var :$var
} else {
set _$var null
}
}
set sql "
select content_type__rotate_template($_TEMPLATE_ID, $_V_CONTENT_TYPE, $_USE_CONTEXT)
"
db_with_handle -dbn $dbn db {
return [ ns_set value [ns_pg_bind 0or1row $db $sql] 0 ]
}
}
::xo::db::sql::content_type proc get_template {{-dbn {}} -content_type:required -use_context:required} {
foreach var [list CONTENT_TYPE USE_CONTEXT] {
set varname [string tolower $var]
if {[info exists $varname]} {
set $var [set $varname]
set _$var :$var
} else {
set _$var null
}
}
set sql "
select content_type__get_template($_CONTENT_TYPE, $_USE_CONTEXT)
"
db_with_handle -dbn $dbn db {
return [ ns_set value [ns_pg_bind 0or1row $db $sql] 0 ]
}
}
::xo::db::sql::content_type proc register_relation_type {{-dbn {}} -content_type:required -target_type:required {-relation_tag generic} {-min_n 0} -max_n} {
foreach var [list CONTENT_TYPE TARGET_TYPE RELATION_TAG MIN_N MAX_N] {
set varname [string tolower $var]
if {[info exists $varname]} {
set $var [set $varname]
set _$var :$var
} else {
set _$var null
}
}
set sql "
select content_type__register_relation_type($_CONTENT_TYPE, $_TARGET_TYPE, $_RELATION_TAG, $_MIN_N, $_MAX_N)
"
db_with_handle -dbn $dbn db {
return [ ns_set value [ns_pg_bind 0or1row $db $sql] 0 ]
}
}
::xo::db::sql::content_type proc unregister_template {{-dbn {}} -content_type -template_id:required -use_context} {
foreach var [list CONTENT_TYPE TEMPLATE_ID USE_CONTEXT] {
set varname [string tolower $var]
if {[info exists $varname]} {
set $var [set $varname]
set _$var :$var
} else {
set _$var null
}
}
set sql "
select content_type__unregister_template($_CONTENT_TYPE, $_TEMPLATE_ID, $_USE_CONTEXT)
"
db_with_handle -dbn $dbn db {
return [ ns_set value [ns_pg_bind 0or1row $db $sql] 0 ]
}
}
::xo::db::sql::content_type proc trigger_insert_statement {{-dbn {}} -content_type:required} {
foreach var [list CONTENT_TYPE] {
set varname [string tolower $var]
if {[info exists $varname]} {
set $var [set $varname]
set _$var :$var
} else {
set _$var null
}
}
set sql "
select content_type__trigger_insert_statement($_CONTENT_TYPE)
"
db_with_handle -dbn $dbn db {
return [ ns_set value [ns_pg_bind 0or1row $db $sql] 0 ]
}
}
::xo::db::sql::content_type proc unregister_child_type {{-dbn {}} -parent_type:required -child_type:required -relation_tag:required} {
foreach var [list PARENT_TYPE CHILD_TYPE RELATION_TAG] {
set varname [string tolower $var]
if {[info exists $varname]} {
set $var [set $varname]
set _$var :$var
} else {
set _$var null
}
}
set sql "
select content_type__unregister_child_type($_PARENT_TYPE, $_CHILD_TYPE, $_RELATION_TAG)
"
db_with_handle -dbn $dbn db {
return [ ns_set value [ns_pg_bind 0or1row $db $sql] 0 ]
}
}
::xo::db::sql::content_type proc register_mime_type {{-dbn {}} -content_type:required -mime_type:required} {
foreach var [list CONTENT_TYPE MIME_TYPE] {
set varname [string tolower $var]
if {[info exists $varname]} {
set $var [set $varname]
set _$var :$var
} else {
set _$var null
}
}
set sql "
select content_type__register_mime_type($_CONTENT_TYPE, $_MIME_TYPE)
"
db_with_handle -dbn $dbn db {
return [ ns_set value [ns_pg_bind 0or1row $db $sql] 0 ]
}
}
::xo::db::sql::content_type proc is_content_type {{-dbn {}} -object_type:required} {
foreach var [list OBJECT_TYPE] {
set varname [string tolower $var]
if {[info exists $varname]} {
set $var [set $varname]
set _$var :$var
} else {
set _$var null
}
}
set sql "
select content_type__is_content_type($_OBJECT_TYPE)
"
db_with_handle -dbn $dbn db {
return [ ns_set value [ns_pg_bind 0or1row $db $sql] 0 ]
}
}
::xo::db::sql::content_type proc create_attribute {{-dbn {}} -content_type:required -attribute_name:required -datatype:required -pretty_name:required -pretty_plural -sort_order -default_value {-column_spec text}} {
foreach var [list CONTENT_TYPE ATTRIBUTE_NAME DATATYPE PRETTY_NAME PRETTY_PLURAL SORT_ORDER DEFAULT_VALUE COLUMN_SPEC] {
set varname [string tolower $var]
if {[info exists $varname]} {
set $var [set $varname]
set _$var :$var
} else {
set _$var null
}
}
set sql "
select content_type__create_attribute($_CONTENT_TYPE, $_ATTRIBUTE_NAME, $_DATATYPE, $_PRETTY_NAME, $_PRETTY_PLURAL, $_SORT_ORDER, $_DEFAULT_VALUE, $_COLUMN_SPEC)
"
db_with_handle -dbn $dbn db {
return [ ns_set value [ns_pg_bind 0or1row $db $sql] 0 ]
}
}