Branch data Line data Source code
1 : : //-------------------------------------------------------------------------
2 : : // Filename : CAMergeStatus.cpp
3 : : //
4 : : // Purpose : Save RefEntity::autoMergeStatus
5 : : //
6 : : // Special Notes :
7 : : //
8 : : // Creator : Jason Kraftcheck
9 : : //
10 : : // Creation Date : 06/06/02
11 : : //-------------------------------------------------------------------------
12 : :
13 : : #include "RefEntity.hpp"
14 : : #include "CAMergeStatus.hpp"
15 : : #include "CADefines.hpp"
16 : :
17 : 10348 : CubitAttrib* CAMergeStatus_creator(RefEntity* entity, const CubitSimpleAttrib &p_csa)
18 : : {
19 [ + - ]: 10348 : return new CAMergeStatus(entity, p_csa);
20 : : }
21 : :
22 : 10348 : CAMergeStatus::CAMergeStatus( RefEntity* owner, const CubitSimpleAttrib& csa )
23 : 10348 : : CubitAttrib( owner )
24 : : {
25 : 10348 : status = AUTO_MERGE_AUTO;
26 [ + - ][ - + ]: 10348 : if(!csa.isEmpty())
27 : : {
28 [ # # ][ # # ]: 0 : assert( csa.int_data_list().size() == 1 );
[ # # ]
29 [ # # ][ # # ]: 0 : int i = csa.int_data_list()[0];
30 [ # # ][ # # ]: 0 : assert( i == 0 || i == 1 || i == 2 );
[ # # ]
31 : 0 : status = (AutoMergeStatus)i;
32 : : }
33 : 10348 : }
34 : :
35 : 31044 : CAMergeStatus::~CAMergeStatus()
36 [ - + ]: 20696 : { }
37 : :
38 : 0 : CubitStatus CAMergeStatus::actuate()
39 : : {
40 [ # # ]: 0 : if( hasActuated )
41 : 0 : return CUBIT_SUCCESS;
42 : :
43 [ # # ]: 0 : if( !attribOwnerEntity )
44 : 0 : return CUBIT_FAILURE;
45 : :
46 [ # # ]: 0 : DLIList<CubitAttrib*> att_list;
47 [ # # ]: 0 : attribOwnerEntity->find_cubit_attrib_type(CA_MERGE_PARTNER, att_list);
48 [ # # ][ # # ]: 0 : if( att_list.size() )
49 : 0 : return CUBIT_FAILURE;
50 : :
51 [ # # ][ # # ]: 0 : assert( status == AUTO_MERGE_ON || status == AUTO_MERGE_OFF );
52 [ # # ]: 0 : attribOwnerEntity->is_mergeable(status);
53 : :
54 : 0 : deleteAttrib = CUBIT_FALSE;
55 : 0 : hasActuated = CUBIT_TRUE;
56 : :
57 [ # # ]: 0 : return CUBIT_SUCCESS;
58 : : }
59 : :
60 : 10348 : CubitStatus CAMergeStatus::update()
61 : : {
62 [ - + ]: 10348 : if( hasUpdated )
63 : 0 : return CUBIT_SUCCESS;
64 : :
65 [ - + ]: 10348 : if( !attribOwnerEntity )
66 : 0 : return CUBIT_FAILURE;
67 : :
68 : 10348 : status = attribOwnerEntity->merge_status();
69 [ + - ]: 10348 : if( status == AUTO_MERGE_AUTO )
70 : 10348 : delete_attrib(CUBIT_TRUE);
71 : : else
72 : 0 : hasUpdated = CUBIT_TRUE;
73 : :
74 : 10348 : return CUBIT_SUCCESS;
75 : : }
76 : :
77 : 0 : CubitStatus CAMergeStatus::reset()
78 : : {
79 : 0 : return CUBIT_SUCCESS;
80 : : }
81 : :
82 : 10348 : CubitSimpleAttrib CAMergeStatus::cubit_simple_attrib()
83 : : {
84 [ + - ]: 10348 : if( deleteAttrib )
85 [ + - ]: 10348 : return CubitSimpleAttrib();
86 : :
87 [ # # ]: 0 : assert( status != AUTO_MERGE_AUTO );
88 : :
89 [ # # ]: 0 : std::vector<CubitString> string_list;
90 [ # # ][ # # ]: 0 : string_list.push_back(att_internal_name());
[ # # ][ # # ]
91 : :
92 : 0 : int int_data = (int)status;
93 [ # # ][ # # ]: 0 : std::vector<int> int_list;
94 [ # # ]: 0 : int_list.push_back( int_data );
95 : :
96 [ # # ][ # # ]: 10348 : return CubitSimpleAttrib( &string_list, 0, &int_list );
97 : : }
98 : :
99 : 79894 : int CAMergeStatus::int_attrib_type()
100 : : {
101 : 79894 : return CA_MERGE_STATUS;
102 [ + - ][ + - ]: 6540 : }
103 : :
|