Main Page | Modules | Files | Functions | Code Elements | Data Structures | Deprecated

tccore/tctype.h

Go to the documentation of this file.
00001 /*==============================================================================
00002                 Copyright (c) 2003-2005,2008 UGS Corporation
00003                    Unpublished - All Rights Reserved
00004  ==============================================================================*/
00005 
00013 /*  */
00014 
00015 #ifndef TCTYPE_H
00016 #define TCTYPE_H
00017 
00018 #include <property/prop.h>
00019 #include <tccore/tctype_msg.h>
00020 #include <user_exits/user_exits.h>
00021 #include <tccore/libtccore_exports.h>
00022 
00047 #define TC_set_id_msg                 "IMAN_set_id"
00048 #define TC_set_name_msg               "IMAN_set_name"
00049 #define TC_set_description_msg        "IMAN_set_description"
00050 #define TC_set_type_msg               "IMAN_set_type"
00051 #define TC_set_type_directly_msg      "IMAN_set_type_directly"
00052 
00060 #define TCTYPE_name_size_c            32
00061 #define TCTYPE_class_name_size_c      27
00062 
00070 #define TCTYPE_DISABLE_UPDATE_LIST    0
00071 #define TCTYPE_ENABLE_UPDATE_LIST     1
00072 #define TCTYPE_SUSPEND_UPDATE_LIST    2
00073 #define TCTYPE_RESUME_UPDATE_LIST     3
00074 
00078 #define TCTYPE_UPDATE_ALL_PROPS       "_update_all_"
00079 
00080 typedef enum TCTYPE_display_e {
00081     TCTYPE_DISPLAYABLE=0,          
00082     TCTYPE_HIDDEN_AT_SYSTEM_LEVEL, 
00083     TCTYPE_HIDDEN_AT_SITE_LEVEL,   
00084     TCTYPE_HIDDEN_AT_PARENT_LEVEL, 
00085     TCTYPE_HIDDEN_AT_CURRENT_LEVEL 
00086 } TCTYPE_display_t;
00087 
00088 typedef struct TCTYPE_availablerel_s
00089 {
00090     char* actualName;  
00091     char* displayName; 
00092 }  TCTYPE_availablerel_t;
00093 
00097 typedef enum TCTYPE_compounding_ctxt_e
00098 {
00099     TCTYPE_compounding_ctxt_unknown,  
00100     TCTYPE_compounding_ctxt_relation, 
00101     TCTYPE_compounding_ctxt_secondary 
00102 } TCTYPE_compounding_ctxt_t;
00103 
00104 typedef enum TCTYPE_operation_input_e
00105 {
00106     TCTYPE_OPERATIONINPUT_CREATE, 
00107     TCTYPE_OPEARTIONINPUT_REVISE, 
00108     TCTYPE_OPERATIONINPUT_SAVEAS, 
00109     TCTYPE_OPERATIONINPUT_ANY     
00110 } TCTYPE_operation_input_t;
00111 
00116 typedef enum TCTYPE_save_operation_context_e
00117 {
00118     TCTYPE_save_on_create,           
00119     TCTYPE_save_on_saveas,           
00120     TCTYPE_save_on_revise,           
00121     TCTYPE_save_on_update,           
00122     TCTYPE_unknown_operation_context 
00123 }   TCTYPE_save_operation_context_t;
00124 
00125 #ifdef __cplusplus
00126 extern "C"{
00127 #endif
00128 
00135 extern TCCORE_API int TCTYPE_init_module();
00136 
00137 extern TCCORE_API int TCTYPE_exit_module();
00138 
00142 extern TCCORE_API int TCTYPE_refresh(
00143     tag_t               type_tag,       
00144     logical             lock_or_not     
00145     );
00146 
00153 extern TCCORE_API int TCTYPE_ask_name(
00154     tag_t               type_tag,                         
00155     char                type_name[TCTYPE_name_size_c+1]   
00156     );
00157 
00161 extern TCCORE_API int TCTYPE_ask_name2(
00162     tag_t               type_tag,                         
00163     char                **type_name                       
00164     );
00165 
00169 extern TCCORE_API int TCTYPE_ask_display_name(
00170     tag_t               type_tag,                         
00171     char**              display_type_name                 
00172     );
00173 
00180 extern TCCORE_API int TCTYPE_ask_class_name(
00181     tag_t               type_tag,                                 
00182     char                type_class[TCTYPE_class_name_size_c+1]    
00183     );
00184 
00188 extern TCCORE_API int TCTYPE_ask_class_name2(
00189     tag_t               type_tag,                                 
00190     char                **type_class                              
00191     );
00192 
00196 extern TCCORE_API int TCTYPE_ask_object_type(
00197     tag_t               obj_tag,    
00198     tag_t*              type_tag    
00199     );
00200 
00205 extern TCCORE_API int TCTYPE_ask_object_type_with_stubs(
00206     tag_t               obj_tag,    
00207     tag_t*              type_tag    
00208     );
00209 
00210 
00216 extern TCCORE_API int TCTYPE_find_type(
00217     const char*         type_name,      
00218     const char*         class_name,     
00219     tag_t*              type_tag        
00220     );
00221 
00225 extern TCCORE_API int TCTYPE_find_types_for_class(
00226     const char*         class_name,         
00227     int*                number_of_types,    
00228     tag_t**             type_tags           
00229     );
00230 
00236 extern TCCORE_API int TCTYPE_find_displayable_types_for_class(
00237     const char*         class_name,             
00238     logical             include_subclasses,     
00242     int*                number_of_types,        
00243     tag_t**             type_tags               
00244     );
00245 
00252 extern TCCORE_API int TCTYPE_UIF_find_displayable_types_for_class(
00253     const char*         class_name,             
00254     logical             include_subclasses,     
00258     int*                number_of_types,        
00259     tag_t**             type_tags,              
00260     char***             type_names,             
00261     char***             display_type_names      
00262     );
00263 
00270 extern TCCORE_API int TCTYPE_find_displayable_types_for_class_and_accessor(
00271     const char*         class_name,             
00272     tag_t               accessor_tag,           
00273     logical             include_subclasses,     
00277     int*                number_of_types,        
00278     tag_t**             type_tags               
00279     );
00280 
00288 extern TCCORE_API int TCTYPE_find_hidden_types_for_class_and_accessor(
00289     const char*          class_name,            
00290     tag_t                accessor_tag,          
00291     logical              include_subclasses,    
00295     int*                 number_of_types,       
00296     tag_t**              type_tags,             
00297     TCTYPE_display_t** details                
00300     );
00301 
00302 extern TCCORE_API int TCTYPE_find_alltypes_for_class(
00303     const char*         class_name,         
00304     int*                number_of_types,    
00305     tag_t**             type_tags           
00306     );
00307 
00311 extern TCCORE_API logical TCTYPE_is_extent_already_called();
00312 
00313 /* Note:If you want to make sure all types are loaded and don't need the type_tags, call TCTYPE_is_extent_already_called
00314 first to see if TCTYPE_extent is already called.  Call TCTYPE_extent only if is has not been called */
00315 extern TCCORE_API int TCTYPE_extent(
00316     int*                number_of_types,    
00317     tag_t**             type_tags           
00318     );
00319 
00320 
00325 extern TCCORE_API int TCTYPE_list_properties(
00326     tag_t               type_tag,   
00327     int*                num,        
00328     tag_t**             pd_tags     
00329     );
00330 
00334 extern TCCORE_API int TCTYPE_ask_property_by_name(
00335     tag_t               type_tag,   
00336     const char*         prop_name,  
00337     tag_t*              pd_tag      
00338     );
00339 
00352 extern TCCORE_API int TCTYPE_property_exists(
00353     tag_t               type_tag,   
00354     const char*         prop_name,  
00355     logical*            verdict     
00356     );
00357 
00362 extern TCCORE_API int TCTYPE_ask_property_by_display_name(
00363     tag_t               type_tag,       
00364     const char*         disp_name,      
00365     tag_t*              pd_tag          
00366     );
00367 
00376 extern TCCORE_API int TCTYPE_add_runtime_property(
00377     tag_t               type_tag,       
00378     const char*         prop_name,      
00384     PROP_value_type_t   valuetype,      
00387     int                 maxstrlen,      
00389     tag_t*              pd_tag          
00390     );
00391 
00401 extern TCCORE_API int TCTYPE_add_runtime_array_property(
00402     tag_t               type_tag,       
00403     const char*         prop_name,      
00409     PROP_value_type_t   valuetype,      
00412     int                 maxstrlen,      
00414     int                 maxnumelements, 
00416     tag_t*              pd_tag          
00417     );
00418 
00426 extern TCCORE_API int TCTYPE_add_relation_property(
00427     tag_t               type_tag,       
00428     const char*         prop_name,      
00434     tag_t               rel_type,       
00435     tag_t*              pd_tag          
00436     );
00437 
00447 extern TCCORE_API int TCTYPE_list_primary_rtypes(
00448     tag_t               primary_type,   
00449     int*                n_rtypes,       
00450     tag_t**             rtypes          
00451     );
00452 
00463 extern TCCORE_API int  TCTYPE_register_properties(
00464     USER_prop_init_entry_t* user_types_methods,     
00468     int                     array_size              
00469     );
00470 
00474 extern TCCORE_API int TCTYPE_list_displayable_properties(
00475     tag_t               type_tag,   
00476     int*                num,        
00477     tag_t**             pd_tags     
00478     );
00479 
00480 extern TCCORE_API int TCTYPE_ask_available_relations(
00481     tag_t                     type_tag,         
00482     int*                      relationCount,    
00483     TCTYPE_availablerel_t** relationNames     
00484     );
00485 
00486 extern TCCORE_API int TCTYPE_ask_available_relation_names(
00487     tag_t                     type_tag,                  
00488     int*                      relationNameCount,         
00489     char***                   relationDisplayNames,      
00490     char***                   relationActualNames        
00491     );
00492 
00496 extern TCCORE_API int TCTYPE_ask_parent_type(
00497     tag_t type_tag,         
00498     tag_t *parent_type_tag  
00499     );
00500 
00504 extern TCCORE_API int TCTYPE_is_type_of (
00505     tag_t     type_tag,            
00506     tag_t     another_type_tag,    
00507     logical * answer               
00508     );
00509 
00518 extern TCCORE_API int TCTYPE_ask_subtypes(
00519     tag_t    type_tag,            
00520     logical  forSameClassOnly,    
00521     int *    numOfSubtypes,       
00522     tag_t ** listOfSubtypes       
00523     );
00524 
00536 extern TCCORE_API int TCTYPE_ask_subtypes_with_exclusions(
00537     tag_t             type_tag,                 
00538     logical           for_same_class_only,      
00539     int               n_exclusion_bo_names,     
00540     const char**      exclusion_bo_names,       
00541     int *             num_of_sub_types,         
00542     tag_t **          list_of_sub_types         
00543     );
00544 
00555 extern TCCORE_API int TCTYPE_ask_child_types(
00556     tag_t    type_tag,            
00557     logical  forSameClassOnly,    
00558     int *    numOfChildTypes,     
00559     tag_t ** listOfChildTypes     
00560     );
00561 
00566 extern TCCORE_API int TCTYPE_ask_child_primary_types (
00567     tag_t    type_tag,            
00568     int *    numOfChildTypes,     
00569     tag_t ** listOfChildTypes     
00570     );
00571 
00575 extern TCCORE_API int TCTYPE_load_all_delayed_types() ;
00576 
00580 extern TCCORE_API int TCTYPE_ask_create_descriptor(
00581     tag_t boTypeTag,            
00582     tag_t* createDescTag        
00583 );
00584 
00585 
00589 extern TCCORE_API int TCTYPE_ask_saveas_descriptor(
00590      tag_t objectTypeTag,            
00591      tag_t* saveAsDescTag        
00592  );
00593 
00597 extern TCCORE_API int TCTYPE_ask_target_deepcopydata(
00598     tag_t objectTag,            
00599     int *numAttachedObjs,       
00600     tag_t** deepCopyDataTags    
00601 );
00602 
00606 extern TCCORE_API int TCTYPE_ask_create_prop_descriptors(
00607     tag_t  createDescTag,              
00608     int*   n_propDescTags,             
00609     tag_t**   propDescTags,            
00610     int*      n_secPropNames,          
00611     char***   secPropNames,            
00612     tag_t**    secBOTypeTags,          
00613     logical**  isRequired,             
00614     logical**  isArray,                
00615     int**      compoundingCtxts,       
00616     tag_t**   secCreateDescTags        
00617 );
00618 
00622 extern TCCORE_API int TCTYPE_ask_saveas_prop_descriptors(
00623     tag_t  saveasDescTag,                   
00624     int*   n_propDescTags,                  
00625     tag_t**   propDescTags                
00626 );
00627 
00628 
00633 extern TCCORE_API int TCTYPE_construct_create_input(
00634     tag_t boTypeTag,            
00635     tag_t* createInputTag       
00636 );
00637 
00642 extern TCCORE_API int TCTYPE_construct_saveasinput(
00643     tag_t boTypeTag,            
00644     tag_t* saveAsInputTag       
00645 );
00646 
00651 extern TCCORE_API int TCTYPE_construct_operationinput(
00652     tag_t targetObjTypeTag,           
00653     TCTYPE_operation_input_t opvar,   
00654     tag_t* targetSaveAsInputTag       
00655 );
00660 extern TCCORE_API int TCTYPE_free_deepcopydata(
00661     int numDeepCopyData,            
00662     tag_t* deepCopyDataTags       
00663 );
00664 
00681 extern TCCORE_API int TCTYPE_saveas_object(
00682     tag_t targetObjectTag,      
00683     tag_t saveAsInputTag,       
00684     int numAttachedObjects,     
00685     tag_t* deepCopyDataTags,    
00686     tag_t* targetCopyTag        
00687 );
00688 
00692 extern TCCORE_API int TCTYPE_ask_revise_descriptor(
00693     tag_t object_type_tag,      
00694     tag_t* revise_desc_tag      
00695 );
00696 
00701 extern TCCORE_API int TCTYPE_ask_deepcopydata(
00702     tag_t object_tag,                    
00703     TCTYPE_operation_input_t opvar,      
00704     int *num_attached_objs,              
00705     tag_t** deepcopydata_tags            
00706 );
00707 
00722 extern TCCORE_API int TCTYPE_revise_objects(
00723     int num_target_objs,          
00724     tag_t*  target_object_tags,   
00725     tag_t*  revise_input_tags,    
00726     int*  num_attached_objs,      
00727     tag_t*  deepcopydata_tags,    
00728     tag_t** target_copy_tags,     
00729     int** ifails                  
00730 );
00731 
00735 extern TCCORE_API int TCTYPE_create_object(
00736     tag_t creInputTag,      
00737     tag_t* boTag            
00738 );
00739 
00746 extern TCCORE_API int TCTYPE_create_objects(
00747     int n_bulks,            
00748     int* quantities,        
00749     tag_t* creInputTags,    
00750     int* n_objTags,         
00751     tag_t** objTags         
00752 );
00753 
00757 extern TCCORE_API int TCTYPE_set_create_display_value(
00758     tag_t  creInputTag,             
00759     char*  propName,                
00760     int    n_dispValues,            
00761     const  char** dispValues        
00764 );
00765 
00769 extern TCCORE_API int TCTYPE_set_OperationInput_DisplayValue(
00770     tag_t  topSvaIInputTag,         
00771     char*  propName,                
00772     const  char** dispValues       
00774 );
00775 
00779 extern TCCORE_API int TCTYPE_find_displayable_business_objects(
00780     const char*             boName,                 
00781     int                     n_exclusionBONames,     
00782     const char**            exclusionBONames,       
00783     int*                    n_displayableTypeTags,  
00784     tag_t**                 displayableTypeTags     
00785 );
00786 
00791 extern TCCORE_API int TCTYPE_UIF_find_displayable_business_objects(
00792     const char*             boName,                 
00793     int                     n_exclusionBONames,     
00794     const char**            exclusionBONames,       
00795     int*                    n_displayableTypeTags,  
00796     tag_t**                 displayableTypeTags,    
00797     char***                 typeNames,              
00798     char***                 displayTypeNames        
00799 );
00800 
00809 extern TCCORE_API int TCTYPE_UIF_find_generically_creatable_business_objects(
00810     const char*             bo_name,                 
00811     int                     n_exclusion_bo_names,    
00812     const char**            exclusion_bo_names,      
00813     int*                    n_displayable_type_tags, 
00814     tag_t**                 displayable_type_tags,   
00815     char***                 type_names,              
00816     char***                 display_type_names       
00817 );
00818 
00823 extern TCCORE_API int TCTYPE_ask_name_rule_patterns(
00824     const char*             boName,                 
00825     int*                    n_propNames,            
00826     char***                 propNames,              
00827     int**                   patternCountArray,      
00828     int*                    n_patterns,             
00829     char***                 patterns                
00830 );
00831 
00835 extern TCCORE_API int TCTYPE_ask_save_operation_context(
00836     TCTYPE_save_operation_context_t*    opEnmSvOprnCtxt     
00837 );
00838 
00839 
00840 
00841 #ifdef __cplusplus
00842 }
00843 #endif
00844 
00847 #include <tccore/libtccore_undef.h>
00848 
00849 #endif