У меня есть следующий метод:
def <T> T getImpl(Class<T> category)
{
def queryGetter
if (DDLTool.isOracle())
{
queryGetter = // getting oracle implementation based on category (Portal|Portal365)
}
else if (DDLTool.isMSSQL())
{
queryGetter = // getting mssql implementation based on category (Portal|Portal365)
}
else if (DDLTool.isPostgres())
{
queryGetter = // getting postgres implementation based on category (Portal|Portal365)
}
return queryGetter
}
Категория может быть следующей:
Portal.class
Portal365.class
Схема иерархии:
Category -> Portal | Portal365 -> PostgresQueryGetterPortal/MssqlQueryGetterPortal/OracleQueryGetterPortal | PostgresQueryGetterPortal356/MssqlQueryGetterPortal365/OracleQueryGetterPortal365
Итак, мне нужно получить необходимую реализацию на основе категории (Portal | Portal365). Кроме того, я не должен использовать classpath каждый раз, когда я вызываю метод. Нужно как-то их кешировать
Как это сделать?
Заранее спасибо