Power set: Difference between revisions

m
no edit summary
mNo edit summary
mNo edit summary
Line 43:
add_element
importing
i_elementnew_element type any
returning
value(r_setnew_set) type ref to set,
 
remove_element
importing
i_element element_to_be_removed type any
returning
value(r_setnew_set) type ref to set,
 
contains_element
importing
i_element element_to_be_found type any
returning
value(r_contains) type abap_bool,
 
get_size
returning
value(r_sizesize) type int4,
 
is_equal
importing
i_set set_to_be_compared_with type ref to set
returning
value(r_is_equalequal) type abap_bool,
 
get_elements
exporting
e_elementselements type any table,
 
stringify
returning
value(r_stringstringified_set) type string.
endinterface.
 
Line 88:
constructor
importing
i_elementselements type stringtab optional,
 
build_powerset
returning
value(r_powersetpowerset) type ref to string_set.
 
 
Line 102:
class string_set implementation.
method constructor.
loop at i_elementselements into data(element).
me->set~add_element( element ).
endloop.
Line 109:
 
method set~add_element.
if not line_exists( me->elements[ table_line = i_elementnew_element ] ).
append i_elementnew_element to me->elements.
endif.
 
r_setnew_set = me.
endmethod.
 
 
method set~remove_element.
if line_exists( me->elements[ table_line = i_elementelement_to_be_removed ] ).
delete me->elements where table_line = i_elementelement_to_be_removed.
endif.
 
r_setnew_set = me.
endmethod.
 
Line 128:
method set~contains_element.
r_contains = cond abap_bool(
when line_exists( me->elements[ table_line = i_elementelement_to_be_found ] )
then abap_true
else abap_false ).
Line 135:
 
method set~get_size.
r_sizesize = lines( me->elements ).
endmethod.
 
 
method set~is_equal.
if i_setset_to_be_compared_with->get_size( ) ne me->set~get_size( ).
r_is_equalequal = abap_false.
 
return.
Line 147:
 
loop at me->elements into data(element).
if not i_setset_to_be_compared_with->contains_element( element ).
r_is_equalequal = abap_false.
 
return.
Line 154:
endloop.
 
r_is_equalequal = abap_true.
endmethod.
 
 
method set~get_elements.
e_elementselements = me->elements.
endmethod.
 
 
method set~stringify.
r_stringstringified_set = cond string(
when me->elements is initial
then `∅`
Line 179:
else |{ result }\{{ element }\}, | ) ) ).
 
r_stringstringified_set = replace(
val = r_stringstringified_set
regex = `, $`
with = ` }`).
Line 199:
endloop.
 
r_powersetpowerset = new string_set( powerset_elements ).
endmethod.
endclass.
Anonymous user