Question: Listing 1:- Imperative programing paradigm code sample: import java.io.IOException; import java.nio.file.*; import java.util.*; import java.util.regex.Pattern; public class OrderHandler { private static final String FILENAME =
Listing 1:- Imperative programing paradigm code sample:
import java.io.IOException;
import java.nio.file.*;
import java.util.*;
import java.util.regex.Pattern;
public class OrderHandler {
private static final String FILENAME = "data/deliveryitem.txt";
List
public OrderHandler() {
try {
data = Files.readAllLines( Paths.get( FILENAME ) );
} catch (IOException e) {
e.printStackTrace();
}
}
//display all order information except the heading text
void print( List> orderLst ) {
for (int i = 0; i
System.out.println( orderLst.get(i) );
}
}
//collect all orders and split them with '\'
List> collect(){
List> orderLst = new ArrayList();
for (int i = 0; i
if( !data.get(i).startsWith("PARCELITEM") ) {
String[] split = data.get(i).split( Pattern.quote("\\") );
orderLst.add( Arrays.asList( split ) );
}
}
return orderLst;
}
//compute the total payment of order placed
double computePaymnt( List> orderLst ) {
double sum = 0;
for (int i = 0; i
int count = orderLst.get(i).size();
double charge = Double.parseDouble( orderLst.get(i).get( count-1 ) );
sum += charge;
}
return sum;
}
//export to order object comprises name and charges only
List> orderLst ){
List
for (int i = 0; i
int count = orderLst.get(i).size();
String first = orderLst.get(i).get(0);
String last
= orderLst.get(i).get( count-1 );
items.add( new Item( first, last ) );
}
return items;
}
}
OVERVIEW Programming paradigms can be defined as programming styles in problem solving. In software programing languages, there are distinct programming paradigms and a set of programming concepts used in the platforms. In practice, imperative programming like procedural or object-oriented paradigms are widely used in various programming platforms. Likewise, the declarative programming such as functional programming and logic programming paradigms can also be available in modem programming languages. In this assignment, therefore, focuses on programming paradigms primarily imperativeand declarative-programming paradigms for a specific problem solving. REQUIREMENTS Given the following computing solution code in Task 1 and Task 2. They are mostly implemented imperatively so you are required to test the program to understand how it works and rewrite them using declarative programming approach. TASK 1: Consider the following order information in the given file. Filename: deliveryitem.txt. Analyse the imperative program code as shown in Listing 1. Adapt each of the programming methods using functional programming concepts. Your solution code should consider higher-order function, method references, functional interfaces or lambda expression, function pipelining, nullable object, collection of objects and etc
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
