1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski 
24*b1cdbd2cSJim Jagielski #ifndef DBACCESS_MIGRATIONERROR_HXX
25*b1cdbd2cSJim Jagielski #define DBACCESS_MIGRATIONERROR_HXX
26*b1cdbd2cSJim Jagielski 
27*b1cdbd2cSJim Jagielski /** === begin UNO includes === **/
28*b1cdbd2cSJim Jagielski #include <com/sun/star/uno/Any.hxx>
29*b1cdbd2cSJim Jagielski /** === end UNO includes === **/
30*b1cdbd2cSJim Jagielski 
31*b1cdbd2cSJim Jagielski #include <vector>
32*b1cdbd2cSJim Jagielski 
33*b1cdbd2cSJim Jagielski //........................................................................
34*b1cdbd2cSJim Jagielski namespace dbmm
35*b1cdbd2cSJim Jagielski {
36*b1cdbd2cSJim Jagielski //........................................................................
37*b1cdbd2cSJim Jagielski 
38*b1cdbd2cSJim Jagielski     enum MigrationErrorType
39*b1cdbd2cSJim Jagielski     {
40*b1cdbd2cSJim Jagielski         ERR_OPENING_SUB_DOCUMENT_FAILED = 1,
41*b1cdbd2cSJim Jagielski         ERR_CLOSING_SUB_DOCUMENT_FAILED,
42*b1cdbd2cSJim Jagielski         ERR_STORAGE_COMMIT_FAILED,
43*b1cdbd2cSJim Jagielski         ERR_STORING_DATABASEDOC_FAILED,
44*b1cdbd2cSJim Jagielski         ERR_COLLECTING_DOCUMENTS_FAILED,
45*b1cdbd2cSJim Jagielski         ERR_UNEXPECTED_LIBSTORAGE_ELEMENT,
46*b1cdbd2cSJim Jagielski         ERR_CREATING_DBDOC_SCRIPT_STORAGE_FAILED,
47*b1cdbd2cSJim Jagielski         ERR_COMMITTING_SCRIPT_STORAGES_FAILED,
48*b1cdbd2cSJim Jagielski         ERR_GENERAL_SCRIPT_MIGRATION_FAILURE,
49*b1cdbd2cSJim Jagielski         ERR_GENERAL_MACRO_MIGRATION_FAILURE,
50*b1cdbd2cSJim Jagielski         ERR_UNKNOWN_SCRIPT_TYPE,
51*b1cdbd2cSJim Jagielski         ERR_UNKNOWN_SCRIPT_LANGUAGE,
52*b1cdbd2cSJim Jagielski         ERR_UNKNOWN_SCRIPT_NAME_FORMAT,
53*b1cdbd2cSJim Jagielski         ERR_SCRIPT_TRANSLATION_FAILURE,
54*b1cdbd2cSJim Jagielski         ERR_INVALID_SCRIPT_DESCRIPTOR_FORMAT,
55*b1cdbd2cSJim Jagielski         ERR_ADJUSTING_DOCUMENT_EVENTS_FAILED,
56*b1cdbd2cSJim Jagielski         ERR_ADJUSTING_DIALOG_EVENTS_FAILED,
57*b1cdbd2cSJim Jagielski         ERR_ADJUSTING_FORMCOMP_EVENTS_FAILED,
58*b1cdbd2cSJim Jagielski         ERR_BIND_SCRIPT_STORAGE_FAILED,
59*b1cdbd2cSJim Jagielski         ERR_REMOVE_SCRIPTS_STORAGE_FAILED,
60*b1cdbd2cSJim Jagielski         ERR_DOCUMENT_BACKUP_FAILED,
61*b1cdbd2cSJim Jagielski         ERR_UNKNOWN_SCRIPT_FOLDER,
62*b1cdbd2cSJim Jagielski         ERR_EXAMINING_SCRIPTS_FOLDER_FAILED,
63*b1cdbd2cSJim Jagielski         ERR_PASSWORD_VERIFICATION_FAILED,
64*b1cdbd2cSJim Jagielski         ERR_NEW_STYLE_REPORT
65*b1cdbd2cSJim Jagielski     };
66*b1cdbd2cSJim Jagielski 
67*b1cdbd2cSJim Jagielski 	//====================================================================
68*b1cdbd2cSJim Jagielski 	//= MigrationError
69*b1cdbd2cSJim Jagielski 	//====================================================================
70*b1cdbd2cSJim Jagielski     /** encapsulates information about an error which happened during the migration
71*b1cdbd2cSJim Jagielski     */
72*b1cdbd2cSJim Jagielski 	struct MigrationError
73*b1cdbd2cSJim Jagielski 	{
74*b1cdbd2cSJim Jagielski         const MigrationErrorType            eType;
75*b1cdbd2cSJim Jagielski         ::std::vector< ::rtl::OUString >    aErrorDetails;
76*b1cdbd2cSJim Jagielski         const ::com::sun::star::uno::Any    aCaughtException;
77*b1cdbd2cSJim Jagielski 
MigrationErrordbmm::MigrationError78*b1cdbd2cSJim Jagielski         MigrationError(
79*b1cdbd2cSJim Jagielski                 const MigrationErrorType _eType )
80*b1cdbd2cSJim Jagielski             :eType( _eType )
81*b1cdbd2cSJim Jagielski         {
82*b1cdbd2cSJim Jagielski         }
83*b1cdbd2cSJim Jagielski 
MigrationErrordbmm::MigrationError84*b1cdbd2cSJim Jagielski         MigrationError(
85*b1cdbd2cSJim Jagielski                 const MigrationErrorType _eType,
86*b1cdbd2cSJim Jagielski                 const ::com::sun::star::uno::Any& _rCaughtException )
87*b1cdbd2cSJim Jagielski             :eType( _eType )
88*b1cdbd2cSJim Jagielski             ,aCaughtException( _rCaughtException )
89*b1cdbd2cSJim Jagielski         {
90*b1cdbd2cSJim Jagielski         }
91*b1cdbd2cSJim Jagielski 
MigrationErrordbmm::MigrationError92*b1cdbd2cSJim Jagielski         MigrationError(
93*b1cdbd2cSJim Jagielski                 const MigrationErrorType _eType,
94*b1cdbd2cSJim Jagielski                 const ::rtl::OUString& _rDetail )
95*b1cdbd2cSJim Jagielski             :eType( _eType )
96*b1cdbd2cSJim Jagielski         {
97*b1cdbd2cSJim Jagielski             impl_constructDetails( _rDetail );
98*b1cdbd2cSJim Jagielski         }
99*b1cdbd2cSJim Jagielski 
MigrationErrordbmm::MigrationError100*b1cdbd2cSJim Jagielski         MigrationError(
101*b1cdbd2cSJim Jagielski                 const MigrationErrorType _eType,
102*b1cdbd2cSJim Jagielski                 const ::rtl::OUString& _rDetail,
103*b1cdbd2cSJim Jagielski                 const ::com::sun::star::uno::Any& _rCaughtException )
104*b1cdbd2cSJim Jagielski             :eType( _eType )
105*b1cdbd2cSJim Jagielski             ,aCaughtException( _rCaughtException )
106*b1cdbd2cSJim Jagielski         {
107*b1cdbd2cSJim Jagielski             impl_constructDetails( _rDetail );
108*b1cdbd2cSJim Jagielski         }
109*b1cdbd2cSJim Jagielski 
MigrationErrordbmm::MigrationError110*b1cdbd2cSJim Jagielski         MigrationError(
111*b1cdbd2cSJim Jagielski                 const MigrationErrorType _eType,
112*b1cdbd2cSJim Jagielski                 const ::rtl::OUString& _rDetail1,
113*b1cdbd2cSJim Jagielski                 const ::rtl::OUString& _rDetail2 )
114*b1cdbd2cSJim Jagielski             :eType( _eType )
115*b1cdbd2cSJim Jagielski         {
116*b1cdbd2cSJim Jagielski             impl_constructDetails( _rDetail1, _rDetail2 );
117*b1cdbd2cSJim Jagielski         }
118*b1cdbd2cSJim Jagielski 
MigrationErrordbmm::MigrationError119*b1cdbd2cSJim Jagielski         MigrationError(
120*b1cdbd2cSJim Jagielski                 const MigrationErrorType _eType,
121*b1cdbd2cSJim Jagielski                 const ::rtl::OUString& _rDetail1,
122*b1cdbd2cSJim Jagielski                 const ::rtl::OUString& _rDetail2,
123*b1cdbd2cSJim Jagielski                 const ::com::sun::star::uno::Any& _rCaughtException )
124*b1cdbd2cSJim Jagielski             :eType( _eType )
125*b1cdbd2cSJim Jagielski             ,aCaughtException( _rCaughtException )
126*b1cdbd2cSJim Jagielski         {
127*b1cdbd2cSJim Jagielski             impl_constructDetails( _rDetail1, _rDetail2 );
128*b1cdbd2cSJim Jagielski         }
129*b1cdbd2cSJim Jagielski 
MigrationErrordbmm::MigrationError130*b1cdbd2cSJim Jagielski         MigrationError(
131*b1cdbd2cSJim Jagielski                 const MigrationErrorType _eType,
132*b1cdbd2cSJim Jagielski                 const ::rtl::OUString& _rDetail1,
133*b1cdbd2cSJim Jagielski                 const ::rtl::OUString& _rDetail2,
134*b1cdbd2cSJim Jagielski                 const ::rtl::OUString& _rDetail3,
135*b1cdbd2cSJim Jagielski                 const ::com::sun::star::uno::Any& _rCaughtException )
136*b1cdbd2cSJim Jagielski             :eType( _eType )
137*b1cdbd2cSJim Jagielski             ,aCaughtException( _rCaughtException )
138*b1cdbd2cSJim Jagielski         {
139*b1cdbd2cSJim Jagielski             impl_constructDetails( _rDetail1, _rDetail2, _rDetail3 );
140*b1cdbd2cSJim Jagielski         }
141*b1cdbd2cSJim Jagielski 
MigrationErrordbmm::MigrationError142*b1cdbd2cSJim Jagielski         MigrationError(
143*b1cdbd2cSJim Jagielski                 const MigrationErrorType _eType,
144*b1cdbd2cSJim Jagielski                 const ::rtl::OUString& _rDetail1,
145*b1cdbd2cSJim Jagielski                 const ::rtl::OUString& _rDetail2,
146*b1cdbd2cSJim Jagielski                 const ::rtl::OUString& _rDetail3 )
147*b1cdbd2cSJim Jagielski             :eType( _eType )
148*b1cdbd2cSJim Jagielski         {
149*b1cdbd2cSJim Jagielski             impl_constructDetails( _rDetail1, _rDetail2, _rDetail3 );
150*b1cdbd2cSJim Jagielski         }
151*b1cdbd2cSJim Jagielski 
152*b1cdbd2cSJim Jagielski     private:
impl_constructDetailsdbmm::MigrationError153*b1cdbd2cSJim Jagielski         void    impl_constructDetails(
154*b1cdbd2cSJim Jagielski                     const ::rtl::OUString& _rDetail1,
155*b1cdbd2cSJim Jagielski                     const ::rtl::OUString& _rDetail2 = ::rtl::OUString(),
156*b1cdbd2cSJim Jagielski                     const ::rtl::OUString& _rDetail3 = ::rtl::OUString()
157*b1cdbd2cSJim Jagielski                 )
158*b1cdbd2cSJim Jagielski         {
159*b1cdbd2cSJim Jagielski             if ( _rDetail1.getLength() ) aErrorDetails.push_back( _rDetail1 );
160*b1cdbd2cSJim Jagielski             if ( _rDetail2.getLength() ) aErrorDetails.push_back( _rDetail2 );
161*b1cdbd2cSJim Jagielski             if ( _rDetail3.getLength() ) aErrorDetails.push_back( _rDetail3 );
162*b1cdbd2cSJim Jagielski         }
163*b1cdbd2cSJim Jagielski 	};
164*b1cdbd2cSJim Jagielski 
165*b1cdbd2cSJim Jagielski //........................................................................
166*b1cdbd2cSJim Jagielski } // namespace dbmm
167*b1cdbd2cSJim Jagielski //........................................................................
168*b1cdbd2cSJim Jagielski 
169*b1cdbd2cSJim Jagielski #endif // DBACCESS_MIGRATIONERROR_HXX
170*b1cdbd2cSJim Jagielski 
171