public class Passport
{
    public static final String UNASSIGNED_STRING = "unassigned";

    public Passport ()
    {
    }

    public final void setBirthYear (int byr)
    {
        _byr = byr;
    }

    public final int getBirthYear ()
    {
        return _byr;
    }

    public final void setIssueYear (int iyr)
    {
        _iyr = iyr;
    }

    public final int getIssueYear ()
    {
        return _iyr;
    }

    public final void setExpirationYear (int eyr)
    {
        _eyr = eyr;
    }

    public final int getExpirationYear ()
    {
        return _eyr;
    }

    public final void setHeight (String hgt)
    {
        _hgt = hgt;
    }

    public final String getHeight ()
    {
        return _hgt;
    }

    public final void setHairColour (String hcl)
    {
        _hcl = hcl;
    }

    public final String getHairColour ()
    {
        return _hcl;
    }

    public final void setEyeColour (String ecl)
    {
        _ecl = ecl;
    }

    public final String getEyeColour ()
    {
        return _ecl;
    }

    public final void setPassportID (int pid)
    {
        _pid = pid;
    }

    public final int getPassportUD ()
    {
        return _pid;
    }

    public final void setCountryID (int cid)
    {
        _cid = cid;
    }

    public final int getCountryID ()
    {
        return _cid;
    }

    public final boolean isValid ()
    {
        return false;
    }

    @Override
    public String toString ()
    {
        return "Passport < byr:"+_byr+", iyr:"+_iyr+", eyr:"+_eyr+", hgt:"+_hgt+", hcl:"+_hcl+", ecl:"+_ecl+", pid:"+_pid+", cid:"+_cid+" >";
    }

    private int _byr = 0;
    private int _iyr = 0;
    private int _eyr = 0;
    private String _hgt = UNASSIGNED_STRING;
    private String _hcl = UNASSIGNED_STRING;
    private String _ecl = UNASSIGNED_STRING;
    private int _pid = 0;
    private int _cid = 0;
}
@@ -83,16 +83,66 @@
 gned%22;%0A%0A
+    public static final int UNASSIGNED_INT = -1;%0A%0A
     publ
@@ -1421,32 +1421,401 @@
 sValid ()%0A    %7B%0A
+        if ((_byr != UNASSIGNED_INT) && (_iyr != UNASSIGNED_INT))%0A        %7B%0A            if ((_eyr != UNASSIGNED_INT) && (_pid != UNASSIGNED_INT) && (_cid != UNASSIGNED_INT))%0A            %7B%0A                if (!UNASSIGNED_STRING.equals(_hgt) && !UNASSIGNED_STRING.equals(_hcl) && !UNASSIGNED_STRING.equals(_ecl))%0A                    return true;%0A            %7D%0A        %7D%0A%0A
         return f
@@ -1820,16 +1820,16 @@
  false;%0A
-
     %7D%0A%0A 
@@ -2045,25 +2045,38 @@
  int _byr = 
-0
+UNASSIGNED_INT
 ;%0A    privat
@@ -2084,25 +2084,38 @@
  int _iyr = 
-0
+UNASSIGNED_INT
 ;%0A    privat
@@ -2127,17 +2127,30 @@
  _eyr = 
-0
+UNASSIGNED_INT
 ;%0A    pr
@@ -2301,17 +2301,30 @@
  _pid = 
-0
+UNASSIGNED_INT
 ;%0A    pr
@@ -2344,8 +2344,21 @@
 d = 
-0
+UNASSIGNED_INT
 ;%0A%7D

Update Passport.java