]
George Gastaldi commented on FORGE-2246:
----------------------------------------
It could extend {{AbstractJavaSourceCommand}} directly, the addition of another class in
the hierarchy would make things complicated IMHO.
Refactoring the JPA Commands
----------------------------
Key: FORGE-2246
URL:
https://issues.jboss.org/browse/FORGE-2246
Project: Forge
Issue Type: Sub-task
Components: UI - API
Reporter: Antonio Goncalves
Priority: Minor
Fix For: 2.x Future, 3.x Future
The idea is to refactor the JPA commands (under {{org.jboss.forge.addon.javaee.jpa.ui}})
:
* Add an interface with all the default sub-packages in {{javaee-api}}
** Interface {{org.jboss.forge.addon.javaee.JavaEEPackages}}
** Something like {{BUSINESS_MODEL}} would be {{model}}
** {{BUSINESS_LOGIC}} would be {{service}}
** {{EXCEPTIONS}} would be {{exception}}
* Create a new {{org.jboss.forge.addon.javaee.jpa.ui.AbstractJPACommand}} that extends
{{AbstractJavaEECommand}} and implements {{PrerequisiteCommandsProvider}}
** {{getMetadata}} By adding JPA (and this way each command will be "Java EE / JPA /
New Embeddable"
** {{isProjectRequired}}
** {{getPrerequisiteCommands}}
** Add a method {{calculateDefaultPackage}}
* Refactor the classes
** They extend from {{AbstractJPACommand}}
** Rename them by prefixing them with {{JPA}}
*** {{NewEmbeddableCommand}} -> {{JPANewEmbeddableCommand}}
*** {{NewEntityCommand}} -> {{JPANewEntityCommand}}
*** ...
Questions : some classes redifine {{named}} and {{targetPackage}} some don't, why ? :
{code}
@Inject
@WithAttributes(label = "Entity name", description = "The simple name
of the generated class", required = true)
private UIInput<String> named;
@Inject
@WithAttributes(label = "Target package", type =
InputType.JAVA_PACKAGE_PICKER)
private UIInput<String> targetPackage;
{code}