Question: I don't know why my normalize method is not passing the public test. public class Passport { private String firstname; private String middlename; private String
I don't know why my normalize method is not passing the public test.
public class Passport
private String firstname;
private String middlename;
private String lastname;
private char separator ; Default separator
private StringBuffer stamps;
private static int objectCount ;
Constructor with firstname, middlename, and lastname
public PassportString firstname, String middlename, String lastname
this.firstname validateAndFormatfirstname;
this.middlename middlename.isBlank : validateAndFormatmiddlename; Check for blank middle name
this.lastname validateAndFormatlastname;
If any of the names are invalid, do not proceed with initialization
if thisfirstname null this.lastname null
return;
this.stamps new StringBuffer; Initialize stamps
objectCount; Increment object count
Constructor with firstname and lastname only, middle name is empty
public PassportString firstname, String lastname
thisfirstname lastname; Call the threeargument constructor
Default constructor, uses default names
public Passport
thisSAMPLEFIRSTNAME "SAMPLEMIDDLENAME", "SAMPLELASTNAME"; Call the threeargument constructor
Copy constructor
public PassportPassport passport
this.firstname passport.firstname;
this.middlename passport.middlename;
this.lastname passport.lastname;
this.separator passport.separator;
this.stamps new StringBufferpassportstamps; Copy stamps
objectCount; Increment object count
toString method
@Override
public String toString
String result lastname separator firstname;
if middlename.isEmpty
result separator middlename;
return result;
Method to add a stamp to the passport
public Passport addStampString stamp
if stamp null && stamp.isBlank
stamps.appendstamp;
return this; Return the current object
Get a copy of the stamps
public StringBuffer getStamps
return new StringBufferstamps; Return a copy of the stamps
Get the separator
public char getSeparator
return separator;
Set the separator, ensuring the provided separator is valid
public boolean setSeparatorchar separator
if separator @ Character.isSpaceCharseparator Character.isLetterseparator
return false; Invalid separator
this.separator separator;
return true;
Equals method to compare two Passport objects
@Override
public boolean equalsObject obj
if this obj return true;
if obj null getClass obj.getClass return false;
Passport passport Passport obj;
return firstname.equalspassportfirstname &&
middlename.equalspassportmiddlename &&
lastname.equalspassportlastname;
CompareTo method to compare passports alphabetically
public int compareToPassport passport
int lastNameComparison lastname.compareToIgnoreCasepassportlastname;
if lastNameComparison return lastNameComparison;
int firstNameComparison firstname.compareToIgnoreCasepassportfirstname;
if firstNameComparison return firstNameComparison;
return middlename.compareToIgnoreCasepassportmiddlename;
Get the number of Passport objects created
public static int getNumberOfPassportObjects
return objectCount;
Reset the number of Passport objects created
public static void resetNumberOfPassportObjects
objectCount ;
Normalize the passport uppercase or lowercase
public static Passport normalizePassport passport, boolean uppercase
if passport null return null;
String newFirstName uppercase passport.firstname.toUpperCase : passport.firstname.toLowerCase;
String newMiddleName uppercase passport.middlename.toUpperCase : passport.middlename.toLowerCase;
String newLastName uppercase passport.lastname.toUpperCase : passport.lastname.toLowerCase;
Passport normalizedPassport new PassportnewFirstName newMiddleName, newLastName;
normalizedPassport.setSeparatorpassportgetSeparator; Preserve the separator
return normalizedPassport;
normalize
public static Passport normalizePassport passport,
boolean uppercase method will return null and perform no processing.
Parameters: square
passport Passport reference.
uppercase If true turn to uppercase; otherwise l
Driver
public class Driver
public static void mainString args
Passport.resetNumberOfPassportObjects;
Passport passport new Passportclaudia "I.", "smith";
System.out.printlnpassport;
Passport passport new PassportJohn "RoberTs";
System.out.printlnpassport;
Passport passport new Passport;
System.out.printlnpassport;
System.out.println;
passportaddStampSpain;
passportaddStampLondon;
System.out.printlnStamps for passport passportgetStamps;
passportsetSeparator#;
System.out.printlnpasspo
@Test
public v
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
