Introducing mutators.
[shapes.git] / source / shapesvalue.cc
blobbd789f910d7851d15672011967863eccb6b1416a
1 #include "shapesvalue.h"
2 #include "shapesexceptions.h"
3 #include "consts.h"
4 #include "classtreemacros.h"
6 #if DISPATCHSTYLE == DISPATCHSTYLE_VOID
7 #include "globals.h"
8 #elif DISPATCHSTYLE == DISPATCHSTYLE_CASE
9 #include "astexpr.h"
10 #endif
12 using namespace Shapes;
15 Lang::Value::Value( )
16 : node_( 0 )
17 { }
19 Lang::Value::~Value( )
20 { }
22 DISPATCHBASEIMPL
24 Kernel::VariableHandle
25 Lang::Value::getField( const char * fieldID, const RefCountPtr< const Lang::Value > & selfRef ) const
27 throw Exceptions::ElementaryWithout( Exceptions::ElementaryWithout::VALUE, Exceptions::ElementaryWithout::FIELD, getTypeName( ) );
30 void
31 Lang::Value::show( std::ostream & os ) const
33 os << "(unable to display)" ;
37 RefCountPtr< const Lang::Value >
38 Lang::Value::transformed( const Shapes::Transform & transform, Kernel::ValueRef self ) const
40 throw Exceptions::CoreTypeMismatch( strrefdup( "<transform>" ), 1, this->getTypeName( ), Shapes::SEVERAL_TYPES );
43 RefCountPtr< const Lang::Value >
44 Lang::Value::transformed( const Lang::Transform3D & transform, Kernel::ValueRef self ) const
46 throw Exceptions::CoreTypeMismatch( strrefdup( "<transform3D>" ), 1, this->getTypeName( ), Shapes::SEVERAL_TYPES );
50 RefCountPtr< const char >
51 Lang::Value::getTypeName( ) const
53 return this->getClass( )->getPrettyName( );
57 DISPATCHIMPL( NoOperatorOverloadValue );
59 DISPATCHIMPL( NoOperatorOverloadGeometric2D );
62 //RefCountPtr< const Lang::Class > Lang::NoOperatorOverloadValue::TypeID( new Lang::SystemFinalClass( strrefdup( "NonDispatching" ) ) );
63 //TYPEINFOIMPL( NoOperatorOverloadValue );
65 RefCountPtr< const Lang::Class > Lang::Geometric2D::TypeID = NullPtr< const Lang::Class >( ); /* The value is set in main */
66 TYPEINFOIMPL( Geometric2D );
68 RefCountPtr< const Lang::Class > Lang::Geometric3D::TypeID = NullPtr< const Lang::Class >( ); /* The value is set in main */
69 TYPEINFOIMPL( Geometric3D );
72 Kernel::VariableHandle
73 Helpers::newValHandle( const Lang::Value * val )
75 return Kernel::VariableHandle( new Kernel::Variable( RefCountPtr< const Lang::Value >( val ) ) );