@Override
    public void readLine(String line) {
        if (line.startsWith("#") || line.isEmpty()) {
            return;
        }

        // In some cases, ARIN may have multiple results with different NetType values.  When that happens,
        //  we want to use the data from the entry with the data closest to the customer actually using the IP.
        if (line.startsWith("NetType:")) {
            prevNetworkType = currNetworkType;
            currNetworkType = NetworkType.getEnum(lineValue(line));
            if (null != currNetworkType && currNetworkType.isMoreSpecificThan(prevNetworkType)) {
                this.organization = null;
                this.countryCode = null;
            }
        }

        if((line.startsWith("Organization:") || line.startsWith("Customer:")) && this.organization == null) {
            this.organization = lineValue(line);
        }

        if(line.startsWith("Country:") && this.countryCode == null) {
            this.countryCode = lineValue(line);
        }

        if(line.startsWith("ResourceLink") && !line.contains("http")) {
            this.isRedirect = true;
            registryRedirect = findRegistryFromWhoisServer(lineValue(line));
        }
    }
@Test
    public void testRunFourMatches() throws Exception {
        ARINResponseParser parser = new ARINResponseParser();
        for (String line : FOUR_MATCH.split("\n")) {
            parser.readLine(line);
        }

        assertFalse(parser.isRedirect());
        assertNull(parser.getRegistryRedirect());

        assertEquals("BAZ", parser.getCountryCode());
        assertEquals("Reassigned Customer", parser.getOrganization());
    }