/*
* Copyright 2001-2008 Geert Bevin <gbevin[remove] at uwyn dot com>
* Licensed under the Apache License, Version 2.0 (the "License")
* $Id: BeanClassType.java 3953 2008-05-08 01:04:08Z gbevin $
*/
package com.uwyn.rife.crud;
import com.uwyn.rife.datastructures.EnumClass;
public class BeanClassType extends EnumClass<String>
{
public static final BeanClassType JAVA = new BeanClassType("java");
public static final BeanClassType SCRIPT = new BeanClassType("scripted");
public static final String SCRIPT_EXT_GROOVY = ".groovy";
public static final String SCRIPT_EXT_JANINO = ".janino";
public static final String[] SCRIPT_EXTENSIONS = new String[] {SCRIPT_EXT_GROOVY, SCRIPT_EXT_JANINO};
BeanClassType(String identifier)
{
super(identifier);
}
public static BeanClassType getBeanType(final String implementation)
{
if (null == implementation) return null;
// if there are path seperators, it's a script
if (implementation.indexOf("/") != -1)
{
return BeanClassType.SCRIPT;
}
// check if the implementation name ends with a script file extension
for (String ext : SCRIPT_EXTENSIONS)
{
if (implementation.endsWith(ext))
{
return BeanClassType.SCRIPT;
}
}
// it's thus a java class name
return BeanClassType.JAVA;
}
}