%3 ::xo::db::CrClass ::xo::db::CrClass → delete → ensure_item_ids_instantiated → get_child_item_ids → get_instance_from_db → get_name → get_object_type → get_parent_id → id_belongs_to_package → lookup create_object_type delete drop_object_type edit_atts fetch_object folder_type folder_type_unregister_all getFormClass get_instance_from_db get_instances_from_db init insert_statement instance_select_query lock mk_insert_method mk_save_method new_persistent_object remember_long_text_slots type_selection_clause unknown ::xo::db::Class ::xo::db::Class → class_to_object_type → create_all_functions → delete → delete_all_acs_objects → drop_type → exists_in_db → get_class_from_db → get_instance_from_db → get_object_type → get_table_name → object_type_exists_in_db → object_type_to_class check_default_values check_table_atts collect_constraints create_object_type db_slots dbproc_nonposargs drop_object_type fetch_query get_context get_instances_from_db init init_type_hierarchy initialize_acs_object instance_select_query instantiate_objects mk_insert_method mk_update_method new_acs_object new_persistent_object object_types object_types_query require_constraints table_definition unknown ::xo::db::CrClass->::xo::db::Class ::xo::db::CrCache::Class ::xo::db::CrCache::Class ::xo::db::CrClass->::xo::db::CrCache::Class mixin ::xo::db::CrCache ::xo::db::CrCache ::xo::db::CrClass->::xo::db::CrCache instmixin ::xo::PackageMgr ::xo::PackageMgr → get_package_class_from_package_key configure_fresh_instance first_instance fix_site_wide_package_ids form_unify form_usages get_nls_language_from_lang get_site_wide_page import_prototype_page initialize instances lookup_side_wide_page prototype_page_file_name require require_site_wide_info require_site_wide_pages ::xo::PackageMgr->::xo::db::Class ::xotcl::Class ::xotcl::Class → __unknown __class_configureparameter ad_instforward ad_instproc allinstances extend_slot extend_slot_default instfilter instforward instinvar instmixin instparametercmd instproc method parameter slots superclass unknown uses ::xo::db::Class->::xotcl::Class ::xotcl::Object ::xotcl::Object ::xotcl::Class->::xotcl::Object

Class ::xo::db::CrClass

::xo::db::CrClass[i] create ... \
           [ -edit_form edit_form ] \
           [ -folder_id (default "-100") ] \
           [ -form form ] \
           [ -mime_type (default "text/plain") ] \
           [ -non_cached_instance_var_patterns (default "__*") ] \
           [ -storage_type (default "text") ] \
           [ -supertype (default "content_revision") ]

The meta class CrClass serves for a class of applications that mostly store information in the content repository and that use a few attributes adjoining this information. The class handles the open acs object_type creation and the automatic creation of the necessary tables based on instances of this meta-class.

The definition of new types is handled in the constructor of CrType through the method create_object_type, the removal of the object type is handled through the method drop_object_type (requires that all instances of this type are deleted).

Each content item can be retrieved either through the general method CrClass get_instance_from_db or through the "get_instance_from_db" method of every subclass of CrItem.

This Class is a meta-class providing methods for Classes managing CrItems.

Defined in packages/xotcl-core/tcl/cr-procs.tcl

Class Relations

  • class: ::xotcl::Class[i]
  • superclass: ::xo::db::Class[i]
  • instmixin: ::xo::db::CrCache[i]
  • mixin: ::xo::db::CrCache::Class[i]

