typedef FeatureReferenceHelper<FeatureSpecialized> SP; \
virtual void setReference( FeatureAbstract * sdes ) \
{ \
if( sdes==NULL ) \
{ \
\
if( SP::isReferenceSet() ) \
removeDependenciesFromReference(); \
SP::unsetReference(); \
} \
else \
{ \
\
SP::setReference(sdes); \
if( SP::isReferenceSet() ) \
addDependenciesFromReference(); \
} \
} \
virtual const FeatureAbstract * getReferenceAbstract( void ) const {return SP::getReference();} \
virtual FeatureAbstract * getReferenceAbstract( void ){return (FeatureAbstract*)SP::getReference();} \
bool isReferenceSet( void ) const { return SP::isReferenceSet(); } \
virtual void addDependenciesFromReference( void ); \
virtual void removeDependenciesFromReference( void )