/* * Copyright (c) 2011-2015 The original author or authors * ------------------------------------------------------ * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * and Apache License v2.0 which accompanies this distribution. * * The Eclipse Public License is available at * http://www.eclipse.org/legal/epl-v10.html * * The Apache License v2.0 is available at * http://www.opensource.org/licenses/apache2.0.php * * You may elect to redistribute this code under either of these licenses. */ package io.vertx.core.cli.converters; /** * A converter for character. Unlike other primitive types, characters cannot be created using 'valueOf'. Notice that * only input having a length of 1 can be converted to characters. Other inputs are rejected. * * @author Clement Escoffier <clement@apache.org> */ public final class CharacterConverter implements Converter<Character> { /** * The converter. */ public static final CharacterConverter INSTANCE = new CharacterConverter(); private CharacterConverter() { // No direct instantiation } @Override public Character fromString(String input) throws IllegalArgumentException { if (input == null) { throw new NullPointerException("input must not be null"); } if (input.length() != 1) { throw new IllegalArgumentException("The input string \"" + input + "\" cannot be converted to a " + "character. The input's length must be 1"); } return input.toCharArray()[0]; } }