Fifth checkpoint
This commit is contained in:
parent
e040269cce
commit
5b8bb1168f
11
Filter.rb
Normal file
11
Filter.rb
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
class Filter
|
||||||
|
attr_accessor :value
|
||||||
|
attr_accessor :comparator
|
||||||
|
|
||||||
|
def initialize(value, comp)
|
||||||
|
@value = value
|
||||||
|
@comparator = comp
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
8
functional_functions.rb
Normal file
8
functional_functions.rb
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
def func_find_all(container_obj, attribute, filter_by)
|
||||||
|
filters = filter_by.map do |x|
|
||||||
|
"s.get#{attribute}() #{x.comparator} #{x.value}"
|
||||||
|
end
|
||||||
|
# TODO: Consider also having an "or" here
|
||||||
|
"return #{container_obj}.stream().filter(s -> #{filters.join "&&"}).collect(Collectors.toList());"
|
||||||
|
|
||||||
|
end
|
20
lol.rb
20
lol.rb
|
@ -1,6 +1,8 @@
|
||||||
require_relative 'find_algos'
|
require_relative 'find_algos'
|
||||||
require_relative 'sorting_algos'
|
require_relative 'sorting_algos'
|
||||||
require_relative 'Type'
|
require_relative 'Type'
|
||||||
|
require_relative 'functional_functions'
|
||||||
|
require_relative 'Filter'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -123,7 +125,7 @@ def construct_driver(class_name, parameters, methods, container_class, container
|
||||||
lol.add#{class_name}(tmp5);
|
lol.add#{class_name}(tmp5);
|
||||||
System.out.println(\"\");
|
System.out.println(\"\");
|
||||||
System.out.println(\"Some checkpoint\");
|
System.out.println(\"Some checkpoint\");
|
||||||
#{maggie.join "\n System.out.println(\"Some Checkpoint\"); \n"}
|
#{maggie.join "\n\n System.out.println(\"Some Checkpoint\"); \n\n"}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -227,6 +229,19 @@ container_methods = [
|
||||||
:name => "Name"
|
:name => "Name"
|
||||||
}],
|
}],
|
||||||
:method_type => find_best_with_extra_parameter("ferries", "Length", " > ", "#{name}", "Name", ".equals", "Name", "int")
|
:method_type => find_best_with_extra_parameter("ferries", "Length", " > ", "#{name}", "Name", ".equals", "Name", "int")
|
||||||
|
},
|
||||||
|
{
|
||||||
|
:return_type => "List<#{name}>",
|
||||||
|
:name => "findFerries",
|
||||||
|
:params => [{
|
||||||
|
:type => "int",
|
||||||
|
:name => "min",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
:type => "int",
|
||||||
|
:name => "max"
|
||||||
|
}],
|
||||||
|
:method_type => func_find_all("ferries", "Width", [Filter.new("min", ">="), Filter.new("max", "<=")])
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -243,7 +258,8 @@ another_another_file.close
|
||||||
another_file = File.open("TestDriver.java", "w")
|
another_file = File.open("TestDriver.java", "w")
|
||||||
another_file.puts(construct_driver name, params, [{:name => "smallFerries", :parameters => [{:type => "int"}], :print => true},
|
another_file.puts(construct_driver name, params, [{:name => "smallFerries", :parameters => [{:type => "int"}], :print => true},
|
||||||
{:name => "longFerry", :parameters => [{:type => "String"}], :print => true},
|
{:name => "longFerry", :parameters => [{:type => "String"}], :print => true},
|
||||||
{:name => "printHarbour", :parameters => [], :print => false}], "Harbour", [{:type => "String"}])
|
{:name => "printHarbour", :parameters => [], :print => false},
|
||||||
|
{:name => "findFerries", :parameters => [{:type => "int"}, {:type => "int"}], :print => true }], "Harbour", [{:type => "String"}])
|
||||||
another_file.close
|
another_file.close
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user