Revision 8 (by ahitrov@rambler.ru, 2010/03/29 11:46:38) Contenido UTF-8 core files
package Contenido::Link;

# ----------------------------------------------------------------------------
# Класс Связь
# Очень похож на документ за тем исключением, что не 
#  наследники этого класса не могут иметь дополнительных полей.
# ----------------------------------------------------------------------------

use strict;
use warnings;
use locale;

use base 'Contenido::Object';

use Contenido::Globals;

# ----------------------------------------------------------------------------
# Метод class_name() - возвращает имя класса
# ----------------------------------------------------------------------------
sub class_name
{
	return 'Связь';
}

sub class_description
{
	return 'Связь по умолчанию';
}

# клас реализации таблицы
sub class_table
{
	return 'SQL::LinkTable';
}

# ----------------------------------------------------------------------------
# Конструктор. Создает новый объект связи... 
#
# Формат использования:
#  Contenido::Link->new()
#  Contenido::Link->new($keeper)
#  Contenido::Link->new($keeper,$id)
# ----------------------------------------------------------------------------
sub new
{
	my ($proto, $keeper, $id) = @_;
	my $class = ref($proto) || $proto;
	my $self;

	if (defined($id) && ($id>0) && defined($keeper)) {
	        $self=$keeper->get_link_by_id($id, class=>$class);
	} else {
	        $self = {};
	        bless($self, $class);
	        $self->init();
	        $self->class($class);

	        $self->keeper($keeper)          if (ref $keeper);
	}
	return $self;
}

#базовая версия available_sources (возвращает все классы)
sub available_sources {
#	return $state->{available_documents};
	return [];
}

sub available_destinations {
	return [];
}

#sub _get_table {
#       return class_table->new();
#}

1;