/*
* Copyright 2013 Guidewire Software, Inc.
*/
package gw.lang.parser;
import gw.config.CommonServices;
public interface ILanguageLevel
{
boolean isStandard();
static class Util {
private static Boolean g_standardGosu = null;
private static Boolean g_dynamicType = null;
public static void reset() {
g_standardGosu = null;
}
public static boolean STANDARD_GOSU()
{
return g_standardGosu == null
? g_standardGosu = CommonServices.getEntityAccess().getLanguageLevel().isStandard()
: g_standardGosu;
}
public static boolean DYNAMICE_TYPE()
{
return true;
// g_dynamicType == null
// ? g_dynamicType = STANDARD_GOSU() || System.getProperty( "gosu.dynamic", null ) != null
// : g_standardGosu;
}
}
//## todo: These all should be implied by the answer to isStandard() above... better, just stop supporting this crap
boolean allowNonLiteralArgsForJavaAnnotations();
boolean allowAllImplicitCoercions();
boolean supportsNakedCatchStatements();
boolean supportHistoricalJavaAnnotationConstructors();
}