Class: AdLint::Cc1::VersionedValue
Instance Attribute Summary
#ancestor
Instance Method Summary
collapse
#!, #!=, #%, #&, #*, #+, #+@, #-, #-@, #/, #<, #<<, #<=, #==, #>, #>=, #>>, #^, #_base, #ambiguous?, #array?, #composite?, #contain?, #definite?, #delete_descendants!, #descendants, #dup, #eql?, #exist?, #fork, #hash, #logical_and, #logical_or, #multiple?, #rollback!, #scalar?, #single_value_unified_with, #test_may_be_equal_to, #test_may_be_false, #test_may_be_greater_than, #test_may_be_less_than, #test_may_be_null, #test_may_be_true, #test_may_be_undefined, #test_may_not_be_equal_to, #test_must_be_equal_to, #test_must_be_false, #test_must_be_greater_than, #test_must_be_less_than, #test_must_be_null, #test_must_be_true, #test_must_be_undefined, #test_must_not_be_equal_to, #to_defined_value, #to_enum, #to_single_value, #transition, #undefined?, #|, #~
Methods inherited from Value
#!, #!=, #%, #&, #*, #+, #+@, #-, #-@, #/, #<, #<<, #<=, #==, #>, #>=, #>>, #^, #ambiguous?, #array?, #composite?, #contain?, #definite?, #dup, #eql?, #exist?, #hash, #logical_and, #logical_or, #multiple?, #scalar?, #single_value_unified_with, #test_may_be_equal_to, #test_may_be_false, #test_may_be_greater_than, #test_may_be_less_than, #test_may_be_null, #test_may_be_true, #test_may_be_undefined, #test_may_not_be_equal_to, #test_must_be_equal_to, #test_must_be_false, #test_must_be_greater_than, #test_must_be_less_than, #test_must_be_null, #test_must_be_true, #test_must_be_undefined, #test_must_not_be_equal_to, #to_defined_value, #to_enum, #to_single_value, #undefined?, #|, #~
#unique_sample
Constructor Details
#initialize(orig_val, tag) ⇒ VersionedValue
Returns a new instance of VersionedValue.
2530
2531
2532
2533
2534
2535
2536
|
# File 'lib/adlint/cc1/value.rb', line 2530
def initialize(orig_val, tag)
super(orig_val, nil, tag)
@version_controller = ValueVersionController.new(self)
end
|
Instance Method Details
#_orig_overwrite! ⇒ Object
2572
|
# File 'lib/adlint/cc1/value.rb', line 2572
alias :_orig_overwrite! :overwrite!
|
#begin_versioning ⇒ Object
2549
2550
2551
|
# File 'lib/adlint/cc1/value.rb', line 2549
def begin_versioning
@version_controller.begin_forking
end
|
#coerce_to(type) ⇒ Object
2608
2609
2610
|
# File 'lib/adlint/cc1/value.rb', line 2608
def coerce_to(type)
VersionedValue.new(to_single_value.coerce_to(type), _base.tag.dup)
end
|
#effective_values ⇒ Object
2612
2613
2614
|
# File 'lib/adlint/cc1/value.rb', line 2612
def effective_values
@version_controller ? @version_controller.current_values : [self]
end
|
#end_versioning ⇒ Object
2553
2554
2555
2556
|
# File 'lib/adlint/cc1/value.rb', line 2553
def end_versioning
@version_controller.end_forking
invalidate_memo!
end
|
#enter_versioning_group ⇒ Object
2538
2539
2540
|
# File 'lib/adlint/cc1/value.rb', line 2538
def enter_versioning_group
@version_controller.enter_new_versioning_group
end
|
#force_overwrite!(val) ⇒ Object
2581
2582
2583
2584
2585
2586
2587
|
# File 'lib/adlint/cc1/value.rb', line 2581
def force_overwrite!(val)
sval = val.to_single_value
@version_controller.original_value.overwrite!(sval, nil)
_orig_overwrite!(sval, nil)
invalidate_memo!
end
|
#invalidate_memo! ⇒ Object
2618
2619
2620
|
# File 'lib/adlint/cc1/value.rb', line 2618
def invalidate_memo!
forget_memo_of__to_single_value
end
|
#invert_domain! ⇒ Object
2602
2603
2604
2605
2606
|
# File 'lib/adlint/cc1/value.rb', line 2602
def invert_domain!
@version_controller.fork_current_version
super
invalidate_memo!
end
|
#leave_versioning_group(raise_complement) ⇒ Object
2542
2543
2544
2545
2546
2547
|
# File 'lib/adlint/cc1/value.rb', line 2542
def leave_versioning_group(raise_complement)
@version_controller.copy_current_version if raise_complement
@version_controller.merge_forked_versions
@version_controller.leave_current_versioning_group
invalidate_memo!
end
|
#narrow_domain!(op, ope_val) ⇒ Object
2589
2590
2591
2592
2593
|
# File 'lib/adlint/cc1/value.rb', line 2589
def narrow_domain!(op, ope_val)
@version_controller.fork_current_version
super
invalidate_memo!
end
|
#overwrite!(val, tag) ⇒ Object
2574
2575
2576
2577
2578
2579
|
# File 'lib/adlint/cc1/value.rb', line 2574
def overwrite!(val, tag)
@version_controller.fork_current_version
super
@version_controller.mark_current_versioning_group_as_sticky
invalidate_memo!
end
|
#rollback_all_versions! ⇒ Object
2563
2564
2565
2566
2567
2568
2569
2570
|
# File 'lib/adlint/cc1/value.rb', line 2563
def rollback_all_versions!
delete_descendants!
orig_val = @version_controller.original_value
@version_controller = nil
_orig_overwrite!(orig_val, TransitionTag.new)
@version_controller = ValueVersionController.new(self)
invalidate_memo!
end
|
#thin_latest_version!(with_rollback) ⇒ Object
2558
2559
2560
2561
|
# File 'lib/adlint/cc1/value.rb', line 2558
def thin_latest_version!(with_rollback)
@version_controller.thin_current_version(with_rollback)
invalidate_memo!
end
|
#widen_domain!(op, ope_val) ⇒ Object
2595
2596
2597
2598
2599
2600
|
# File 'lib/adlint/cc1/value.rb', line 2595
def widen_domain!(op, ope_val)
@version_controller.fork_current_version
super
@version_controller.mark_current_versioning_group_as_sticky
invalidate_memo!
end
|