/************************************************************** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ #ifndef ARY_IDL_I_CE_HXX #define ARY_IDL_I_CE_HXX // BASE CLASSES #include // USED SERVICES #include #include #include namespace ary { namespace idl { /** @resp Base class for all IDL code entities. A @->CodeEntity is a namespace, type, data or function, which occurs in the parsed UNO IDL code and is described and/or commented within the Autodoc repository. This is a storage base class, where more special classes are derived from. */ class CodeEntity : public ary::Entity { public: // LIFECYCLE virtual ~CodeEntity(); // OPERATION // INQUIRY Ce_id CeId() const { return Ce_id(Id()); } const String & LocalName() const; Ce_id NameRoom() const; Ce_id Owner() const; E_SightLevel SightLevel() const; const ary::doc::Documentation & Docu() const; const Ce_2s & Secondaries() const; static const CodeEntity & Null_(); // ACCESS void Set_Docu( DYN ary::doc::Node & pass_data ); Ce_2s & Secondaries(); protected: CodeEntity(); private: // Locals virtual const String & inq_LocalName() const = 0; virtual Ce_id inq_NameRoom() const = 0; virtual Ce_id inq_Owner() const = 0; virtual E_SightLevel inq_SightLevel() const = 0; // DATA ary::doc::Documentation aDocu; Dyn p2s; }; // IMPLEMENTATION inline const String & CodeEntity::LocalName() const { return inq_LocalName(); } inline Ce_id CodeEntity::NameRoom() const { return inq_NameRoom(); } inline Ce_id CodeEntity::Owner() const { return inq_Owner(); } inline E_SightLevel CodeEntity::SightLevel() const { return inq_SightLevel(); } inline const ary::doc::Documentation & CodeEntity::Docu() const { return aDocu; } inline void CodeEntity::Set_Docu(DYN ary::doc::Node & pass_data) { aDocu.Set_Data(pass_data); } } // namespace idl } // namespace ary #endif