1 #####################################################################
3 # the Perl::Tidy::VerticalAligner::Alignment class holds information
4 # on a single column being aligned
6 #####################################################################
7 package Perl::Tidy::VerticalAligner::Alignment;
10 our $VERSION = '20190601';
16 # _column # the current column number
17 # _starting_column # column number when created
18 # _matching_token # what token we are matching
19 # _starting_line # the line index of creation
21 # the most recent line to use it
23 # _serial_number # unique number for this alignment
27 starting_column => undef,
28 matching_token => undef,
29 starting_line => undef,
31 saved_column => undef,
32 serial_number => undef,
35 # class population count
38 sub get_count { return $_count }
39 sub _increment_count { return ++$_count }
40 sub _decrement_count { return --$_count }
45 my ( $caller, %arg ) = @_;
46 my $caller_is_obj = ref($caller);
47 my $class = $caller_is_obj || $caller;
49 my $self = bless {}, $class;
51 foreach my $key ( keys %default_data ) {
52 my $_key = '_' . $key;
53 if ( exists $arg{$key} ) { $self->{$_key} = $arg{$key} }
54 elsif ($caller_is_obj) { $self->{$_key} = $caller->{$_key} }
55 else { $self->{$_key} = $default_data{$_key} }
57 $self->_increment_count();
63 $self->_decrement_count();
67 sub get_column { my $self = shift; return $self->{_column} }
69 sub get_starting_column {
71 return $self->{_starting_column};
73 sub get_matching_token { my $self = shift; return $self->{_matching_token} }
74 sub get_starting_line { my $self = shift; return $self->{_starting_line} }
75 sub get_ending_line { my $self = shift; return $self->{_ending_line} }
76 sub get_serial_number { my $self = shift; return $self->{_serial_number} }
78 sub set_column { my ( $self, $val ) = @_; $self->{_column} = $val; return }
80 sub set_starting_column {
81 my ( $self, $val ) = @_;
82 $self->{_starting_column} = $val;
86 sub set_matching_token {
87 my ( $self, $val ) = @_;
88 $self->{_matching_token} = $val;
92 sub set_starting_line {
93 my ( $self, $val ) = @_;
94 $self->{_starting_line} = $val;
99 my ( $self, $val ) = @_;
100 $self->{_ending_line} = $val;
104 sub increment_column {
105 my ( $self, $val ) = @_;
106 $self->{_column} += $val;
112 $self->{_saved_column} = $self->{_column};
118 $self->{_column} = $self->{_saved_column};