Methods (to be applied on the object)

  • delete (scripted, public)

     xo::db::CrClass[i] delete [ -item_id item_id ]

    Delete a CrItem in the database

    Switches:
    -item_id
    (optional)

    Partial Call Graph (max 5 caller/called nodes):
    %3 test_xotcl_core_tutorial_4 xotcl_core_tutorial_4 (test xotcl-core) xo::db::CrClass proc delete xo::db::CrClass proc delete test_xotcl_core_tutorial_4->xo::db::CrClass proc delete

    Testcases:
    xotcl_core_tutorial_4
  • ensure_item_ids_instantiated (scripted, public)

     xo::db::CrClass[i] ensure_item_ids_instantiated [ -initialize on|off ] \
        -item_ids item_ids 

    Make sure, the objects all of the provided items_ids are instantiated (i.e. the same-named objects do exist as executable commands in the current thread).

    Switches:
    -initialize
    (boolean) (defaults to "true") (optional)
    -item_ids
    (required)

    Partial Call Graph (max 5 caller/called nodes):
    %3 test_link_tests link_tests (test xowiki) xo::db::CrClass proc ensure_item_ids_instantiated xo::db::CrClass proc ensure_item_ids_instantiated test_link_tests->xo::db::CrClass proc ensure_item_ids_instantiated

    Testcases:
    link_tests
  • get_child_item_ids (scripted, public)

     xo::db::CrClass[i] get_child_item_ids -item_id item_id 

    Return a list of content items having the provided item_id as direct or indirect parent. The method returns recursively all item_ids.

    Switches:
    -item_id
    (required)
    Returns:
    list of item_ids

    Partial Call Graph (max 5 caller/called nodes):
    %3 test_xowiki_test_cases xowiki_test_cases (test xowiki) xo::db::CrClass proc get_child_item_ids xo::db::CrClass proc get_child_item_ids test_xowiki_test_cases->xo::db::CrClass proc get_child_item_ids

    Testcases:
    xowiki_test_cases
  • get_instance_from_db (scripted, public)

     xo::db::CrClass[i] get_instance_from_db [ -item_id item_id ] \
        [ -revision_id revision_id ] [ -initialize on|off ]

    Instantiate the live revision or the specified revision of an CrItem. The XOTcl object is destroyed automatically on cleanup (end of a connection request).

    Switches:
    -item_id
    (defaults to "0") (optional)
    -revision_id
    (defaults to "0") (optional)
    -initialize
    (boolean) (defaults to "true") (optional)
    Returns:
    fully qualified object containing the attributes of the CrItem

    Partial Call Graph (max 5 caller/called nodes):
    %3 test_create_workflow_with_instance create_workflow_with_instance (test xowf) xo::db::CrClass proc get_instance_from_db xo::db::CrClass proc get_instance_from_db test_create_workflow_with_instance->xo::db::CrClass proc get_instance_from_db test_link_tests link_tests (test xowiki) test_link_tests->xo::db::CrClass proc get_instance_from_db test_path_resolve path_resolve (test xowiki) test_path_resolve->xo::db::CrClass proc get_instance_from_db test_slot_interactions slot_interactions (test xowiki) test_slot_interactions->xo::db::CrClass proc get_instance_from_db test_test_cr_items test_cr_items (test xotcl-core) test_test_cr_items->xo::db::CrClass proc get_instance_from_db ad_log ad_log (public) xo::db::CrClass proc get_instance_from_db->ad_log nsf::is nsf::is xo::db::CrClass proc get_instance_from_db->nsf::is

    Testcases:
    test_cr_items, create_workflow_with_instance, xowiki_test_cases, link_tests, slot_interactions, path_resolve
  • get_name (scripted, public)

     xo::db::CrClass[i] get_name -item_id item_id 

    Get the name of a content item either from an already instantiated object or from the database without instantiating it. If item_id is not a valid item_id, we throw an error.

    Switches:
    -item_id
    (required)
    Returns:
    parent_id

    Partial Call Graph (max 5 caller/called nodes):
    %3 test_xowiki_test_cases xowiki_test_cases (test xowiki) xo::db::CrClass proc get_name xo::db::CrClass proc get_name test_xowiki_test_cases->xo::db::CrClass proc get_name

    Testcases:
    xowiki_test_cases
  • get_object_type (scripted, public)

     xo::db::CrClass[i] get_object_type [ -item_id item_id ] \
        [ -revision_id revision_id ]

    Return the object type for an item_id or revision_id.

    Switches:
    -item_id
    (optional)
    -revision_id
    (defaults to "0") (optional)
    Returns:
    object_type typically an XOTcl class

    Partial Call Graph (max 5 caller/called nodes):
    %3 test_test_cr_items test_cr_items (test xotcl-core) xo::db::CrClass proc get_object_type xo::db::CrClass proc get_object_type test_test_cr_items->xo::db::CrClass proc get_object_type test_test_xo_db_object test_xo_db_object (test xotcl-core) test_test_xo_db_object->xo::db::CrClass proc get_object_type

    Testcases:
    test_xo_db_object, test_cr_items
  • get_parent_id (scripted, public)

     xo::db::CrClass[i] get_parent_id -item_id item_id 

    Get the parent_id of a content item either from an already instantiated object or from the database without instantiating it. If item_id is not a valid item_id, we throw an error.

    Switches:
    -item_id
    (required)
    Returns:
    parent_id

    Partial Call Graph (max 5 caller/called nodes):
    %3 test_xowiki_test_cases xowiki_test_cases (test xowiki) xo::db::CrClass proc get_parent_id xo::db::CrClass proc get_parent_id test_xowiki_test_cases->xo::db::CrClass proc get_parent_id

    Testcases:
    xowiki_test_cases
  • id_belongs_to_package (scripted, public)

     xo::db::CrClass[i] id_belongs_to_package [ -item_id item_id ] \
        [ -revision_id revision_id ] [ -package_id package_id ]

    Check if the provided item_id or revision_id belongs to the provided package.

    Switches:
    -item_id
    (defaults to "0") (optional)
    -revision_id
    (defaults to "0") (optional)
    -package_id
    (optional)
    Returns:
    boolean success

    Partial Call Graph (max 5 caller/called nodes):
    %3

    Testcases:
    No testcase defined.
  • lookup (scripted, public)

     xo::db::CrClass[i] lookup -name name  [ -parent_id parent_id ] \
        [ -content_type content_type ]

    Check, whether a content item with the given name exists. When content_type is provided (e.g. -content_type "::%") then a like operation is applied on the value.

    Switches:
    -name
    (required)
    -parent_id
    (defaults to "-100") (optional)
    -content_type
    (optional)
    Returns:
    item_id If the item exists, return its item_id, otherwise 0.

    Partial Call Graph (max 5 caller/called nodes):
    %3 test_create_folder_with_page create_folder_with_page (test xowf) xo::db::CrClass proc lookup xo::db::CrClass proc lookup test_create_folder_with_page->xo::db::CrClass proc lookup test_path_resolve path_resolve (test xowiki) test_path_resolve->xo::db::CrClass proc lookup test_xotcl_core_tutorial_4 xotcl_core_tutorial_4 (test xotcl-core) test_xotcl_core_tutorial_4->xo::db::CrClass proc lookup test_xowiki_test_cases xowiki_test_cases (test xowiki) test_xowiki_test_cases->xo::db::CrClass proc lookup

    Testcases:
    xotcl_core_tutorial_4, create_folder_with_page, xowiki_test_cases, path_resolve

