org.apache.commons.validator.routines

## Class ISSNValidator

- java.lang.Object
- - org.apache.commons.validator.routines.ISSNValidator

- All Implemented Interfaces:
    Serializable

      public class ISSNValidator
      extends Object
      implements Serializable

  International Standard Serial Number (ISSN) is an eight-digit serial number used to uniquely identify a serial publication.

       The format is:

       ISSN dddd-dddC
       where:
       d = decimal digit (0-9)
       C = checksum (0-9 or X)

       The checksum is formed by adding the first 7 digits multiplied by
       the position in the entire number (counting from the right).

       For example, abcd-efg would be 8a + 7b + 6c + 5d + 4e +3f +2g.
       The check digit is modulus 11, where the value 10 is represented by 'X'
       For example:
       ISSN 0317-8471
       ISSN 1050-124X

       This class strips off the 'ISSN ' prefix if it is present before passing
       the remainder to the checksum routine.

  Note: the `isValid(String)` and `validate(String)` methods strip off any leading or trailing spaces before doing the validation. To ensure that only a valid code (without 'ISSN ' prefix) is passed to a method, use the following code:

       Object valid = validator.validate(input);
       if (valid != null) {
          some_method(valid.toString());
       }

  Since:
    1.5.0
  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `ISSNValidator()`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `String` | `convertToEAN13(String issn, String suffix)` Convert an ISSN code to an EAN-13 code.
    `String` | `extractFromEAN13(String ean13)` Extract an ISSN code from an ISSN-EAN-13 code.
    `static ISSNValidator` | `getInstance()` Return a singleton instance of the ISSN validator
    `boolean` | `isValid(String code)` Check the code is a valid ISSN code after any transformation by the validate routine.
    `Object` | `validate(String code)` Check the code is valid ISSN code.
    `Object` | `validateEan(String code)` Check the code is a valid EAN code.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### ISSNValidator

          public ISSNValidator()

  - ### Method Detail

    - #### getInstance

          public static ISSNValidator getInstance()

      Return a singleton instance of the ISSN validator
      Returns:
        A singleton instance of the ISSN validator.

    - #### validateEan

          public Object validateEan(String code)

      Check the code is a valid EAN code.

      If valid, this method returns the EAN code

      Parameters:
        `code` - The code to validate.
      Returns:
        A valid EAN code if valid, otherwise `null`.
      Since:
        1.7

    - #### isValid

          public boolean isValid(String code)

      Check the code is a valid ISSN code after any transformation by the validate routine.
      Parameters:
        `code` - The code to validate.
      Returns:
        `true` if a valid ISSN code, otherwise `false`.

    - #### validate

          public Object validate(String code)

      Check the code is valid ISSN code.

      If valid, this method returns the ISSN code with the 'ISSN ' prefix removed (if it was present)

      Parameters:
        `code` - The code to validate.
      Returns:
        A valid ISSN code if valid, otherwise `null`.

    - #### convertToEAN13

          public String convertToEAN13(String issn,
                                       String suffix)

      Convert an ISSN code to an EAN-13 code.

      This method requires a valid ISSN code. It may contain a leading 'ISSN ' prefix, as the input is passed through the `validate(String)` method.

      Parameters:
        `issn` - The ISSN code to convert
        `suffix` - the two digit suffix, e.g. "00"
      Returns:
        A converted EAN-13 code or `null` if the input ISSN code is not valid

    - #### extractFromEAN13

          public String extractFromEAN13(String ean13)

      Extract an ISSN code from an ISSN-EAN-13 code.

      This method requires a valid ISSN-EAN-13 code with NO formatting characters. That is a 13 digit EAN-13 code with the '977' prefix

      Parameters:
        `ean13` - The ISSN code to convert
      Returns:
        A valid ISSN code or `null` if the input ISSN EAN-13 code is not valid
      Since:
        1.7

Copyright © 2002–2020 The Apache Software Foundation. All rights reserved.