collection_refl.cc

Go to the documentation of this file.
00001 /*
00002    The lestes compiler suite
00003    Copyright (C) 2002, 2003, 2004, 2005 Miroslav Tichy
00004    Copyright (C) 2002, 2003, 2004, 2005 Petr Zika
00005    Copyright (C) 2002, 2003, 2004, 2005 Vojtech Hala
00006    Copyright (C) 2002, 2003, 2004, 2005 Jiri Kosina
00007    Copyright (C) 2002, 2003, 2004, 2005 Pavel Sanda
00008    Copyright (C) 2002, 2003, 2004, 2005 Jan Zouhar
00009    Copyright (C) 2002, 2003, 2004, 2005 Rudolf Thomas
00010 
00011    This program is free software; you can redistribute it and/or modify
00012    it under the terms of the GNU General Public License as published by
00013    the Free Software Foundation; version 2 of the License.
00014 
00015    This program is distributed in the hope that it will be useful,
00016    but WITHOUT ANY WARRANTY; without even the implied warranty of
00017    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00018    GNU General Public License for more details.
00019 
00020    See the full text of the GNU General Public License version 2, and
00021    the limitations in the file doc/LICENSE.
00022 
00023    By accepting the license the licensee waives any and all claims
00024    against the copyright holder(s) related in whole or in part to the
00025    work, its use, and/or the inability to use it.
00026  
00027  */
00028 #include <lestes/std/collection_refl.hh>
00029 #include <lestes/std/reflect.hh>
00030 #include <lestes/std/pair.hh>
00031 #include <lestes/std/list.hh>
00032 
00033 /*! \file
00034   Defines all the static [cached] reflections for collections together with a
00035   method that initializes them.
00036 
00037   \author Rudo
00038 */
00039 
00040 package(lestes);
00041 package(std);
00042 
00043 typedef class_reflection::field_metadata        field_metadata;
00044 typedef class_reflection::field_metadata_list   field_metadata_list;
00045 
00046 ptr<object::reflection_list> collection_refl::list_simple;
00047 
00048 void collection_refl::list_simple_init( ptr<object::reflection_list> inherited )
00049 {
00050         ptr<field_metadata_list> l = field_metadata_list::create();
00051         l->push_back( field_metadata::create( "item", "simple" ) );
00052 
00053         // create a copy of base class's list and append our own item
00054         ptr<object::reflection_list> result = object::reflection_list::create(inherited);
00055         result->push_back( class_reflection::create( "list_of_simple", l ) );
00056 
00057         collection_refl::list_simple = result;
00058 }
00059 
00060 ptr<object::reflection_list> collection_refl::list_srp;
00061 
00062 void collection_refl::list_srp_init( ptr<object::reflection_list> inherited )
00063 {
00064         ptr<field_metadata_list> l = field_metadata_list::create();
00065         l->push_back( field_metadata::create( "item", "srp" ) );
00066 
00067         // create a copy of base class's list and append our own item
00068         ptr<object::reflection_list> result = object::reflection_list::create(inherited);
00069         result->push_back( class_reflection::create( "list_of_srp", l ) );
00070 
00071         collection_refl::list_srp = result;
00072 }
00073 
00074 ptr<object::reflection_list> collection_refl::vector_simple;
00075 
00076 void collection_refl::vector_simple_init( ptr<object::reflection_list> inherited )
00077 {
00078         ptr<field_metadata_list> l = field_metadata_list::create();
00079         l->push_back( field_metadata::create( "item", "simple" ) );
00080 
00081         // create a copy of base class's list and append our own item
00082         ptr<object::reflection_list> result = object::reflection_list::create(inherited);
00083         result->push_back( class_reflection::create( "vector_of_simple", l ) );
00084 
00085         collection_refl::vector_simple = result;
00086 }
00087 
00088 ptr<object::reflection_list> collection_refl::vector_srp;
00089 
00090 void collection_refl::vector_srp_init( ptr<object::reflection_list> inherited )
00091 {
00092         ptr<field_metadata_list> l = field_metadata_list::create();
00093         l->push_back( field_metadata::create( "item", "srp" ) );
00094 
00095         // create a copy of base class's list and append our own item
00096         ptr<object::reflection_list> result = object::reflection_list::create(inherited);
00097         result->push_back( class_reflection::create( "vector_of_srp", l ) );
00098 
00099         collection_refl::vector_srp = result;
00100 }
00101 
00102 ptr<object::reflection_list> collection_refl::set_simple;
00103 
00104 void collection_refl::set_simple_init( ptr<object::reflection_list> inherited )
00105 {
00106         ptr<field_metadata_list> l = field_metadata_list::create();
00107         l->push_back( field_metadata::create( "item", "simple" ) );
00108 
00109         // create a copy of base class's list and append our own item
00110         ptr<object::reflection_list> result = object::reflection_list::create(inherited);
00111         result->push_back( class_reflection::create( "set_of_simple", l ) );
00112 
00113         collection_refl::set_simple = result;
00114 }
00115 
00116 ptr<object::reflection_list> collection_refl::set_srp;
00117 
00118 void collection_refl::set_srp_init( ptr<object::reflection_list> inherited )
00119 {
00120         ptr<field_metadata_list> l = field_metadata_list::create();
00121         l->push_back( field_metadata::create( "item", "srp" ) );
00122 
00123         // create a copy of base class's list and append our own item
00124         ptr<object::reflection_list> result = object::reflection_list::create(inherited);
00125         result->push_back( class_reflection::create( "set_of_srp", l ) );
00126 
00127         collection_refl::set_srp = result;
00128 }
00129 
00130 ptr<object::reflection_list> collection_refl::pair_simple_simple;
00131 
00132 void collection_refl::pair_simple_simple_init( ptr<object::reflection_list> inherited )
00133 {
00134         ptr<field_metadata_list> l = field_metadata_list::create();
00135         l->push_back( field_metadata::create( "first", "simple" ) );
00136         l->push_back( field_metadata::create( "second", "simple" ) );
00137 
00138         // create a copy of base class's list and append our own item
00139         ptr<object::reflection_list> result = object::reflection_list::create(inherited);
00140         result->push_back( class_reflection::create( "pair_simple_simple", l ) );
00141 
00142         collection_refl::pair_simple_simple = result;
00143 }
00144 
00145 ptr<object::reflection_list> collection_refl::pair_srp_simple;
00146 
00147 void collection_refl::pair_srp_simple_init( ptr<object::reflection_list> inherited )
00148 {
00149         ptr<field_metadata_list> l = field_metadata_list::create();
00150         l->push_back( field_metadata::create( "first", "srp" ) );
00151         l->push_back( field_metadata::create( "second", "simple" ) );
00152 
00153         // create a copy of base class's list and append our own item
00154         ptr<object::reflection_list> result = object::reflection_list::create(inherited);
00155         result->push_back( class_reflection::create( "pair_srp_simple", l ) );
00156 
00157         collection_refl::pair_srp_simple = result;
00158 }
00159 
00160 ptr<object::reflection_list> collection_refl::pair_simple_srp;
00161 
00162 void collection_refl::pair_simple_srp_init( ptr<object::reflection_list> inherited )
00163 {
00164         ptr<field_metadata_list> l = field_metadata_list::create();
00165         l->push_back( field_metadata::create( "first", "simple" ) );
00166         l->push_back( field_metadata::create( "second", "srp" ) );
00167 
00168         // create a copy of base class's list and append our own item
00169         ptr<object::reflection_list> result = object::reflection_list::create(inherited);
00170         result->push_back( class_reflection::create( "pair_simple_srp", l ) );
00171 
00172         collection_refl::pair_simple_srp = result;
00173 }
00174 
00175 ptr<object::reflection_list> collection_refl::pair_srp_srp;
00176 
00177 void collection_refl::pair_srp_srp_init( ptr<object::reflection_list> inherited )
00178 {
00179         ptr<field_metadata_list> l = field_metadata_list::create();
00180         l->push_back( field_metadata::create( "first", "srp" ) );
00181         l->push_back( field_metadata::create( "second", "srp" ) );
00182 
00183         // create a copy of base class's list and append our own item
00184         ptr<object::reflection_list> result = object::reflection_list::create(inherited);
00185         result->push_back( class_reflection::create( "pair_srp_srp", l ) );
00186 
00187         collection_refl::pair_srp_srp = result;
00188 }
00189 
00190 ptr<object::reflection_list> collection_refl::map_simple_simple;
00191 
00192 void collection_refl::map_simple_simple_init( ptr<object::reflection_list> inherited )
00193 {
00194         ptr<field_metadata_list> l = field_metadata_list::create();
00195         l->push_back( field_metadata::create( "item", "pair_simple_simple" ) );
00196 
00197         // create a copy of base class's list and append our own item
00198         ptr<object::reflection_list> result = object::reflection_list::create(inherited);
00199         result->push_back( class_reflection::create( "map_simple_simple", l ) );
00200 
00201         collection_refl::map_simple_simple = result;
00202 }
00203 
00204 ptr<object::reflection_list> collection_refl::map_srp_simple;
00205 
00206 void collection_refl::map_srp_simple_init( ptr<object::reflection_list> inherited )
00207 {
00208         ptr<field_metadata_list> l = field_metadata_list::create();
00209         l->push_back( field_metadata::create( "item", "pair_srp_simple" ) );
00210 
00211         // create a copy of base class's list and append our own item
00212         ptr<object::reflection_list> result = object::reflection_list::create(inherited);
00213         result->push_back( class_reflection::create( "map_srp_simple", l ) );
00214 
00215         collection_refl::map_srp_simple = result;
00216 }
00217 
00218 ptr<object::reflection_list> collection_refl::map_simple_srp;
00219 
00220 void collection_refl::map_simple_srp_init( ptr<object::reflection_list> inherited )
00221 {
00222         ptr<field_metadata_list> l = field_metadata_list::create();
00223         l->push_back( field_metadata::create( "item", "pair_simple_srp" ) );
00224 
00225         // create a copy of base class's list and append our own item
00226         ptr<object::reflection_list> result = object::reflection_list::create(inherited);
00227         result->push_back( class_reflection::create( "map_simple_srp", l ) );
00228 
00229         collection_refl::map_simple_srp = result;
00230 }
00231 
00232 ptr<object::reflection_list> collection_refl::map_srp_srp;
00233 
00234 void collection_refl::map_srp_srp_init( ptr<object::reflection_list> inherited )
00235 {
00236         ptr<field_metadata_list> l = field_metadata_list::create();
00237         l->push_back( field_metadata::create( "item", "pair_srp_srp" ) );
00238 
00239         // create a copy of base class's list and append our own item
00240         ptr<object::reflection_list> result = object::reflection_list::create(inherited);
00241         result->push_back( class_reflection::create( "map_srp_srp", l ) );
00242 
00243         collection_refl::map_srp_srp = result;
00244 }
00245 
00246 end_package(std);
00247 end_package(lestes);

Generated on Mon Feb 12 18:22:32 2007 for lestes by doxygen 1.5.1-20070107