1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 
28 #include <precomp.h>
29 #include "i_reposypart.hxx"
30 
31 
32 // NOT FULLY DEFINED SERVICES
33 #include <ary/idl/i_namelookup.hxx>
34 #include <idl_internalgate.hxx>
35 #include "ia_ce.hxx"
36 #include "ia_type.hxx"
37 #include "i2s_calculator.hxx"
38 #include "is_ce.hxx"
39 #include "is_type.hxx"
40 
41 
42 
43 
44 namespace ary
45 {
46 namespace idl
47 {
48 
49 
50 DYN InternalGate &
51 InternalGate::Create_Partition_(RepositoryCenter & i_center)
52 {
53     return *new RepositoryPartition(i_center);
54 }
55 
56 
57 
58 RepositoryPartition::RepositoryPartition( RepositoryCenter & i_repository )
59     :   pCenter(&i_repository),
60         pCes(0),
61         pTypes(0),
62         pNamesDictionary(new NameLookup)
63 {
64     pTypes = new TypeAdmin;
65     pCes = new CeAdmin(*pNamesDictionary, *pTypes);
66 }
67 
68 RepositoryPartition::~RepositoryPartition()
69 {
70 }
71 
72 void
73 RepositoryPartition::Calculate_AllSecondaryInformation(
74                             const String &      i_devman_reffilepath )
75 {
76     // KORR_FUTURE
77     //  Forward the options from here.
78 
79     SecondariesCalculator
80         secalc(*pCes,*pTypes);
81 
82     secalc.CheckAllInterfaceBases();
83     secalc.Connect_Types2Ces();
84     secalc.Gather_CrossReferences();
85 
86     if ( NOT i_devman_reffilepath.empty() )
87     {
88         secalc.Make_Links2DeveloperManual(i_devman_reffilepath);
89     }
90 }
91 
92 const CePilot &
93 RepositoryPartition::Ces() const
94 {
95     return *pCes;
96 }
97 
98 const TypePilot &
99 RepositoryPartition::Types() const
100 {
101     return *pTypes;
102 }
103 
104 CePilot &
105 RepositoryPartition::Ces()
106 {
107     return *pCes;
108 }
109 
110 TypePilot &
111 RepositoryPartition::Types()
112 {
113     return *pTypes;
114 }
115 
116 
117 
118 }   //  namespace idl
119 }   //  namespace ary
120