package Edge; use strict; sub new { my ($class, %params) = @_; bless { '_strength' => $params{'strength'} || 1, '_length' => $params{'length'} || 1, '_vertex_1' => $params{'vertex_1'} || 0, '_vertex_2' => $params{'vertex_2'} || 0, '_label' => $params{'label'} || '', }, $class; } # new sub print_edge { print 'label=' , $_[0]->{'_label'} , "\n"; print 'strength=', $_[0]->{'_strength'}, "\n"; print 'length=' , $_[0]->{'_length'} , "\n"; print 'vertex_1=', $_[0]->{'_vertex_1'}->query_label(), "\n"; print 'vertex_2=', $_[0]->{'_vertex_2'}->query_label(), "\n"; } # print_edge # ------------------------------------------------------------------ # Set functions. sub set_strength { $_[0]->{_strength} = $_[1] if defined($_[1]); } # set_strength sub set_length { $_[0]->{_length} = $_[1] if defined($_[1]); } # set_length sub set_label { $_[0]->{_label} = $_[1] if defined($_[1]); } # set_label sub set_vertex_1 { $_[0]->{_vertex_1} = $_[1] if defined($_[1]); } # set_vertex_1 sub set_vertex_2 { $_[0]->{_vertex_2} = $_[1] if defined($_[1]); } # set_vertex_2 sub set_verteces { $_[0]->{_vertex_1} = $_[1] if defined($_[1]); $_[0]->{_vertex_2} = $_[2] if defined($_[2]); } # set_verteces # ------------------------------------------------------------------ # Query functions. sub query_strength { $_[0]->{_strength}; } # query_strength sub query_length { $_[0]->{_length}; } # query_length sub query_label { $_[0]->{_label}; } # query_label sub query_vertex_1 { $_[0]->{_vertex_1}; } # query_vertex_1 sub query_vertex_2 { $_[0]->{_vertex_2}; } # query_vertex_2 sub query_verteces { ( $_[0]->{_vertex_1}, $_[0]->{_vertex_2} ); } # query_verteces 1;