package org.atea.nlptools.macroniser.util;

/**
 * Class for character testing methods
 * @author University of Waikato - Te Whare Wānanga o Waikato
 * @version 1.0
 * @since   2014-11-24 
 */
public class CharacterUtil
{
    /** to see is th
     * Testse char passed in is punctuation.
     * @param char char to test for punctuation
     * @return boolean is punctuation
     */
    public static boolean isPunctuation(char c)
    {
        switch (c)
        {
            case '!':
                return true;
            case '"':
                return true;
            case '#':
                return true;
            case '$':
                return true;
            case '%':
                return true;
            case '&':
                return true;
            case '\'':
                return true;
            case '(':
                return true;
            case ')':
                return true;
            case '*':
                return true;
            case '+':
                return true;
            case ',':
                return true;
            case '-':
                return true;
            case '.':
                return true;
            case '/':
                return true;
            case ':':
                return true;
            case ';':
                return true;
            case '<':
                return true;
            case '=':
                return true;
            case '>':
                return true;
            case '?':
                return true;
            case '@':
                return true;
            case '[':
                return true;
            case '\\':
                return true;
            case ']':
                return true;
            case '^':
                return true;
            case '_':
                return true;
            case '`':
                return true;
            case '{':
                return true;
            case '|':
                return true;
            case '}':
                return true;
            case '~':
                return true;
            default:
                return false;
        }
    }

     /**
     * Tests to see is the char passed in is letter or digit or connector.
     * @param char char to test for letter or digit or connector
     * @return boolean is letter or digit or connector.
     */
    public static boolean isLetterOrDigitOrConnector(char c) {
        return Character.isLetterOrDigit(c) || isConnectorPunctuation(c);
    }

   
    private static boolean isConnectorPunctuation(char c)
    {
        switch (c)
        {
            case '-': return true;
            case '_': return true;
            default: return false;
        }
    }

}
