code: @Override
      public Locale unmarshal(String object) {
          
          String[] components = object.split("_", 3);
          
          final Locale result;
          
          if (components.length == 1) {
              result = new Locale(components[0]);
          } else if (components.length == 2) {
              result = new Locale(components[0], components[1]);
          } else if (components.length == 3) {
              result = new Locale(components[0], components[1], components[2]);
          } else {
              throw new IllegalArgumentException("Unable to unmarshall String to Locale: " + object);
          }
          return result;
      }
docs: {@inheritDoc}