public String extractFromEAN13()

in src/main/java/org/apache/commons/validator/routines/ISSNValidator.java [179:203]


    public String extractFromEAN13(final String ean13) {
        String input = ean13.trim();
        if (input.length() != EAN_ISSN_LEN ) {
            throw new IllegalArgumentException("Invalid length " + input.length() + " for '" + input + "'");
        }
        if (!input.startsWith(ISSN_PREFIX)) {
            throw new IllegalArgumentException("Prefix must be " + ISSN_PREFIX + " to contain an ISSN: '" + ean13 + "'");
        }
        final Object result = validateEan(input);
        if (result == null) {
            return null;
        }
        // Calculate the ISSN code
        input = result.toString();
        try {
            //CHECKSTYLE:OFF: MagicNumber
            final String issnBase = input.substring(3,10); // TODO: how to derive these
            //CHECKSTYLE:ON: MagicNumber
            final String checkDigit = ISSNCheckDigit.ISSN_CHECK_DIGIT.calculate(issnBase);
            final String issn = issnBase + checkDigit;
            return issn;
        } catch (final CheckDigitException e) { // Should not happen
            throw new IllegalArgumentException("Check digit error for '" + ean13 + "' - " + e.getMessage());
        }
    }