
/*
    TEDDY - General graphics application library
    Copyright (C) 1999, 2000, 2001  Timo Suoranta
    tksuoran@cc.helsinki.fi

	This library is free software; you can redistribute it and/or
	modify it under the terms of the GNU Lesser General Public
	License as published by the Free Software Foundation; either
	version 2.1 of the License, or (at your option) any later version.

	This library is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
	Lesser General Public License for more details.

	You should have received a copy of the GNU Lesser General Public
	License along with this library; if not, write to the Free Software
	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/


#include "MixIn/Named.h"
#include <cstring>
#include <cstdio>


//!  Named constructor without parameters
Named::Named(){
//	printf( "Named::Named 1...\n" );
	name      = "unnamed";
	allocated = false;
}

//!  Named constructor with char * name parameter
Named::Named( char *name ):name(name),allocated(false){
//	printf( "Named::Named 2...\n" );
}

//!  Named constructor with const char * name; copies string
Named::Named( const char *name ){
  int len = strlen(name) + 2;
  this->name = new char[ len ];
  strcpy( this->name, name );
  allocated = true;
}

//!  Name accessor
char *Named::getName() const {
	return name;
}

//!  Name accessor for char * parameter
void Named::setName( char *name ){
	if( allocated == true ){
		delete [] this->name;
	}
	this->name      = name;
	this->allocated = false;
}

//!  Name accessor for const char * parameter; copies string
void Named::setName( const char *name ){
	if( allocated == true ){
		delete [] this->name; 
	}
	this->name = new char[ strlen(name) + 2 ];
	strcpy( this->name, name );
	allocated = true;
}

