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 "it_explicit.hxx" 30 31 32 // NOT FULLY DEFINED SERVICES 33 #include <cosv/tpl/processor.hxx> 34 #include <ary/idl/i_module.hxx> 35 #include <ary/idl/i_gate.hxx> 36 #include <ary/idl/ip_ce.hxx> 37 #include <ary/idl/ip_type.hxx> 38 #include "it_xnameroom.hxx" 39 40 41 42 namespace ary 43 { 44 namespace idl 45 { 46 47 48 ExplicitType::ExplicitType( const String & i_sName, 49 Type_id i_nXNameRoom, 50 Ce_id i_nModuleOfOccurrence, 51 const std::vector<Type_id> * 52 i_templateParameters ) 53 : Named_Type(i_sName), 54 nXNameRoom(i_nXNameRoom), 55 nModuleOfOccurrence(i_nModuleOfOccurrence), 56 pTemplateParameters(0) 57 { 58 if (i_templateParameters != 0) 59 pTemplateParameters = new std::vector<Type_id>(*i_templateParameters); 60 } 61 62 ExplicitType::~ExplicitType() 63 { 64 } 65 66 ClassId 67 ExplicitType::get_AryClass() const 68 { 69 return class_id; 70 } 71 72 void 73 ExplicitType::do_Accept( csv::ProcessorIfc & io_processor ) const 74 { 75 csv::CheckedCall(io_processor, *this); 76 } 77 78 void 79 ExplicitType::inq_Get_Text( StringVector & o_module, 80 String & o_name, 81 Ce_id & o_nRelatedCe, 82 int & o_nSequenceCount, 83 const Gate & i_rGate ) const 84 { 85 const ExplicitNameRoom & 86 rNameRoom = i_rGate.Types().Find_XNameRoom(nXNameRoom); 87 rNameRoom.Get_Text(o_module,o_name,o_nRelatedCe,o_nSequenceCount,i_rGate); 88 89 o_name = Name(); 90 } 91 92 const std::vector<Type_id> * 93 ExplicitType::inq_TemplateParameters() const 94 { 95 return pTemplateParameters.Ptr(); 96 } 97 98 99 } // namespace idl 100 } // namespace ary 101