Methods (to be applied on instances)

  • create_object_type (scripted, public)

     <instance of xo::db::CrClass[i]> create_object_type

    Create an oacs object_type and a table for keeping the additional attributes.

    Partial Call Graph (max 5 caller/called nodes):
    %3 test_xotcl_core_tutorial_4 xotcl_core_tutorial_4 (test xotcl-core) xo::db::CrClass instproc create_object_type xo::db::CrClass instproc create_object_type test_xotcl_core_tutorial_4->xo::db::CrClass instproc create_object_type

    Testcases:
    xotcl_core_tutorial_4
  • delete (scripted, public)

     <instance of xo::db::CrClass[i]> delete -item_id item_id 

    Delete a content item from the content repository.

    Switches:
    -item_id
    (required)
    id of the item to be deleted

    Partial Call Graph (max 5 caller/called nodes):
    %3 test_xotcl_core_tutorial_4 xotcl_core_tutorial_4 (test xotcl-core) xo::db::CrClass instproc delete xo::db::CrClass instproc delete test_xotcl_core_tutorial_4->xo::db::CrClass instproc delete test_xowiki_test_cases xowiki_test_cases (test xowiki) test_xowiki_test_cases->xo::db::CrClass instproc delete

    Testcases:
    xotcl_core_tutorial_4, xowiki_test_cases
  • drop_object_type (scripted, public)

     <instance of xo::db::CrClass[i]> drop_object_type

    Delete the object type and remove the table for the attributes. This method should be called when all instances are deleted. It undoes everying what create_object_type has produced.

    Partial Call Graph (max 5 caller/called nodes):
    %3 test_xotcl_core_tutorial_4 xotcl_core_tutorial_4 (test xotcl-core) xo::db::CrClass instproc drop_object_type xo::db::CrClass instproc drop_object_type test_xotcl_core_tutorial_4->xo::db::CrClass instproc drop_object_type

    Testcases:
    xotcl_core_tutorial_4
  • edit_atts (scripted)

  • edit_form (setter)

  • fetch_object (scripted, public)

     <instance of xo::db::CrClass[i]> fetch_object -item_id item_id  \
        [ -revision_id revision_id ] -object object  \
        [ -initialize on|off ]

    Load a content item into the specified object. If revision_id is provided, the specified revision is returned, otherwise the live revision of the item_id. If the object does not exist, we create it.

    Switches:
    -item_id
    (required)
    -revision_id
    (defaults to "0") (optional)
    -object
    (required)
    -initialize
    (boolean) (defaults to "true") (optional)
    Returns:
    cr item object

    Partial Call Graph (max 5 caller/called nodes):
    %3 test_xotcl_core_tutorial_4 xotcl_core_tutorial_4 (test xotcl-core) xo::db::CrClass instproc fetch_object xo::db::CrClass instproc fetch_object test_xotcl_core_tutorial_4->xo::db::CrClass instproc fetch_object test_xowiki_test_cases xowiki_test_cases (test xowiki) test_xowiki_test_cases->xo::db::CrClass instproc fetch_object db_1row db_1row (public) xo::db::CrClass instproc fetch_object->db_1row

    Testcases:
    xotcl_core_tutorial_4, xowiki_test_cases
  • folder_id (setter)

  • folder_type (scripted, public)

     <instance of xo::db::CrClass[i]> folder_type \
        [ -include_subtypes include_subtypes ] [ -folder_id folder_id ] \
        operation

    register the current object type for folder_id. If folder_id is not specified, use the instvar of the class instead.

    Switches:
    -include_subtypes
    (defaults to "t") (optional)
    Boolean value (t/f) to flag whether the operation should be applied on subtypes as well
    -folder_id
    (optional)
    Parameters:
    operation

    Partial Call Graph (max 5 caller/called nodes):
    %3 test_xotcl_core_tutorial_4 xotcl_core_tutorial_4 (test xotcl-core) xo::db::CrClass instproc folder_type xo::db::CrClass instproc folder_type test_xotcl_core_tutorial_4->xo::db::CrClass instproc folder_type

    Testcases:
    xotcl_core_tutorial_4
  • folder_type_unregister_all (scripted, public)

     <instance of xo::db::CrClass[i]> folder_type_unregister_all \
        [ -include_subtypes include_subtypes ]

    Unregister the object type from all folders on the system

    Switches:
    -include_subtypes
    (defaults to "t") (optional)
    Boolean value (t/f) to flag whether the operation should be applied on subtypes as well

    Partial Call Graph (max 5 caller/called nodes):
    %3

    Testcases:
    No testcase defined.
  • form (setter)

  • getFormClass (scripted)

  • get_instance_from_db (scripted, public)

     <instance of xo::db::CrClass[i]> get_instance_from_db \
        [ -item_id item_id ] [ -revision_id revision_id ] \
        [ -initialize on|off ]

    Retrieve either the live revision or a specified revision of a content item with all attributes into a newly created object. The retrieved attributes are stored in the instance variables in class representing the object_type. The XOTcl object is destroyed automatically on cleanup (end of a connection request)

    Switches:
    -item_id
    (defaults to "0") (optional)
    id of the item to be retrieved.
    -revision_id
    (defaults to "0") (optional)
    revision-id of the item to be retrieved.
    -initialize
    (boolean) (defaults to "true") (optional)
    Returns:
    fully qualified object

    Partial Call Graph (max 5 caller/called nodes):
    %3 test_create_folder_with_page create_folder_with_page (test xowf) xo::db::CrClass instproc get_instance_from_db xo::db::CrClass instproc get_instance_from_db test_create_folder_with_page->xo::db::CrClass instproc get_instance_from_db test_create_form_with_form_instance create_form_with_form_instance (test xowiki) test_create_form_with_form_instance->xo::db::CrClass instproc get_instance_from_db test_test_cr_items test_cr_items (test xotcl-core) test_test_cr_items->xo::db::CrClass instproc get_instance_from_db test_xotcl_core_tutorial_4 xotcl_core_tutorial_4 (test xotcl-core) test_xotcl_core_tutorial_4->xo::db::CrClass instproc get_instance_from_db test_xowiki_test_cases xowiki_test_cases (test xowiki) test_xowiki_test_cases->xo::db::CrClass instproc get_instance_from_db

    Testcases:
    xotcl_core_tutorial_4, test_cr_items, create_folder_with_page, xowiki_test_cases, create_form_with_form_instance
  • get_instances_from_db (scripted, public)

     <instance of xo::db::CrClass[i]> get_instances_from_db \
        [ -select_attributes select_attributes ] \
        [ -from_clause from_clause ] [ -where_clause where_clause ] \
        [ -orderby orderby ] [ -with_subtypes on|off ] \
        [ -folder_id folder_id ] [ -page_size page_size ] \
        [ -page_number page_number ] [ -base_table base_table ] \
        [ -initialize initialize ]

    Returns a set (ordered composite) of the answer tuples of an 'instance_select_query' with the same attributes. The tuples are instances of the class, on which the method was called.

    Switches:
    -select_attributes
    (optional)
    -from_clause
    (optional)
    -where_clause
    (optional)
    -orderby
    (optional)
    -with_subtypes
    (boolean) (defaults to "true") (optional)
    -folder_id
    (optional)
    -page_size
    (defaults to "20") (optional)
    -page_number
    (optional)
    -base_table
    (defaults to "cr_revisions") (optional)
    -initialize
    (defaults to "true") (optional)

    Partial Call Graph (max 5 caller/called nodes):
    %3 test_create_form_with_form_instance create_form_with_form_instance (test xowiki) xo::db::CrClass instproc get_instances_from_db xo::db::CrClass instproc get_instances_from_db test_create_form_with_form_instance->xo::db::CrClass instproc get_instances_from_db test_xotcl_core_tutorial_4 xotcl_core_tutorial_4 (test xotcl-core) test_xotcl_core_tutorial_4->xo::db::CrClass instproc get_instances_from_db

    Testcases:
    xotcl_core_tutorial_4, create_form_with_form_instance
  • init (scripted)

  • insert_statement (scripted)

  • instance_select_query (scripted, public)

     <instance of xo::db::CrClass[i]> instance_select_query \
        [ -select_attributes select_attributes ] [ -orderby orderby ] \
        [ -where_clause where_clause ] [ -from_clause from_clause ] \
        [ -with_subtypes on|off ] [ -with_children on|off ] \
        [ -publish_status publish_status ] [ -count on|off ] \
        [ -folder_id folder_id ] [ -parent_id parent_id ] \
        [ -page_size page_size ] [ -page_number page_number ] \
        [ -base_table base_table ]

    returns the SQL-query to select the CrItems of the specified object_type

    Switches:
    -select_attributes
    (optional)
    attributes for the SQL query to be retrieved, in addition to item_id, name, publish_status, object_type, and package_id which are always returned
    -orderby
    (optional)
    for ordering the solution set
    -where_clause
    (optional)
    clause for restricting the answer set
    -from_clause
    (optional)
    -with_subtypes
    (boolean) (defaults to "true") (optional)
    return subtypes as well
    -with_children
    (boolean) (defaults to "false") (optional)
    return immediate child objects of all objects as well
    -publish_status
    (optional)
    one of 'live', 'ready', or 'production'
    -count
    (boolean) (defaults to "false") (optional)
    return the query for counting the solutions
    -folder_id
    (optional)
    parent_id
    -parent_id
    (optional)
    -page_size
    (defaults to "20") (optional)
    -page_number
    (optional)
    -base_table
    (defaults to "cr_revisions") (optional)
    typically automatic view, must contain title and revision_id
    Returns:
    SQL query

    Partial Call Graph (max 5 caller/called nodes):
    %3 test_xowiki_test_cases xowiki_test_cases (test xowiki) xo::db::CrClass instproc instance_select_query xo::db::CrClass instproc instance_select_query test_xowiki_test_cases->xo::db::CrClass instproc instance_select_query

    Testcases:
    xowiki_test_cases
  • lock (scripted)

  • mime_type (setter)

  • mk_insert_method (scripted)

  • mk_save_method (scripted)

  • new_persistent_object (scripted, public)

     <instance of xo::db::CrClass[i]> new_persistent_object \
        [ -package_id package_id ] [ -creation_user creation_user ] \
        [ -creation_ip creation_ip ] args [ args... ]

    Create a new content item of the actual class, configure it with the given arguments and insert it into the database. The XOTcl object is destroyed automatically on cleanup (end of a connection request).

    Switches:
    -package_id
    (optional)
    -creation_user
    (optional)
    -creation_ip
    (optional)
    Parameters:
    args
    Returns:
    fully qualified object

    Partial Call Graph (max 5 caller/called nodes):
    %3 test_xotcl_core_tutorial_4 xotcl_core_tutorial_4 (test xotcl-core) xo::db::CrClass instproc new_persistent_object xo::db::CrClass instproc new_persistent_object test_xotcl_core_tutorial_4->xo::db::CrClass instproc new_persistent_object ad_log ad_log (public) xo::db::CrClass instproc new_persistent_object->ad_log ad_try ad_try (public) xo::db::CrClass instproc new_persistent_object->ad_try

    Testcases:
    xotcl_core_tutorial_4
  • non_cached_instance_var_patterns (setter)

  • remember_long_text_slots (scripted)

  • storage_type (setter)

  • supertype (setter)

  • type_selection_clause (scripted)

  • unknown (scripted)