Где находятся ссылки на классы Freemarker Hibernate? - PullRequest
0 голосов
/ 13 сентября 2011

Я пытаюсь создать пользовательские шаблоны обратного инжиниринга для Hibernate.Во многих шаблонах, которые я вижу в сети, я вижу такие переменные, как pojo, class, c2j.Мой вопрос: откуда эти переменные?Я могу сказать, что часто упоминаемый pojo является сущностью BasicPOJOClass, но я не могу найти все переменные, доступные для шаблона.

Например, вот ftl, найденный в сетииз какой-то версии hibernatetools .

<#if ejb3>
<#if pojo.hasIdentifierProperty()>
<#if property.equals(clazz.identifierProperty)>
${pojo.generateAnnIdGenerator()}
<#-- if this is the id property (getter)-->
<#-- explicitly set the column name for this property-->
</#if>
</#if>
<#if c2h.isManyToOne(property)>
<#--TODO support @OneToOne true and false-->    
${pojo.generateManyToOneAnnotation(property)}
<#--TODO support optional and targetEntity-->    
${pojo.generateJoinColumnsAnnotation(property, cfg)}
<#elseif c2h.isCollection(property)>
${pojo.generateCollectionAnnotation(property, cfg)}
 <#else>
${pojo.generateBasicAnnotation(property)}
${pojo.generateAnnColumnAnnotation(property)}
</#if>
</#if>

Просто читая шаблон, вы знаете, что вам доступны переменные, такие как cfg, clazz, c2h и ejb3, но вы не знаетечто они и какие методы на них доступны для вас.Любая помощь с благодарностью.

1 Ответ

2 голосов
/ 13 сентября 2011

Я думаю, что большинство настроек корневого контекста FreeMarker обрабатываются в классах AbstractExporter и GenericExporter .Похоже, есть несколько доступных переменных, например

  • артефакты
  • c2h
  • c2j
  • cfg
  • clazz
  • экспортер
  • outputdir
  • pojo
  • template_path

Если все остальное не помогло, вам придется копаться в этом источникефайлы, чтобы узнать об их значениях ...

HTH.

...