Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Hello, I need your help to work on the comment sections: AddressBook import java.util.ArrayList; import java.util.List; public class AddressBook { //Field for the list of

Hello,

I need your help to work on the comment sections:

AddressBook

import java.util.ArrayList;

import java.util.List;

public class AddressBook {

//Field for the list of addresses

// List goes here

// Constructor

public Address add(Address addr) {

// add the address to the list

//it want us to return an address so let's return the one they gave us

return addr;

}

public Address get(int index) {

// get the "index" from the list

// Check that the list has an item that index (i.e. index < size)

// get it and return it

return null;

}

public List

getAll() {

// return a copy of the list - see the coding standards

return new ArrayList<>();

}

public Address update(int index, Address addr) {

// check index < size

// update that element in the list

return addr;

}

public Address remove(int index) {

// check index is < size

// remove the element and return it

return null;

}

}

CommandReader

package ict4300.week5;

import java.io.PrintWriter;

import java.io.Reader;

import java.util.ArrayList;

import java.util.List;

import java.util.Scanner;

public class CommandReader {

private static final int LENGTH = 7;

private final Scanner scanner;

private final PrintWriter output;

public CommandReader(Reader input, PrintWriter output) {

scanner = new Scanner(input);

scanner.useDelimiter(System.lineSeparator());

this.output = output;

}

public Command readNext() {

String command;

do {

output.print("Please enter the command [create, get, list, update, remove, exit]: ");

output.flush();

command = scanner.next();

if (command.toLowerCase().equals("list")) {

return new ListAddresses();

}

if (command.toLowerCase().equals("get")) {

return new GetAddress(getNumber());

}

if (command.toLowerCase().equals("remove")) {

return new RemoveAddress(getNumber());

}

if (command.toLowerCase().equals("create")) {

return new CreateAddress(getArgs());

}

if (command.toLowerCase().equals("update")) {

return new UpdateAddress(getNumber(), getArgs());

}

} while (!command.toLowerCase().equals("exit"));

return null;

}

private List getArgs() {

List args = new ArrayList<>();

output.println("Please enter the address as name, street, city, state, zip, phone, email: ");

output.flush();

String line = scanner.next();

for (String arg : line.split(", *")) {

args.add(arg);

}

while (args.size() < LENGTH) {

args.add("");

}

return args;

}

private int getNumber() {

output.print("Which address? Please enter a number: ");

output.flush();

return scanner.nextInt();

}

}

CreateAddress

import java.util.List;

public class CreateAddress extends Command {

public CreateAddress(List args) {

// TODO Auto-generated constructor stub

// Create new address from args

// save it as a field

}

@Override

public String runCommand(AddressBook addressbook) {

// TODO Auto-generated method stub

// call addressBook.add with new address

//return Address.getAddress

return null;

}

}

UpdateAddress

import java.util.List;

public class UpdateAddress extends Command {

public UpdateAddress(int number, List args) {

// TODO Auto-generated constructor stub

}

@Override

public String runCommand(AddressBook addressbook) {

// TODO Auto-generated method stub

return null;

}

}

AddressBookMain

import java.io.InputStreamReader;

import java.io.PrintWriter;

public class AddressBookMain {

public static void main(String[] args) {

AddressBook addressBook = new AddressBook();

CommandReader commandReader =

new CommandReader(new InputStreamReader(System.in), newPrintWriter(System.out));

// loop indefinitely calling CommandReader.readNext()

// until that returns null

// when we have a Command from it we call runCommand(AddressBook)

// That returns a string so we should probably print it out so the user know what we did

}

}

AddressBookTest

import static org.junit.jupiter.api.Assertions.assertEquals;

import java.util.ArrayList;

import java.util.List;

import org.junit.jupiter.api.BeforeEach;

import org.junit.jupiter.api.Test;

class AddressBookTest {

private AddressBook addressBook;

@BeforeEach

public void setUp() {

addressBook = new AddressBook();

}

@Test

void testNewAddressBookHasSizeZero() {

// I want getAll on a new address book to return empty list

List

addresses = addressBook.getAll();

assertEquals(addresses.size(), 0);

}

@Test

void testAddress() {

List args = new ArrayList<>();

args.add("Wale");

Address addr = new Address(args);

Address added = addressBook.add(addr);

assertEquals(added, addr);

List

addresses = addressBook.getAll();

assertEquals(1, addresses.size());

assertEquals(addr, addressBook.get(0));

}

}

RemoveAddress

public class RemoveAddress extends Command {

public RemoveAddress(int number) {

// TODO Auto-generated constructor stub

}

@Override

public String runCommand(AddressBook addressbook) {

// TODO Auto-generated method stub

return null;

}

}

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access with AI-Powered Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Students also viewed these Databases questions