public static Class<?> getLiteral(String className, String literal) {
        LiteralAnalyzer analyzer = ANALYZERS.get( className );
        Class result = null;
        if ( analyzer != null ) {
            analyzer.validate( literal );
            result = analyzer.getLiteral();
        }
        return result;
    }
@Test
    public void testUnderscorePlacement2() {

        // Invalid: cannot put underscores
        // adjacent to a decimal point
        assertThat( getLiteral( float.class.getCanonicalName(), "3_.1415F" ) ).isNull();

        // Invalid: cannot put underscores
        // adjacent to a decimal point
        assertThat( getLiteral( float.class.getCanonicalName(), "3._1415F" ) ).isNull();

        // Invalid: cannot put underscores
        // prior to an L suffix
        assertThat( getLiteral( long.class.getCanonicalName(), "999_99_9999_L" ) ).isNull();

        // OK (decimal literal)
        assertThat( getLiteral( int.class.getCanonicalName(), "5_2" ) ).isNotNull();

        // Invalid: cannot put underscores
        // At the end of a literal
        assertThat( getLiteral( int.class.getCanonicalName(), "52_" ) ).isNull();

        // OK (decimal literal)
        assertThat( getLiteral( int.class.getCanonicalName(), "5_______2" ) ).isNotNull();

        // Invalid: cannot put underscores
        // in the 0x radix prefix
        assertThat( getLiteral( int.class.getCanonicalName(), "0_x52" ) ).isNull();

        // Invalid: cannot put underscores
        // at the beginning of a number
        assertThat( getLiteral( int.class.getCanonicalName(), "0x_52" ) ).isNull();

        // OK (hexadecimal literal)
        assertThat( getLiteral( int.class.getCanonicalName(), "0x5_2" ) ).isNotNull();

        // Invalid: cannot put underscores
        // at the end of a number
        assertThat( getLiteral( int.class.getCanonicalName(), "0x52_" ) ).isNull();
    }