finish adding type constraints
[scpubgit/DX.git] / lib / DX / QueryState.pm
index b378783..cc438e7 100644 (file)
@@ -18,13 +18,13 @@ has proposition_sequence => (
   is => 'ro', isa => PropositionSequence, required => 1
 );
 
-has search_state => (
-  is => 'lazy', builder => sub {
-    $_[0]->new_search_state_for($_[0]->proposition_sequence)
-  },
+has search_process => (
+  is => 'lazy', isa => SearchProcess, builder => sub {
+    $_[0]->new_search_process_for($_[0]->proposition_sequence)
+  }, handles => { search_state => 'current_search_state' },
 );
 
-sub new_search_state_for {
+sub new_search_process_for {
   my ($self, $prop_seq) = @_;
   my @local_names = map { keys %{$_->introduced_names} }
                       @{$prop_seq->members};
@@ -59,20 +59,20 @@ sub with_additional_proposition {
   my ($self, $prop) = @_;
   my $prop_seq = $self->proposition_sequence
                       ->with_additional_proposition($prop);
-  my $sol_ss = $self->new_search_state_for($prop_seq)
+  my $sol_ss = $self->new_search_process_for($prop_seq)
                     ->find_solution;
   die "No solution\n" unless $sol_ss;
   $self->but(
     proposition_sequence => $prop_seq,
-    search_state => $sol_ss,
+    search_process => $sol_ss,
   );
 }
 
 sub with_forced_backtrack {
   my ($self) = @_;
-  my $next_ss = $self->search_state->find_next_solution;
+  my $next_ss = $self->search_process->find_next_solution;
   die "No next solution\n" unless $next_ss;
-  $self->but(search_state => $next_ss);
+  $self->but(search_process => $next_ss);
 }
 
 1;