/*
* Copyright 2013 Guidewire Software, Inc.
*/
package gw.lang.reflect.gs;
import gw.lang.reflect.IDefaultTypeLoader;
public enum ClassType
{
Enhancement,
Program,
Template,
Eval,
Class,
Interface,
Structure,
Enum,
JavaClass,
Unknown
;
public boolean isJava() {
return this == JavaClass;
}
public boolean isGosu() {
return
this == Enhancement ||
this == Program ||
this == Template ||
this == Eval ||
this == Class ||
this == Interface ||
this == Structure ||
this == Enum;
}
public static ClassType getFromFileName(String name) {
if (name.endsWith( IDefaultTypeLoader.DOT_JAVA_EXTENSION)) {
return JavaClass;
}
if (name.endsWith( GosuClassTypeLoader.GOSU_ENHANCEMENT_FILE_EXT )) {
return Enhancement;
}
if (name.endsWith( GosuClassTypeLoader.GOSU_PROGRAM_FILE_EXT )) {
return Program;
}
if (name.endsWith( GosuClassTypeLoader.GOSU_TEMPLATE_FILE_EXT )) {
return Template;
}
if (name.endsWith( GosuClassTypeLoader.GOSU_CLASS_FILE_EXT) || name.endsWith( ".gr" ) || name.endsWith( ".grs" )) {
return Class;
}
return Unknown;
}
public String getExt()
{
switch( this )
{
case Class:
return GosuClassTypeLoader.GOSU_CLASS_FILE_EXT;
case Program:
return GosuClassTypeLoader.GOSU_PROGRAM_FILE_EXT;
case Enhancement:
return GosuClassTypeLoader.GOSU_ENHANCEMENT_FILE_EXT;
case Template:
return GosuClassTypeLoader.GOSU_TEMPLATE_FILE_EXT;
default:
return "";
}
}
}