refactor: Restructure project, enhance ActionField and DTOField generation
This commit refactors the project structure by moving generator-related classes to a new package (`com.sdk.generators.actionmodels`) and standardizing template directory names (`src/main/resources/templates`). It introduces new FreeMarker templates (`actionDTO.ftl`, `actionDTO.extend.ftl`) and corresponding logic in `GeneratorServices.java` to support the generation of Data Transfer Object (DTO) classes alongside ActionBeans. The changes also involve enhancements related to `ActionField` and `DTOField` generation. Updates to `build.gradle.kts`, `plugin.xml`, and Gradle wrapper files reflect these structural and functional enhancements.
This commit is contained in:
1
.idea/.name
generated
Normal file
1
.idea/.name
generated
Normal file
@@ -0,0 +1 @@
|
||||
ActionModelsGenerator
|
||||
1
.idea/dictionaries/project.xml
generated
1
.idea/dictionaries/project.xml
generated
@@ -2,6 +2,7 @@
|
||||
<dictionary name="project">
|
||||
<words>
|
||||
<w>actionbean</w>
|
||||
<w>actionmodels</w>
|
||||
</words>
|
||||
</dictionary>
|
||||
</component>
|
||||
2
.idea/inspectionProfiles/Project_Default.xml
generated
2
.idea/inspectionProfiles/Project_Default.xml
generated
@@ -2,11 +2,13 @@
|
||||
<profile version="1.0">
|
||||
<option name="myName" value="Project Default" />
|
||||
<inspection_tool class="CheckTagEmptyBody" enabled="false" level="WARNING" enabled_by_default="false" />
|
||||
<inspection_tool class="DuplicatedCode" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
||||
<inspection_tool class="Duplicates" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
||||
<inspection_tool class="LoggerInitializedWithForeignClass" enabled="false" level="WARNING" enabled_by_default="false">
|
||||
<option name="loggerClassName" value="org.apache.log4j.Logger,org.slf4j.LoggerFactory,org.apache.commons.logging.LogFactory,java.util.logging.Logger" />
|
||||
<option name="loggerFactoryMethodName" value="getLogger,getLogger,getLog,getLogger" />
|
||||
</inspection_tool>
|
||||
<inspection_tool class="PluginXmlI18n" enabled="false" level="WARNING" enabled_by_default="false" />
|
||||
<inspection_tool class="UnusedProperty" enabled="false" level="WARNING" enabled_by_default="false" />
|
||||
</profile>
|
||||
</component>
|
||||
BIN
.intellijPlatform/coroutines-javaagent-legacy.jar
Normal file
BIN
.intellijPlatform/coroutines-javaagent-legacy.jar
Normal file
Binary file not shown.
BIN
.intellijPlatform/coroutines-javaagent.jar
Normal file
BIN
.intellijPlatform/coroutines-javaagent.jar
Normal file
Binary file not shown.
@@ -0,0 +1,138 @@
|
||||
<ivy-module version="2.0">
|
||||
<info organisation="bundledModule" module="intellij-platform-test-runtime" revision="IU-252.23892.409"/>
|
||||
<configurations>
|
||||
<conf name="default" visibility="public"/>
|
||||
</configurations>
|
||||
<publications>
|
||||
<artifact name="app" ext="jar" conf="default" url="lib"/>
|
||||
<artifact name="product" ext="jar" conf="default" url="lib"/>
|
||||
<artifact name="testFramework" ext="jar" conf="default" url="lib"/>
|
||||
<artifact name="idea_rt" ext="jar" conf="default" url="lib"/>
|
||||
<artifact name="app-client" ext="jar" conf="default" url="lib"/>
|
||||
<artifact name="stats" ext="jar" conf="default" url="lib"/>
|
||||
<artifact name="intellij.platform.editor.frontend" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.execution.impl.frontend" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.editor" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.scopes.backend" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.grid.types" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.settingsSync.core" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.lvcs.impl" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.searchEverywhere.backend" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.searchEverywhere" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.profiler.common" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.identifiers.highlighting.shared" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.dap" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.ide.newUsersOnboarding" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.pluginManager.shared" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.images.copyright" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.tasks" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.spellchecker" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.bookmarks.backend" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.idea.ultimate.customizationTrial" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.scopes" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.jewel.foundation" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.ide.startup.importSettings" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.execution.process.elevation" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.find.backend" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.clouds" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.settings.local" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.grid.core.impl" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.navbar.monolith" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.vcs.impl.shared" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.execution.dashboard" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.execution.serviceView.frontend" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.registry.cloud" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.debugger.impl.frontend" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.jewel.markdown.ideLafBridgeStyling" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.vcs.impl.lang.actions" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.recentFiles" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.tasks.impl" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.editor.backend" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.coverage" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.coverage.agent" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.xml.xmlbeans" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.navbar" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.managed.cache.backend" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.jewel.markdown.extensions.gfmTables" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.vcs.impl.backend" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.debugger.streams.core" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.vcs.impl.lang" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.libraries.kotlinx.io" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.profiler.ultimate.ideaAsyncProfiler" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.backend" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.vcs.impl.frontend" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.rml.dfa.impl" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.vcs.dvcs.impl.shared" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.frontend" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.vcs.dvcs.impl" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.ide.impl.wsl" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.tips" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.execution.process.mediator.daemon" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.images.backend.svg" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.spellchecker.xml" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.execution.impl.backend" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.navbar.backend" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.debugger.collections.visualizer.core" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.profiler.asyncOne" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.bookmarks.frontend" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.execution.serviceView" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.libraries.ktor.client.cio" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.compose" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.jewel.markdown.extensions.gfmAlerts" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.collaborationTools" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.identifiers.highlighting.backend" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.trialPromotion" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.recentFiles.frontend" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.searchEverywhere.frontend" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.emojipicker" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.libraries.skiko" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.libraries.grpc" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.monolith" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.progress.backend" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.libraries.compose.foundation.desktop" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.rd.ui" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.pluginManager.backend" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.recentFiles.backend" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.libraries.grpc.netty.shaded" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.libraries.lucene.common" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.grid.impl" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.rpc.backend" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.rd.ide.model.generated" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.jewel.markdown.extensions.gfmStrikethrough" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.libraries.ktor.client" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.pluginManager.frontend" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.rd.platform" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.execution.process.mediator.client" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.vcs.impl.exec" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.jewel.ideLafBridge" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.libraries.ai.grazie.spell.gec.engine.local" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.vcs.log.impl" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.smRunner.vcs" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.debugger.impl.backend" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.relaxng" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.navbar.frontend" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.grid" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.vcs.impl" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.diagnostic.telemetry.agent.extension" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.diagnostic.freezes" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.idea.customization.base" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.execution.dashboard.frontend" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.grid.csv.core.impl" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.kernel.backend" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.warmup" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.execution.dashboard.backend" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.charts" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.ide.newUiOnboarding" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.project.backend" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.jewel.markdown.extensions.autolink" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.libraries.microba" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.execution.process.mediator.common" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.jewel.markdown.core" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.jewel.ui" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.ml.impl" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.kernel.impl" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.inline.completion" ext="jar" conf="default" url="lib/modules"/>
|
||||
<artifact name="intellij.platform.diagnostic.freezeAnalyzer" ext="jar" conf="default" url="lib/modules"/>
|
||||
</publications>
|
||||
<dependencies/>
|
||||
</ivy-module>
|
||||
@@ -0,0 +1,10 @@
|
||||
<ivy-module version="2.0">
|
||||
<info organisation="bundledModule" module="intellij.charts" revision="IU-252.23892.409"/>
|
||||
<configurations>
|
||||
<conf name="default" visibility="public"/>
|
||||
</configurations>
|
||||
<publications>
|
||||
<artifact name="intellij.charts" ext="jar" conf="default" url="lib/modules"/>
|
||||
</publications>
|
||||
<dependencies/>
|
||||
</ivy-module>
|
||||
@@ -0,0 +1,10 @@
|
||||
<ivy-module version="2.0">
|
||||
<info organisation="bundledModule" module="intellij.grid" revision="IU-252.23892.409"/>
|
||||
<configurations>
|
||||
<conf name="default" visibility="public"/>
|
||||
</configurations>
|
||||
<publications>
|
||||
<artifact name="intellij.grid" ext="jar" conf="default" url="lib/modules"/>
|
||||
</publications>
|
||||
<dependencies/>
|
||||
</ivy-module>
|
||||
@@ -0,0 +1,15 @@
|
||||
<ivy-module version="2.0">
|
||||
<info organisation="bundledModule" module="intellij.grid.charts.impl" revision="IU-252.23892.409"/>
|
||||
<configurations>
|
||||
<conf name="default" visibility="public"/>
|
||||
</configurations>
|
||||
<publications/>
|
||||
<dependencies>
|
||||
<dependency org="bundledModule" name="intellij.charts" rev="IU-252.23892.409"/>
|
||||
<dependency org="bundledModule" name="intellij.grid.core.impl" rev="IU-252.23892.409"/>
|
||||
<dependency org="bundledModule" name="intellij.grid.impl" rev="IU-252.23892.409"/>
|
||||
<dependency org="bundledModule" name="intellij.platform.navbar.frontend" rev="IU-252.23892.409"/>
|
||||
<dependency org="bundledModule" name="intellij.libraries.microba" rev="IU-252.23892.409"/>
|
||||
<dependency org="bundledPlugin" name="com.intellij.platform.images" rev="IU-252.23892.409"/>
|
||||
</dependencies>
|
||||
</ivy-module>
|
||||
@@ -0,0 +1,14 @@
|
||||
<ivy-module version="2.0">
|
||||
<info organisation="bundledModule" module="intellij.grid.core.impl" revision="IU-252.23892.409"/>
|
||||
<configurations>
|
||||
<conf name="default" visibility="public"/>
|
||||
</configurations>
|
||||
<publications>
|
||||
<artifact name="intellij.grid.core.impl" ext="jar" conf="default" url="lib/modules"/>
|
||||
</publications>
|
||||
<dependencies>
|
||||
<dependency org="bundledModule" name="intellij.grid" rev="IU-252.23892.409"/>
|
||||
<dependency org="bundledModule" name="intellij.grid.types" rev="IU-252.23892.409"/>
|
||||
<dependency org="bundledModule" name="intellij.grid.csv.core.impl" rev="IU-252.23892.409"/>
|
||||
</dependencies>
|
||||
</ivy-module>
|
||||
@@ -0,0 +1,12 @@
|
||||
<ivy-module version="2.0">
|
||||
<info organisation="bundledModule" module="intellij.grid.csv.core.impl" revision="IU-252.23892.409"/>
|
||||
<configurations>
|
||||
<conf name="default" visibility="public"/>
|
||||
</configurations>
|
||||
<publications>
|
||||
<artifact name="intellij.grid.csv.core.impl" ext="jar" conf="default" url="lib/modules"/>
|
||||
</publications>
|
||||
<dependencies>
|
||||
<dependency org="bundledModule" name="intellij.grid.types" rev="IU-252.23892.409"/>
|
||||
</dependencies>
|
||||
</ivy-module>
|
||||
@@ -0,0 +1,16 @@
|
||||
<ivy-module version="2.0">
|
||||
<info organisation="bundledModule" module="intellij.grid.impl" revision="IU-252.23892.409"/>
|
||||
<configurations>
|
||||
<conf name="default" visibility="public"/>
|
||||
</configurations>
|
||||
<publications>
|
||||
<artifact name="intellij.grid.impl" ext="jar" conf="default" url="lib/modules"/>
|
||||
</publications>
|
||||
<dependencies>
|
||||
<dependency org="bundledModule" name="intellij.grid.core.impl" rev="IU-252.23892.409"/>
|
||||
<dependency org="bundledModule" name="intellij.platform.navbar.frontend" rev="IU-252.23892.409"/>
|
||||
<dependency org="bundledModule" name="intellij.grid.csv.core.impl" rev="IU-252.23892.409"/>
|
||||
<dependency org="bundledModule" name="intellij.grid.types" rev="IU-252.23892.409"/>
|
||||
<dependency org="bundledModule" name="intellij.libraries.microba" rev="IU-252.23892.409"/>
|
||||
</dependencies>
|
||||
</ivy-module>
|
||||
@@ -0,0 +1,13 @@
|
||||
<ivy-module version="2.0">
|
||||
<info organisation="bundledModule" module="intellij.grid.scripting.impl" revision="IU-252.23892.409"/>
|
||||
<configurations>
|
||||
<conf name="default" visibility="public"/>
|
||||
</configurations>
|
||||
<publications/>
|
||||
<dependencies>
|
||||
<dependency org="bundledModule" name="intellij.grid.scripting.rt" rev="IU-252.23892.409"/>
|
||||
<dependency org="bundledModule" name="intellij.grid.core.impl" rev="IU-252.23892.409"/>
|
||||
<dependency org="bundledModule" name="intellij.grid.csv.core.impl" rev="IU-252.23892.409"/>
|
||||
<dependency org="bundledModule" name="intellij.grid.impl" rev="IU-252.23892.409"/>
|
||||
</dependencies>
|
||||
</ivy-module>
|
||||
@@ -0,0 +1,10 @@
|
||||
<ivy-module version="2.0">
|
||||
<info organisation="bundledModule" module="intellij.grid.scripting.rt" revision="IU-252.23892.409"/>
|
||||
<configurations>
|
||||
<conf name="default" visibility="public"/>
|
||||
</configurations>
|
||||
<publications>
|
||||
<artifact name="intellij.grid.scripting.rt" ext="jar" conf="default" url="plugins/grid-plugin/lib/modules"/>
|
||||
</publications>
|
||||
<dependencies/>
|
||||
</ivy-module>
|
||||
@@ -0,0 +1,10 @@
|
||||
<ivy-module version="2.0">
|
||||
<info organisation="bundledModule" module="intellij.grid.types" revision="IU-252.23892.409"/>
|
||||
<configurations>
|
||||
<conf name="default" visibility="public"/>
|
||||
</configurations>
|
||||
<publications>
|
||||
<artifact name="intellij.grid.types" ext="jar" conf="default" url="lib/modules"/>
|
||||
</publications>
|
||||
<dependencies/>
|
||||
</ivy-module>
|
||||
@@ -0,0 +1,12 @@
|
||||
<ivy-module version="2.0">
|
||||
<info organisation="bundledModule" module="intellij.libraries.ai.grazie.spell.gec.engine.local" revision="IU-252.23892.409"/>
|
||||
<configurations>
|
||||
<conf name="default" visibility="public"/>
|
||||
</configurations>
|
||||
<publications>
|
||||
<artifact name="intellij.libraries.ai.grazie.spell.gec.engine.local" ext="jar" conf="default" url="lib/modules"/>
|
||||
</publications>
|
||||
<dependencies>
|
||||
<dependency org="bundledModule" name="intellij.libraries.lucene.common" rev="IU-252.23892.409"/>
|
||||
</dependencies>
|
||||
</ivy-module>
|
||||
@@ -0,0 +1,10 @@
|
||||
<ivy-module version="2.0">
|
||||
<info organisation="bundledModule" module="intellij.libraries.lucene.common" revision="IU-252.23892.409"/>
|
||||
<configurations>
|
||||
<conf name="default" visibility="public"/>
|
||||
</configurations>
|
||||
<publications>
|
||||
<artifact name="intellij.libraries.lucene.common" ext="jar" conf="default" url="lib/modules"/>
|
||||
</publications>
|
||||
<dependencies/>
|
||||
</ivy-module>
|
||||
@@ -0,0 +1,10 @@
|
||||
<ivy-module version="2.0">
|
||||
<info organisation="bundledModule" module="intellij.libraries.microba" revision="IU-252.23892.409"/>
|
||||
<configurations>
|
||||
<conf name="default" visibility="public"/>
|
||||
</configurations>
|
||||
<publications>
|
||||
<artifact name="intellij.libraries.microba" ext="jar" conf="default" url="lib/modules"/>
|
||||
</publications>
|
||||
<dependencies/>
|
||||
</ivy-module>
|
||||
@@ -0,0 +1,10 @@
|
||||
<ivy-module version="2.0">
|
||||
<info organisation="bundledModule" module="intellij.platform.backend" revision="IU-252.23892.409"/>
|
||||
<configurations>
|
||||
<conf name="default" visibility="public"/>
|
||||
</configurations>
|
||||
<publications>
|
||||
<artifact name="intellij.platform.backend" ext="jar" conf="default" url="lib/modules"/>
|
||||
</publications>
|
||||
<dependencies/>
|
||||
</ivy-module>
|
||||
@@ -0,0 +1,10 @@
|
||||
<ivy-module version="2.0">
|
||||
<info organisation="bundledModule" module="intellij.platform.navbar" revision="IU-252.23892.409"/>
|
||||
<configurations>
|
||||
<conf name="default" visibility="public"/>
|
||||
</configurations>
|
||||
<publications>
|
||||
<artifact name="intellij.platform.navbar" ext="jar" conf="default" url="lib/modules"/>
|
||||
</publications>
|
||||
<dependencies/>
|
||||
</ivy-module>
|
||||
@@ -0,0 +1,12 @@
|
||||
<ivy-module version="2.0">
|
||||
<info organisation="bundledModule" module="intellij.platform.navbar.frontend" revision="IU-252.23892.409"/>
|
||||
<configurations>
|
||||
<conf name="default" visibility="public"/>
|
||||
</configurations>
|
||||
<publications>
|
||||
<artifact name="intellij.platform.navbar.frontend" ext="jar" conf="default" url="lib/modules"/>
|
||||
</publications>
|
||||
<dependencies>
|
||||
<dependency org="bundledModule" name="intellij.platform.navbar" rev="IU-252.23892.409"/>
|
||||
</dependencies>
|
||||
</ivy-module>
|
||||
@@ -0,0 +1,14 @@
|
||||
<ivy-module version="2.0">
|
||||
<info organisation="bundledModule" module="intellij.platform.vcs.impl" revision="IU-252.23892.409"/>
|
||||
<configurations>
|
||||
<conf name="default" visibility="public"/>
|
||||
</configurations>
|
||||
<publications>
|
||||
<artifact name="intellij.platform.vcs.impl" ext="jar" conf="default" url="lib/modules"/>
|
||||
</publications>
|
||||
<dependencies>
|
||||
<dependency org="bundledModule" name="intellij.platform.backend" rev="IU-252.23892.409"/>
|
||||
<dependency org="bundledModule" name="intellij.libraries.microba" rev="IU-252.23892.409"/>
|
||||
<dependency org="bundledModule" name="intellij.platform.vcs.impl.shared" rev="IU-252.23892.409"/>
|
||||
</dependencies>
|
||||
</ivy-module>
|
||||
@@ -0,0 +1,12 @@
|
||||
<ivy-module version="2.0">
|
||||
<info organisation="bundledModule" module="intellij.platform.vcs.impl.lang" revision="IU-252.23892.409"/>
|
||||
<configurations>
|
||||
<conf name="default" visibility="public"/>
|
||||
</configurations>
|
||||
<publications>
|
||||
<artifact name="intellij.platform.vcs.impl.lang" ext="jar" conf="default" url="lib/modules"/>
|
||||
</publications>
|
||||
<dependencies>
|
||||
<dependency org="bundledModule" name="intellij.platform.vcs.impl" rev="IU-252.23892.409"/>
|
||||
</dependencies>
|
||||
</ivy-module>
|
||||
@@ -0,0 +1,10 @@
|
||||
<ivy-module version="2.0">
|
||||
<info organisation="bundledModule" module="intellij.platform.vcs.impl.shared" revision="IU-252.23892.409"/>
|
||||
<configurations>
|
||||
<conf name="default" visibility="public"/>
|
||||
</configurations>
|
||||
<publications>
|
||||
<artifact name="intellij.platform.vcs.impl.shared" ext="jar" conf="default" url="lib/modules"/>
|
||||
</publications>
|
||||
<dependencies/>
|
||||
</ivy-module>
|
||||
@@ -0,0 +1,14 @@
|
||||
<ivy-module version="2.0">
|
||||
<info organisation="bundledModule" module="intellij.spellchecker" revision="IU-252.23892.409"/>
|
||||
<configurations>
|
||||
<conf name="default" visibility="public"/>
|
||||
</configurations>
|
||||
<publications>
|
||||
<artifact name="intellij.spellchecker" ext="jar" conf="default" url="lib/modules"/>
|
||||
</publications>
|
||||
<dependencies>
|
||||
<dependency org="bundledModule" name="intellij.platform.backend" rev="IU-252.23892.409"/>
|
||||
<dependency org="bundledModule" name="intellij.libraries.lucene.common" rev="IU-252.23892.409"/>
|
||||
<dependency org="bundledModule" name="intellij.libraries.ai.grazie.spell.gec.engine.local" rev="IU-252.23892.409"/>
|
||||
</dependencies>
|
||||
</ivy-module>
|
||||
@@ -0,0 +1,38 @@
|
||||
<ivy-module version="2.0">
|
||||
<info organisation="bundledPlugin" module="com.intellij.database" revision="IU-252.23892.409"/>
|
||||
<configurations>
|
||||
<conf name="default" visibility="public"/>
|
||||
</configurations>
|
||||
<publications>
|
||||
<artifact name="jettison" ext="jar" conf="default" url="plugins/DatabaseTools/lib"/>
|
||||
<artifact name="plexus-utils" ext="jar" conf="default" url="plugins/DatabaseTools/lib"/>
|
||||
<artifact name="completion-ranking-sql" ext="jar" conf="default" url="plugins/DatabaseTools/lib"/>
|
||||
<artifact name="tips-database-plugin" ext="jar" conf="default" url="plugins/DatabaseTools/lib"/>
|
||||
<artifact name="maven-resolver-transport-http" ext="jar" conf="default" url="plugins/DatabaseTools/lib"/>
|
||||
<artifact name="maven-resolver-transport-file" ext="jar" conf="default" url="plugins/DatabaseTools/lib"/>
|
||||
<artifact name="jdbc-console" ext="jar" conf="default" url="plugins/DatabaseTools/lib"/>
|
||||
<artifact name="aether-dependency-resolver" ext="jar" conf="default" url="plugins/DatabaseTools/lib"/>
|
||||
<artifact name="maven-resolver-provider" ext="jar" conf="default" url="plugins/DatabaseTools/lib"/>
|
||||
<artifact name="maven-resolver-connector-basic" ext="jar" conf="default" url="plugins/DatabaseTools/lib"/>
|
||||
<artifact name="database-plugin" ext="jar" conf="default" url="plugins/DatabaseTools/lib"/>
|
||||
<artifact name="unidecode" ext="jar" conf="default" url="plugins/DatabaseTools/lib"/>
|
||||
<artifact name="database-plugin-frontend" ext="jar" conf="default" url="plugins/DatabaseTools/lib"/>
|
||||
<artifact name="xstream" ext="jar" conf="default" url="plugins/DatabaseTools/lib"/>
|
||||
<artifact name="intellij.database.frontend.split" ext="jar" conf="default" url="plugins/DatabaseTools/lib/modules"/>
|
||||
<artifact name="intellij.database.sql.frontend.core" ext="jar" conf="default" url="plugins/DatabaseTools/lib/modules"/>
|
||||
<artifact name="intellij.database.backend.split" ext="jar" conf="default" url="plugins/DatabaseTools/lib/modules"/>
|
||||
<artifact name="intellij.database.sql.frontend.impl" ext="jar" conf="default" url="plugins/DatabaseTools/lib/modules"/>
|
||||
</publications>
|
||||
<dependencies>
|
||||
<dependency org="bundledModule" name="intellij.grid" rev="IU-252.23892.409"/>
|
||||
<dependency org="bundledModule" name="intellij.grid.scripting.impl" rev="IU-252.23892.409"/>
|
||||
<dependency org="bundledModule" name="intellij.grid.types" rev="IU-252.23892.409"/>
|
||||
<dependency org="bundledModule" name="intellij.grid.csv.core.impl" rev="IU-252.23892.409"/>
|
||||
<dependency org="bundledModule" name="intellij.grid.impl" rev="IU-252.23892.409"/>
|
||||
<dependency org="bundledModule" name="intellij.grid.core.impl" rev="IU-252.23892.409"/>
|
||||
<dependency org="bundledModule" name="intellij.platform.vcs.impl" rev="IU-252.23892.409"/>
|
||||
<dependency org="bundledModule" name="intellij.grid.charts.impl" rev="IU-252.23892.409"/>
|
||||
<dependency org="bundledPlugin" name="intellij.grid.plugin" rev="IU-252.23892.409"/>
|
||||
<dependency org="bundledPlugin" name="com.intellij.platform.images" rev="IU-252.23892.409"/>
|
||||
</dependencies>
|
||||
</ivy-module>
|
||||
@@ -0,0 +1,41 @@
|
||||
<ivy-module version="2.0">
|
||||
<info organisation="bundledPlugin" module="com.intellij.java" revision="IU-252.23892.409"/>
|
||||
<configurations>
|
||||
<conf name="default" visibility="public"/>
|
||||
</configurations>
|
||||
<publications>
|
||||
<artifact name="completion-ranking-java" ext="jar" conf="default" url="plugins/java/lib"/>
|
||||
<artifact name="jshell-protocol" ext="jar" conf="default" url="plugins/java/lib"/>
|
||||
<artifact name="jps-javac-extension" ext="jar" conf="default" url="plugins/java/lib"/>
|
||||
<artifact name="jps-launcher" ext="jar" conf="default" url="plugins/java/lib"/>
|
||||
<artifact name="javac2" ext="jar" conf="default" url="plugins/java/lib"/>
|
||||
<artifact name="maven-resolver-transport-http" ext="jar" conf="default" url="plugins/java/lib"/>
|
||||
<artifact name="jgoodies-common" ext="jar" conf="default" url="plugins/java/lib"/>
|
||||
<artifact name="java-impl-frontend" ext="jar" conf="default" url="plugins/java/lib"/>
|
||||
<artifact name="java-impl" ext="jar" conf="default" url="plugins/java/lib"/>
|
||||
<artifact name="maven-resolver-transport-file" ext="jar" conf="default" url="plugins/java/lib"/>
|
||||
<artifact name="netty-codec-protobuf" ext="jar" conf="default" url="plugins/java/lib"/>
|
||||
<artifact name="jps-builders-6" ext="jar" conf="default" url="plugins/java/lib"/>
|
||||
<artifact name="debugger-memory-agent" ext="jar" conf="default" url="plugins/java/lib"/>
|
||||
<artifact name="aether-dependency-resolver" ext="jar" conf="default" url="plugins/java/lib"/>
|
||||
<artifact name="jps-builders" ext="jar" conf="default" url="plugins/java/lib"/>
|
||||
<artifact name="jshell-frontend" ext="jar" conf="default" url="plugins/java/lib"/>
|
||||
<artifact name="maven-resolver-connector-basic" ext="jar" conf="default" url="plugins/java/lib"/>
|
||||
<artifact name="kotlin-metadata" ext="jar" conf="default" url="plugins/java/lib"/>
|
||||
<artifact name="sa-jdwp" ext="jar" conf="default" url="plugins/java/lib"/>
|
||||
<artifact name="jb-jdi" ext="jar" conf="default" url="plugins/java/lib"/>
|
||||
<artifact name="intellij.java.unscramble" ext="jar" conf="default" url="plugins/java/lib/modules"/>
|
||||
<artifact name="intellij.profiler.ultimate" ext="jar" conf="default" url="plugins/java/lib/modules"/>
|
||||
<artifact name="intellij.java.execution.impl.backend" ext="jar" conf="default" url="plugins/java/lib/modules"/>
|
||||
<artifact name="intellij.java.featuresTrainer" ext="jar" conf="default" url="plugins/java/lib/modules"/>
|
||||
<artifact name="intellij.java.debugger.impl.frontend" ext="jar" conf="default" url="plugins/java/lib/modules"/>
|
||||
<artifact name="intellij.jvm.analysis.impl" ext="jar" conf="default" url="plugins/java/lib/modules"/>
|
||||
<artifact name="intellij.java.vcs" ext="jar" conf="default" url="plugins/java/lib/modules"/>
|
||||
<artifact name="intellij.java.structuralSearch" ext="jar" conf="default" url="plugins/java/lib/modules"/>
|
||||
<artifact name="intellij.java.execution.impl.frontend" ext="jar" conf="default" url="plugins/java/lib/modules"/>
|
||||
</publications>
|
||||
<dependencies>
|
||||
<dependency org="bundledModule" name="intellij.platform.vcs.impl.lang" rev="IU-252.23892.409"/>
|
||||
<dependency org="bundledModule" name="intellij.spellchecker" rev="IU-252.23892.409"/>
|
||||
</dependencies>
|
||||
</ivy-module>
|
||||
@@ -0,0 +1,10 @@
|
||||
<ivy-module version="2.0">
|
||||
<info organisation="bundledPlugin" module="com.intellij.platform.images" revision="IU-252.23892.409"/>
|
||||
<configurations>
|
||||
<conf name="default" visibility="public"/>
|
||||
</configurations>
|
||||
<publications>
|
||||
<artifact name="platform-images" ext="jar" conf="default" url="plugins/platform-images/lib"/>
|
||||
</publications>
|
||||
<dependencies/>
|
||||
</ivy-module>
|
||||
@@ -0,0 +1,11 @@
|
||||
<ivy-module version="2.0">
|
||||
<info organisation="bundledPlugin" module="intellij.grid.plugin" revision="IU-252.23892.409"/>
|
||||
<configurations>
|
||||
<conf name="default" visibility="public"/>
|
||||
</configurations>
|
||||
<publications>
|
||||
<artifact name="grid-plugin" ext="jar" conf="default" url="plugins/grid-plugin/lib"/>
|
||||
<artifact name="intellij.grid.scripting.rt" ext="jar" conf="default" url="plugins/grid-plugin/lib/modules"/>
|
||||
</publications>
|
||||
<dependencies/>
|
||||
</ivy-module>
|
||||
@@ -1 +1 @@
|
||||
2025-07-08
|
||||
2025-08-20
|
||||
@@ -1,12 +1,11 @@
|
||||
plugins {
|
||||
id("java")
|
||||
id("org.jetbrains.kotlin.jvm") version "2.1.0"
|
||||
id("org.jetbrains.intellij.platform") version "2.6.0"
|
||||
id("org.jetbrains.intellij.platform") version "2.7.0"
|
||||
}
|
||||
|
||||
|
||||
group = "com.sdk.actionbean.generator"
|
||||
version = "1.0-SNAPSHOT"
|
||||
group = "com.sdk.generators.actionmodels"
|
||||
version = "1.0.4"
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
@@ -26,8 +25,8 @@ dependencies {
|
||||
bundledPlugin("com.intellij.java")
|
||||
bundledPlugin("com.intellij.database")
|
||||
|
||||
implementation("org.freemarker:freemarker:2.3.32")
|
||||
}
|
||||
}
|
||||
implementation("org.freemarker:freemarker:2.3.32")
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -4,3 +4,4 @@ kotlin.stdlib.default.dependency=false
|
||||
org.gradle.configuration-cache=true
|
||||
# Enable Gradle Build Cache -> https://docs.gradle.org/current/userguide/build_cache.html
|
||||
org.gradle.caching=true
|
||||
org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m
|
||||
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Binary file not shown.
4
gradle/wrapper/gradle-wrapper.properties
vendored
4
gradle/wrapper/gradle-wrapper.properties
vendored
@@ -1,5 +1,7 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-bin.zip
|
||||
networkTimeout=10000
|
||||
validateDistributionUrl=true
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
||||
43
gradlew
vendored
43
gradlew
vendored
@@ -15,6 +15,8 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
##############################################################################
|
||||
#
|
||||
@@ -55,7 +57,7 @@
|
||||
# Darwin, MinGW, and NonStop.
|
||||
#
|
||||
# (3) This script is generated from the Groovy template
|
||||
# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
||||
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
||||
# within the Gradle project.
|
||||
#
|
||||
# You can find Gradle at https://github.com/gradle/gradle/.
|
||||
@@ -80,13 +82,11 @@ do
|
||||
esac
|
||||
done
|
||||
|
||||
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
|
||||
|
||||
APP_NAME="Gradle"
|
||||
# This is normally unused
|
||||
# shellcheck disable=SC2034
|
||||
APP_BASE_NAME=${0##*/}
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
|
||||
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
|
||||
|
||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||
MAX_FD=maximum
|
||||
@@ -133,22 +133,29 @@ location of your Java installation."
|
||||
fi
|
||||
else
|
||||
JAVACMD=java
|
||||
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
if ! command -v java >/dev/null 2>&1
|
||||
then
|
||||
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
fi
|
||||
|
||||
# Increase the maximum file descriptors if we can.
|
||||
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
||||
case $MAX_FD in #(
|
||||
max*)
|
||||
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
|
||||
# shellcheck disable=SC2039,SC3045
|
||||
MAX_FD=$( ulimit -H -n ) ||
|
||||
warn "Could not query maximum file descriptor limit"
|
||||
esac
|
||||
case $MAX_FD in #(
|
||||
'' | soft) :;; #(
|
||||
*)
|
||||
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
|
||||
# shellcheck disable=SC2039,SC3045
|
||||
ulimit -n "$MAX_FD" ||
|
||||
warn "Could not set maximum file descriptor limit to $MAX_FD"
|
||||
esac
|
||||
@@ -193,11 +200,15 @@ if "$cygwin" || "$msys" ; then
|
||||
done
|
||||
fi
|
||||
|
||||
# Collect all arguments for the java command;
|
||||
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
|
||||
# shell script including quotes and variable substitutions, so put them in
|
||||
# double quotes to make sure that they get re-expanded; and
|
||||
# * put everything else in single quotes, so that it's not re-expanded.
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||
|
||||
# Collect all arguments for the java command:
|
||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
|
||||
# and any embedded shellness will be escaped.
|
||||
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
|
||||
# treated as '${Hostname}' itself on the command line.
|
||||
|
||||
set -- \
|
||||
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
||||
@@ -205,6 +216,12 @@ set -- \
|
||||
org.gradle.wrapper.GradleWrapperMain \
|
||||
"$@"
|
||||
|
||||
# Stop when "xargs" is not available.
|
||||
if ! command -v xargs >/dev/null 2>&1
|
||||
then
|
||||
die "xargs is not available"
|
||||
fi
|
||||
|
||||
# Use "xargs" to parse quoted args.
|
||||
#
|
||||
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
|
||||
|
||||
37
gradlew.bat
vendored
37
gradlew.bat
vendored
@@ -13,8 +13,10 @@
|
||||
@rem See the License for the specific language governing permissions and
|
||||
@rem limitations under the License.
|
||||
@rem
|
||||
@rem SPDX-License-Identifier: Apache-2.0
|
||||
@rem
|
||||
|
||||
@if "%DEBUG%" == "" @echo off
|
||||
@if "%DEBUG%"=="" @echo off
|
||||
@rem ##########################################################################
|
||||
@rem
|
||||
@rem Gradle startup script for Windows
|
||||
@@ -25,7 +27,8 @@
|
||||
if "%OS%"=="Windows_NT" setlocal
|
||||
|
||||
set DIRNAME=%~dp0
|
||||
if "%DIRNAME%" == "" set DIRNAME=.
|
||||
if "%DIRNAME%"=="" set DIRNAME=.
|
||||
@rem This is normally unused
|
||||
set APP_BASE_NAME=%~n0
|
||||
set APP_HOME=%DIRNAME%
|
||||
|
||||
@@ -40,13 +43,13 @@ if defined JAVA_HOME goto findJavaFromJavaHome
|
||||
|
||||
set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if "%ERRORLEVEL%" == "0" goto execute
|
||||
if %ERRORLEVEL% equ 0 goto execute
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
echo. 1>&2
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
|
||||
echo. 1>&2
|
||||
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
||||
echo location of your Java installation. 1>&2
|
||||
|
||||
goto fail
|
||||
|
||||
@@ -56,11 +59,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||
|
||||
if exist "%JAVA_EXE%" goto execute
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
echo. 1>&2
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
|
||||
echo. 1>&2
|
||||
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
||||
echo location of your Java installation. 1>&2
|
||||
|
||||
goto fail
|
||||
|
||||
@@ -75,13 +78,15 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
||||
|
||||
:end
|
||||
@rem End local scope for the variables with windows NT shell
|
||||
if "%ERRORLEVEL%"=="0" goto mainEnd
|
||||
if %ERRORLEVEL% equ 0 goto mainEnd
|
||||
|
||||
:fail
|
||||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
||||
rem the _cmd.exe /c_ return code!
|
||||
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
|
||||
exit /b 1
|
||||
set EXIT_CODE=%ERRORLEVEL%
|
||||
if %EXIT_CODE% equ 0 set EXIT_CODE=1
|
||||
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
|
||||
exit /b %EXIT_CODE%
|
||||
|
||||
:mainEnd
|
||||
if "%OS%"=="Windows_NT" endlocal
|
||||
|
||||
6
package-lock.json
generated
Normal file
6
package-lock.json
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"name": "ActionModelsGenerator",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {}
|
||||
}
|
||||
@@ -1 +1 @@
|
||||
rootProject.name = "ActionBeanGen"
|
||||
rootProject.name = "ActionModelsGenerator"
|
||||
@@ -1,4 +1,149 @@
|
||||
package com.sdk.generators;
|
||||
|
||||
import com.intellij.database.model.DasColumn;
|
||||
import com.intellij.database.model.ObjectKind;
|
||||
import com.intellij.database.psi.DbObject;
|
||||
import com.intellij.database.psi.DbTable;
|
||||
import com.intellij.database.util.DasUtil;
|
||||
import com.intellij.notification.NotificationGroupManager;
|
||||
import com.intellij.notification.NotificationType;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.roots.PackageIndex;
|
||||
import com.intellij.openapi.roots.ProjectRootManager;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class GUtils {
|
||||
|
||||
private static final LinkedHashMap<String, String> TYPE_MAPPING = new LinkedHashMap<>();
|
||||
|
||||
static {
|
||||
TYPE_MAPPING.put("bigint", "NUMBER");
|
||||
TYPE_MAPPING.put("bit", "STRING");
|
||||
TYPE_MAPPING.put("boolean", "STRING");
|
||||
TYPE_MAPPING.put("date", "DATE");
|
||||
TYPE_MAPPING.put("decimal", "NUMBER");
|
||||
TYPE_MAPPING.put("double", "NUMBER");
|
||||
TYPE_MAPPING.put("float", "NUMBER");
|
||||
TYPE_MAPPING.put("integer", "NUMBER");
|
||||
TYPE_MAPPING.put("numeric", "NUMBER");
|
||||
TYPE_MAPPING.put("smallint", "NUMBER");
|
||||
TYPE_MAPPING.put("timestamp", "DATE");
|
||||
TYPE_MAPPING.put("text", "STRING");
|
||||
TYPE_MAPPING.put("time", "DATE");
|
||||
TYPE_MAPPING.put("tinyint", "NUMBER");
|
||||
TYPE_MAPPING.put("varchar2", "STRING");
|
||||
TYPE_MAPPING.put("varchar", "STRING");
|
||||
TYPE_MAPPING.put("char", "STRING");
|
||||
}
|
||||
|
||||
private static final Map<String, String> userDefType = new HashMap<>();
|
||||
|
||||
private static String getRawType(String columnDefinition) {
|
||||
String columnScript = columnDefinition.replaceAll("\s","#");
|
||||
for (String rawType : TYPE_MAPPING.keySet()) {
|
||||
if (columnScript.contains("#"+rawType)) {
|
||||
return rawType;
|
||||
}
|
||||
if (columnScript.contains("#"+rawType+"(")) {
|
||||
return rawType;
|
||||
}
|
||||
if (columnScript.contains("#"+rawType+"#(")) {
|
||||
return rawType;
|
||||
}
|
||||
}
|
||||
return "varchar";
|
||||
}
|
||||
|
||||
public static void createUserDefineType(DbTable table) {
|
||||
String schemaName = table.getParent() != null ? table.getParent().getName() : "";
|
||||
DasUtil.getCatalogObject(table).getDasChildren(ObjectKind.SCHEMA).forEach(schema -> {
|
||||
if (schema.getName().equals("public") || schema.getName().equals(schemaName)) {
|
||||
schema.getDasChildren(ObjectKind.OBJECT_TYPE).forEach(domain -> {
|
||||
String domainName = domain.getName();
|
||||
String domainScript = ((DbObject) domain).getText();
|
||||
userDefType.put(domainName, getRawType(domainScript));
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public static String getFieldType(DasColumn column) {
|
||||
String columnType = column.getDasType().toDataType().typeName;
|
||||
String fieldType = TYPE_MAPPING.get(columnType);
|
||||
if (fieldType == null) {
|
||||
fieldType = TYPE_MAPPING.getOrDefault(userDefType.getOrDefault(columnType, "varchar"), "Object");
|
||||
}
|
||||
return fieldType;
|
||||
}
|
||||
|
||||
public static String toCamelCase(String s, boolean capitalizeFirst) {
|
||||
String[] parts = s.split("_");
|
||||
StringBuilder camelCaseString = new StringBuilder();
|
||||
for (int i = 0; i < parts.length; i++) {
|
||||
String part = parts[i];
|
||||
if (i == 0 && !capitalizeFirst) {
|
||||
camelCaseString.append(part.toLowerCase());
|
||||
} else {
|
||||
camelCaseString.append(capitalize(part));
|
||||
}
|
||||
}
|
||||
return camelCaseString.toString();
|
||||
}
|
||||
|
||||
public static String capitalize(String s) {
|
||||
if (s == null || s.isEmpty()) {
|
||||
return s;
|
||||
}
|
||||
return s.substring(0, 1).toUpperCase() + s.substring(1).toLowerCase();
|
||||
}
|
||||
|
||||
public static String getSelectedPackage(Project project, VirtualFile selectDirectory) {
|
||||
if (selectDirectory == null) return "";
|
||||
return PackageIndex.getInstance(project).getPackageNameByDirectory(selectDirectory);
|
||||
}
|
||||
|
||||
public static VirtualFile findSourceRoot(Project project) {
|
||||
for (VirtualFile root : ProjectRootManager.getInstance(project).getContentSourceRoots()) {
|
||||
if (root.isDirectory() && !root.getName().equals("resources")) {
|
||||
return root;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static VirtualFile createPackageDirs(Object requestor, VirtualFile sourceRoot, String path) throws IOException {
|
||||
VirtualFile current = sourceRoot;
|
||||
for (String part : path.split("/")) {
|
||||
VirtualFile child = current.findChild(part);
|
||||
if (child == null) {
|
||||
child = current.createChildDirectory(requestor, part);
|
||||
}
|
||||
current = child;
|
||||
}
|
||||
return current;
|
||||
}
|
||||
|
||||
public static void showError(Project project, String message) {
|
||||
ApplicationManager.getApplication().invokeLater(() -> Messages.showErrorDialog(project, message, "Generation Failed"));
|
||||
NotificationGroupManager.getInstance()
|
||||
// This ID should be registered in your plugin.xml
|
||||
.getNotificationGroup("Action-Models-Generator-Notification")
|
||||
.createNotification("ActionModels Generator", message, NotificationType.ERROR)
|
||||
.notify(project);
|
||||
}
|
||||
|
||||
public static void showInfo(Project project, String title, String content) {
|
||||
NotificationGroupManager.getInstance()
|
||||
// This ID should be registered in your plugin.xml
|
||||
.getNotificationGroup("Action-Models-Generator-Notification")
|
||||
.createNotification(title, content, NotificationType.INFORMATION)
|
||||
.notify(project);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,22 +1,32 @@
|
||||
package com.sdk.actionbean.generator;
|
||||
package com.sdk.generators.actionmodels;
|
||||
|
||||
import com.intellij.database.model.*;
|
||||
import com.intellij.database.psi.*;
|
||||
import com.intellij.database.util.*;
|
||||
import com.intellij.openapi.actionSystem.*;
|
||||
import com.intellij.openapi.application.*;
|
||||
import com.intellij.openapi.fileChooser.*;
|
||||
import com.intellij.openapi.project.*;
|
||||
import com.intellij.openapi.ui.*;
|
||||
import com.intellij.openapi.vfs.*;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.util.containers.*;
|
||||
import org.jetbrains.annotations.*;
|
||||
import com.intellij.database.model.DasColumn;
|
||||
import com.intellij.database.model.ObjectKind;
|
||||
import com.intellij.database.psi.DbObject;
|
||||
import com.intellij.database.psi.DbTable;
|
||||
import com.intellij.database.util.DasUtil;
|
||||
import com.intellij.openapi.actionSystem.AnAction;
|
||||
import com.intellij.openapi.actionSystem.AnActionEvent;
|
||||
import com.intellij.openapi.actionSystem.LangDataKeys;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.fileChooser.FileChooserFactory;
|
||||
import com.intellij.openapi.fileChooser.FileSaverDescriptor;
|
||||
import com.intellij.openapi.fileChooser.FileSaverDialog;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.openapi.vfs.VirtualFileWrapper;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.util.containers.JBIterable;
|
||||
import com.sdk.generators.GUtils;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.io.*;
|
||||
import java.nio.charset.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class GenerateAction extends AnAction {
|
||||
|
||||
@@ -44,7 +54,7 @@ public class GenerateAction extends AnAction {
|
||||
|
||||
private static final Map<String,String> userDefType = new HashMap<>();
|
||||
|
||||
private String getRawType(String columnDefinition ) {
|
||||
private static String getRawType(String columnDefinition ) {
|
||||
for (String rawType : TYPE_MAPPING.keySet()) {
|
||||
if (columnDefinition.contains(rawType)) {
|
||||
return rawType;
|
||||
@@ -53,7 +63,7 @@ public class GenerateAction extends AnAction {
|
||||
return "varchar";
|
||||
}
|
||||
|
||||
private void createUserDefineType(DbTable table) {
|
||||
private static void createUserDefineType(DbTable table) {
|
||||
if (userDefType.isEmpty()) {
|
||||
String schemaName = table.getParent() != null ? table.getParent().getName() : "";
|
||||
DasUtil.getCatalogObject(table).getDasChildren(ObjectKind.SCHEMA).forEach(schema -> {
|
||||
@@ -68,7 +78,7 @@ public class GenerateAction extends AnAction {
|
||||
}
|
||||
}
|
||||
|
||||
private String getFieldType(String columnType) {
|
||||
public static String getFieldType(String columnType) {
|
||||
columnType = columnType.toLowerCase();
|
||||
String fieldType = TYPE_MAPPING.get(columnType );
|
||||
if (fieldType == null) {
|
||||
@@ -96,22 +106,22 @@ public class GenerateAction extends AnAction {
|
||||
createUserDefineType(table);
|
||||
}
|
||||
|
||||
String className = toCamelCase(table.getName(), true);
|
||||
String className = GUtils.toCamelCase(table.getName(), true);
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append("public class ").append(className).append(" {\n\n");
|
||||
|
||||
JBIterable<? extends DasColumn> columns = DasUtil.getColumns(table);
|
||||
for (DasColumn column : columns) {
|
||||
String fieldName = toCamelCase(column.getName(), false);
|
||||
String fieldName = GUtils.toCamelCase(column.getName(), false);
|
||||
String fieldType = getFieldType(column.getDasType().toDataType().typeName);
|
||||
builder.append(" private ").append(fieldType).append(" ").append(fieldName).append(";\n");
|
||||
}
|
||||
builder.append("\n");
|
||||
|
||||
for (DasColumn column : columns) {
|
||||
String fieldName = toCamelCase(column.getName(), false);
|
||||
String fieldName = GUtils.toCamelCase(column.getName(), false);
|
||||
String fieldType = getFieldType(column.getDasType().toDataType().typeName);
|
||||
String capitalizedFieldName = capitalize(fieldName);
|
||||
String capitalizedFieldName = GUtils.capitalize(fieldName);
|
||||
|
||||
builder.append(" public ").append(fieldType).append(" get").append(capitalizedFieldName).append("() {\n");
|
||||
builder.append(" return ").append(fieldName).append(";\n");
|
||||
@@ -139,25 +149,4 @@ public class GenerateAction extends AnAction {
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private String toCamelCase(String s, boolean capitalizeFirst) {
|
||||
String[] parts = s.split("_");
|
||||
StringBuilder camelCaseString = new StringBuilder();
|
||||
for (int i = 0; i < parts.length; i++) {
|
||||
String part = parts[i];
|
||||
if (i == 0 && !capitalizeFirst) {
|
||||
camelCaseString.append(part.toLowerCase());
|
||||
} else {
|
||||
camelCaseString.append(capitalize(part));
|
||||
}
|
||||
}
|
||||
return camelCaseString.toString();
|
||||
}
|
||||
|
||||
private String capitalize(String s) {
|
||||
if (s == null || s.isEmpty()) {
|
||||
return s;
|
||||
}
|
||||
return s.substring(0, 1).toUpperCase() + s.substring(1).toLowerCase();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.sdk.actionbean.generator;
|
||||
package com.sdk.generators.actionmodels;
|
||||
|
||||
import com.intellij.database.psi.DbTable;
|
||||
import com.intellij.openapi.actionSystem.AnAction;
|
||||
@@ -13,12 +13,9 @@ import com.intellij.openapi.progress.ProgressIndicator;
|
||||
import com.intellij.openapi.progress.ProgressManager;
|
||||
import com.intellij.openapi.progress.Task;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.roots.ProjectRootManager;
|
||||
import com.intellij.openapi.project.ProjectUtil;
|
||||
import com.intellij.openapi.roots.PackageIndex;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.sdk.generators.GUtils;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -35,9 +32,10 @@ public class GenerateBeanAction extends AnAction {
|
||||
|
||||
FileChooserDescriptor descriptor = new FileChooserDescriptor(false,true,false,false,false,false);
|
||||
PathChooserDialog pathChooser = FileChooserFactory.getInstance().createPathChooser(descriptor, project, null);
|
||||
VirtualFile baseDir = ProjectUtil.guessProjectDir(project);
|
||||
VirtualFile baseDir = GUtils.findSourceRoot(project);
|
||||
|
||||
pathChooser.choose(baseDir, virtualFiles -> {
|
||||
String packageName = getSelectedPackage(project, virtualFiles.getFirst());
|
||||
String packageName = GUtils.getSelectedPackage(project, virtualFiles.getFirst());
|
||||
|
||||
ArrayList<DbTable> tables = new ArrayList<>();
|
||||
for (PsiElement psiElement : psiElements) {
|
||||
@@ -58,30 +56,11 @@ public class GenerateBeanAction extends AnAction {
|
||||
try {
|
||||
new GeneratorServices(project,tables,packageName).execute(indicator);
|
||||
} catch (Exception ex) {
|
||||
showError(project, "An error occurred during code generation: " + ex.getMessage());
|
||||
GUtils.showError(project, "An error occurred during code generation: " + ex.getMessage());
|
||||
}
|
||||
})
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void showError(Project project, String message) {
|
||||
ApplicationManager.getApplication().invokeLater(() -> Messages.showErrorDialog(project, message, "Generation Failed"));
|
||||
}
|
||||
|
||||
private String getSelectedPackage(Project project, VirtualFile selectDirectory) {
|
||||
if (selectDirectory == null) return "";
|
||||
String packageName = PackageIndex.getInstance(project).getPackageNameByDirectory(selectDirectory);
|
||||
return packageName;
|
||||
}
|
||||
|
||||
private VirtualFile findSourceRoot(Project project, String packageName) {
|
||||
for (VirtualFile root : ProjectRootManager.getInstance(project).getContentSourceRoots()) {
|
||||
if (root.isDirectory() && !root.getName().equals("resources")) {
|
||||
return root;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -1,84 +1,148 @@
|
||||
package com.sdk.actionbean.generator;
|
||||
package com.sdk.generators.actionmodels;
|
||||
|
||||
import com.intellij.database.model.DasColumn;
|
||||
import com.intellij.database.model.DasTableKey;
|
||||
import com.intellij.database.psi.DbTable;
|
||||
import com.intellij.database.util.DasUtil;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.progress.ProgressIndicator;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.util.containers.JBIterable;
|
||||
import com.sdk.generators.GUtils;
|
||||
import freemarker.template.Configuration;
|
||||
import freemarker.template.Template;
|
||||
import freemarker.template.TemplateExceptionHandler;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.sql.DatabaseMetaData;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Types;
|
||||
import java.io.OutputStreamWriter;
|
||||
import java.io.Writer;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class GeneratorServices {
|
||||
|
||||
private final String packageName;
|
||||
private final String basePackage;
|
||||
private final Project project;
|
||||
private final ArrayList<DbTable> tables;
|
||||
|
||||
public GeneratorServices(Project project, ArrayList<DbTable> tables, String packageName) {
|
||||
public GeneratorServices(Project project, ArrayList<DbTable> tables, String basePackage) {
|
||||
this.tables = tables;
|
||||
this.project = project;
|
||||
this.packageName = packageName;
|
||||
this.basePackage = basePackage;
|
||||
}
|
||||
|
||||
private void genDataModel(Template template, Map<String, Object> model, VirtualFile targetDir, String classFile, ProgressIndicator indicator) {
|
||||
try {
|
||||
VirtualFile outputFile = targetDir.findOrCreateChildData(this, classFile);
|
||||
ApplicationManager.getApplication().runWriteAction(() -> {
|
||||
try (Writer writer = new OutputStreamWriter(outputFile.getOutputStream(this))) {
|
||||
template.process(model, writer);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
indicator.setText2("Generated " + outputFile.getName());
|
||||
GUtils.showInfo(project, "ActionModels Generator", "Generated " + outputFile.getName());
|
||||
});
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public void execute(@NotNull ProgressIndicator indicator) {
|
||||
// String packagePath = packageName.replace('.', '/');
|
||||
// VirtualFile packageDir = createPackageDirs(sourceRoot, packagePath);
|
||||
//
|
||||
// Configuration cfg = new Configuration(Configuration.VERSION_2_3_32);
|
||||
// cfg.setClassForTemplateLoading(this.getClass(), "/templates");
|
||||
// cfg.setDefaultEncoding("UTF-8");
|
||||
// cfg.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);
|
||||
// Template template = cfg.getTemplate("actionBean.ftl");
|
||||
//
|
||||
// DatabaseMetaData metaData = conn.getMetaData();
|
||||
// try (ResultSet tables = metaData.getTables(null, dbSchema.toUpperCase(), tablePattern, new String[]{"TABLE"})) {
|
||||
// while (tables.next()) {
|
||||
// String tableName = tables.getString("TABLE_NAME");
|
||||
// indicator.setText("Processing table: " + tableName);
|
||||
//
|
||||
// Map<String, Object> model = createModelForTable(metaData, tableName, dbSchema);
|
||||
//
|
||||
// VirtualFile outputFile = packageDir.findOrCreateChildData(this, model.get("className") + ".java");
|
||||
// try (Writer writer = new OutputStreamWriter(outputFile.getOutputStream(this))) {
|
||||
// template.process(model, writer);
|
||||
// }
|
||||
// indicator.setText2("Generated " + outputFile.getName());
|
||||
// }
|
||||
// }
|
||||
// Use AtomicInteger to safely count files within the lambda expression
|
||||
AtomicInteger fileCount = new AtomicInteger(0);
|
||||
try {
|
||||
|
||||
VirtualFile sourceRoot = GUtils.findSourceRoot(project);
|
||||
String packagePath = basePackage.replace('.', '/');
|
||||
|
||||
|
||||
Configuration cfg = new Configuration(Configuration.VERSION_2_3_32);
|
||||
cfg.setClassForTemplateLoading(this.getClass(), "/templates");
|
||||
cfg.setDefaultEncoding("UTF-8");
|
||||
cfg.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);
|
||||
|
||||
|
||||
VirtualFile beanExtDir = GUtils.createPackageDirs(this, sourceRoot, Path.of(packagePath, "/bean").toString());
|
||||
VirtualFile beanDir = GUtils.createPackageDirs(this, sourceRoot, Path.of(packagePath, "/bean/base").toString());
|
||||
Template tmpBean = cfg.getTemplate("actionBean.ftl");
|
||||
Template tmpBeanExt = cfg.getTemplate("actionBean.extend.ftl");
|
||||
|
||||
VirtualFile DTOExtDir = GUtils.createPackageDirs(this, sourceRoot, Path.of(packagePath, "/dto").toString());
|
||||
VirtualFile DTODir = GUtils.createPackageDirs(this, sourceRoot, Path.of(packagePath, "/dto/base").toString());
|
||||
Template tmpDTO = cfg.getTemplate("actionDTO.ftl");
|
||||
Template tmpDTOExt = cfg.getTemplate("actionDTO.extend.ftl");
|
||||
|
||||
tables.forEach(table -> {
|
||||
Map<String, Object> model = createModelForTable(table);
|
||||
|
||||
String className = model.get("className").toString();
|
||||
String classFile = className + ".java";
|
||||
|
||||
genDataModel(tmpBean, model, beanDir, classFile, indicator);
|
||||
fileCount.getAndIncrement();
|
||||
|
||||
if (!Files.exists(Path.of(beanExtDir.toNioPath().toString(), classFile))) {
|
||||
genDataModel(tmpBeanExt, model, beanExtDir, classFile, indicator);
|
||||
fileCount.getAndIncrement();
|
||||
}
|
||||
|
||||
// FIX: Use a separate variable for the DTO filename to avoid overwriting the wrong file.
|
||||
String dtoClassFile = "DTO_" + className + ".java";
|
||||
genDataModel(tmpDTO, model, DTODir, dtoClassFile, indicator);
|
||||
fileCount.getAndIncrement();
|
||||
|
||||
if (!Files.exists(Path.of(DTOExtDir.toNioPath().toString(), dtoClassFile))) {
|
||||
genDataModel(tmpDTOExt, model, DTOExtDir, dtoClassFile, indicator);
|
||||
fileCount.getAndIncrement();
|
||||
}
|
||||
});
|
||||
|
||||
// After the loop finishes, show a single, helpful summary notification.
|
||||
String message = String.format("Generated %d files for %d tables successfully.", fileCount.get(), tables.size());
|
||||
GUtils.showInfo(project, "ActionModels Generation Complete", message);
|
||||
|
||||
} catch (Exception ex) {
|
||||
GUtils.showError(project, "Generation Failed \n" + ex.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
private Map<String, Object> createModelForTable(DatabaseMetaData metaData, String tableName, String dbSchema) throws SQLException {
|
||||
private Map<String, Object> createModelForTable(DbTable table) {
|
||||
String tableName = table.getName().toUpperCase();
|
||||
String dbSchema = table.getParent() != null ? table.getParent().getName() : "";
|
||||
|
||||
GUtils.createUserDefineType(table);
|
||||
|
||||
Map<String, Object> model = new HashMap<>();
|
||||
model.put("packageName", packageName);
|
||||
model.put("basePackage", basePackage);
|
||||
model.put("tableName", tableName);
|
||||
model.put("className", tableName);
|
||||
model.put("dbSchema", dbSchema);
|
||||
|
||||
List<Map<String, Object>> columns = new ArrayList<>();
|
||||
Set<String> primaryKeys = new HashSet<>();
|
||||
try (ResultSet pks = metaData.getPrimaryKeys(null, dbSchema.toUpperCase(), tableName)) {
|
||||
while (pks.next()) {
|
||||
primaryKeys.add(pks.getString("COLUMN_NAME"));
|
||||
}
|
||||
}
|
||||
JBIterable<? extends DasTableKey> dasKeys = DasUtil.getTableKeys(table);
|
||||
|
||||
try (ResultSet cols = metaData.getColumns(null, dbSchema.toUpperCase(), tableName, "%")) {
|
||||
while (cols.next()) {
|
||||
Map<String, Object> colModel = new HashMap<>();
|
||||
String colName = cols.getString("COLUMN_NAME");
|
||||
int dataType = cols.getInt("DATA_TYPE");
|
||||
|
||||
colModel.put("name", colName);
|
||||
colModel.put("isPk", primaryKeys.contains(colName));
|
||||
colModel.put("customType", mapJdbcType(dataType));
|
||||
columns.add(colModel);
|
||||
dasKeys.forEach(key -> {
|
||||
if (key.isPrimary()) {
|
||||
DasUtil.getColumns(key).forEach(column -> primaryKeys.add(column.getName().toUpperCase()));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
JBIterable<? extends DasColumn> dasColumns = DasUtil.getColumns(table);
|
||||
dasColumns.forEach(column -> {
|
||||
Map<String, Object> colModel = new HashMap<>();
|
||||
String colName = column.getName().toUpperCase();
|
||||
String dataType = GUtils.getFieldType(column);
|
||||
colModel.put("name", colName);
|
||||
colModel.put("isPk", primaryKeys.contains(colName));
|
||||
colModel.put("customType", dataType);
|
||||
columns.add(colModel);
|
||||
});
|
||||
|
||||
model.put("columns", columns);
|
||||
model.put("fieldList", columns.stream().map(c -> (String) c.get("name")).collect(Collectors.joining(",")));
|
||||
@@ -86,25 +150,4 @@ public class GeneratorServices {
|
||||
|
||||
return model;
|
||||
}
|
||||
|
||||
private VirtualFile createPackageDirs(VirtualFile sourceRoot, String path) throws java.io.IOException {
|
||||
VirtualFile current = sourceRoot;
|
||||
for (String part : path.split("/")) {
|
||||
VirtualFile child = current.findChild(part);
|
||||
if (child == null) {
|
||||
child = current.createChildDirectory(this, part);
|
||||
}
|
||||
current = child;
|
||||
}
|
||||
return current;
|
||||
}
|
||||
|
||||
private String mapJdbcType(int jdbcType) {
|
||||
return switch (jdbcType) {
|
||||
case Types.NUMERIC, Types.DECIMAL, Types.INTEGER, Types.BIGINT, Types.SMALLINT, Types.TINYINT, Types.FLOAT, Types.DOUBLE -> "NUMBER";
|
||||
case Types.DATE, Types.TIMESTAMP, Types.TIMESTAMP_WITH_TIMEZONE -> "DATE";
|
||||
default -> "STRING";
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
<!-- Plugin Configuration File. Read more: https://plugins.jetbrains.com/docs/intellij/plugin-configuration-file.html -->
|
||||
<idea-plugin>
|
||||
<!-- Unique id for this plugin. Must stay constant for the life of the plugin. -->
|
||||
<id>com.sdk.actionbean.generator</id>
|
||||
<id>com.sdk.generators.actionmodels</id>
|
||||
<name>Database Action Models Generator</name>
|
||||
<vendor>Sakda Sakprapakorn</vendor>
|
||||
|
||||
@@ -16,13 +16,17 @@
|
||||
|
||||
<actions>
|
||||
<!-- Defines an action that will appear in the context menu for project directories -->
|
||||
<action id="ActionModelGenerator.GenerateAction"
|
||||
class="com.sdk.actionbean.generator.GenerateBeanAction"
|
||||
text="Generate Database Action Models"
|
||||
<action id="com.sdk.generators.actionmodels.GenerateBeanAction"
|
||||
class="com.sdk.generators.actionmodels.GenerateBeanAction"
|
||||
text="Generate Action Models"
|
||||
description="Generates ActionBean classes from a database schema.">
|
||||
<add-to-group group-id="GenerateGroup" anchor="first"/>
|
||||
<!-- This makes the action visible only when right-clicking a source package -->
|
||||
<add-to-group group-id="DatabaseViewPopupMenu" anchor="first"/>
|
||||
<keyboard-shortcut keymap="$default" first-keystroke="ctrl alt G"/>
|
||||
</action>
|
||||
</actions>
|
||||
|
||||
<!-- in plugin.xml, inside the <extensions defaultExtensionNs="com.intellij"> tag -->
|
||||
<extensions defaultExtensionNs="com.intellij">
|
||||
<notificationGroup id="Action-Models-Generator-Notification" displayType="BALLOON" isLogByDefault="true"/>
|
||||
</extensions>
|
||||
</idea-plugin>
|
||||
@@ -1,13 +1,13 @@
|
||||
package ${packageName}.bean;
|
||||
package ${basePackage}.bean;
|
||||
|
||||
/**
|
||||
* Generated by IntelliJ ActionBean Generator
|
||||
* Table: ${tableName}
|
||||
/*
|
||||
Generated by ActionBean Generator
|
||||
For Table : ${tableName}
|
||||
*/
|
||||
|
||||
import sdk.dbutils.*;
|
||||
|
||||
public class ${tableName} extends ${packageName}.bean.base.${tableName} {
|
||||
public class ${tableName} extends ${basePackage}.bean.base.${tableName} {
|
||||
public ${tableName}(DBConnector connector) { //class construction
|
||||
super(connector);
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package ${packageName}.bean.base;
|
||||
package ${basePackage}.bean.base;
|
||||
|
||||
/**
|
||||
* Generated by IntelliJ ActionBean Generator
|
||||
* Table: ${tableName}
|
||||
/*
|
||||
Generated by ActionBean Generator
|
||||
For Table : ${tableName}
|
||||
*/
|
||||
|
||||
import sdk.dbutils.*;
|
||||
@@ -16,12 +16,22 @@ public class ${className} extends ActionBean {
|
||||
public static final String fullTableName = "${tableName}";
|
||||
private DTO_${tableName} myDTO;
|
||||
|
||||
<#list columns as col>
|
||||
public final ActionField afx${col.name};
|
||||
</#list>
|
||||
|
||||
public ${className}(DBConnector dbConnector) { //class construction
|
||||
super(dbConnector, fullTableName);
|
||||
myDTO = new DTO_${tableName}();
|
||||
initFieldDefs();
|
||||
fieldList = "${fieldList}";
|
||||
keyList = "${keyList}";
|
||||
|
||||
// Create ActionField Instant (afx) for each field
|
||||
<#list columns as col>
|
||||
afx${col.name} = new ActionField(this,${col.name});
|
||||
</#list>
|
||||
|
||||
}
|
||||
|
||||
public ${className}() { //class construction
|
||||
@@ -30,6 +40,11 @@ public class ${className} extends ActionBean {
|
||||
initFieldDefs();
|
||||
fieldList = "${fieldList}";
|
||||
keyList = "${keyList}";
|
||||
|
||||
// Create ActionField Instant (afx) for each field
|
||||
<#list columns as col>
|
||||
afx${col.name} = new ActionField(this,${col.name});
|
||||
</#list>
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -58,10 +73,24 @@ public class ${className} extends ActionBean {
|
||||
</#list>
|
||||
Sql.append(" FROM ${tableName}\n");
|
||||
Sql.append(" WHERE 0=0 \n");
|
||||
|
||||
sqlSelect = new StringBuilder(Sql);
|
||||
}
|
||||
|
||||
<#-- Generate Field Constants -->
|
||||
<#list columns as col>
|
||||
public static final String ${col.name} = "${col.name}";
|
||||
</#list>
|
||||
|
||||
<#-- Generate Getter -->
|
||||
<#list columns as col>
|
||||
public String get${col.name}() {
|
||||
return getValue(${col.name});
|
||||
}
|
||||
public String get${col.name}(String defValue) {
|
||||
return getValue(${col.name}, defValue);
|
||||
}
|
||||
</#list>
|
||||
|
||||
<#-- Generate Setters -->
|
||||
<#list columns as col>
|
||||
public void set${col.name}(String value) {
|
||||
@@ -70,34 +99,34 @@ public class ${className} extends ActionBean {
|
||||
setKeyField(${col.name}, value);
|
||||
fieldByName(${col.name}).setAsString(value);
|
||||
} else {
|
||||
<#if col.customType == "NUMBER">
|
||||
setKeyField(${col.name}, JUtils.cleanUpNumber(value));
|
||||
fieldByName(${col.name}).setAsString(JUtils.cleanUpNumber(value));
|
||||
<#elseif col.customType == "DATE">
|
||||
setKeyField(${col.name}, DateUtils.strToSqlDate(value));
|
||||
fieldByName(${col.name}).setAsString(value);
|
||||
<#else>
|
||||
setKeyField(${col.name}, value);
|
||||
fieldByName(${col.name}).setAsString(value);
|
||||
</#if>
|
||||
}
|
||||
<#elseif col.customType == "DATE">
|
||||
<#else>
|
||||
if (JUtils.isMacro(value)) {
|
||||
setField(${col.name}, value);
|
||||
fieldByName(${col.name}).setAsString(value);
|
||||
} else {
|
||||
<#if col.customType == "NUMBER">
|
||||
setField(${col.name}, JUtils.cleanUpNumber(value));
|
||||
fieldByName(${col.name}).setAsString(JUtils.cleanUpNumber(value));
|
||||
<#elseif col.customType == "DATE">
|
||||
setField(${col.name}, DateUtils.strToSqlDate(value));
|
||||
fieldByName(${col.name}).setAsString(value);
|
||||
<#else>
|
||||
setField(${col.name}, value);
|
||||
fieldByName(${col.name}).setAsString(value);
|
||||
</#if>
|
||||
}
|
||||
<#else>
|
||||
setField(${col.name}, value);
|
||||
fieldByName(${col.name}).setAsString(value);
|
||||
</#if>
|
||||
}
|
||||
|
||||
</#list>
|
||||
|
||||
<#-- Generate Getters and Constants -->
|
||||
<#list columns as col>
|
||||
public static final String ${col.name} = "${col.name}";
|
||||
public String get${col.name}() {
|
||||
return getValue(${col.name});
|
||||
}
|
||||
public String get${col.name}(String defValue) {
|
||||
return getValue(${col.name}, defValue);
|
||||
}
|
||||
|
||||
</#list>
|
||||
}
|
||||
@@ -1,18 +1,18 @@
|
||||
package ${basePackage}.bean;
|
||||
package ${basePackage}.dto;
|
||||
|
||||
/**
|
||||
* Generated by IntelliJ ActionBean Generator
|
||||
* For Table : ${tableName}
|
||||
/*
|
||||
Generated by ActionBean Generator
|
||||
For Table : ${tableName}
|
||||
*/
|
||||
|
||||
import sdk.dbutils.*;
|
||||
|
||||
public class ${tableName} extends ${basePackage}.bean.base.${tableName} {
|
||||
public ${tableName}(DBConnector connector) { //class construction
|
||||
super(connector);
|
||||
public class DTO_${tableName} extends ${basePackage}.dto.base.DTO_${tableName} {
|
||||
public DTO_${tableName}(DTO dto) { //class construction
|
||||
super(dto);
|
||||
}
|
||||
|
||||
public ${tableName}() { //class construction
|
||||
public DTO_${tableName}() { //class construction
|
||||
super();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,103 +1,59 @@
|
||||
package ${basePackage}.bean.base;
|
||||
package ${basePackage}.dto.base;
|
||||
|
||||
/**
|
||||
* Generated by IntelliJ ActionBean Generator
|
||||
* For Table: ${tableName}
|
||||
/*
|
||||
Generated by ActionBean Generator
|
||||
For Table : ${tableName}
|
||||
*/
|
||||
|
||||
import sdk.dbutils.*;
|
||||
import sdk.utils.*;
|
||||
import ${basePackage}.dto.*;
|
||||
|
||||
public class ${className} extends ActionBean {
|
||||
public class DTO_${className} extends DTO {
|
||||
|
||||
public static final String tableName = "${tableName}";
|
||||
public static final String schemaName = "${dbSchema}";
|
||||
public static final String fullTableName = "${tableName}";
|
||||
private DTO_${tableName} myDTO;
|
||||
|
||||
public ${className}(DBConnector dbConnector) { //class construction
|
||||
super(dbConnector, fullTableName);
|
||||
myDTO = new DTO_${tableName}();
|
||||
initFieldDefs();
|
||||
fieldList = "${fieldList}";
|
||||
keyList = "${keyList}";
|
||||
}
|
||||
|
||||
public ${className}() { //class construction
|
||||
super();
|
||||
myDTO = new DTO_${tableName}();
|
||||
initFieldDefs();
|
||||
fieldList = "${fieldList}";
|
||||
keyList = "${keyList}";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initFieldDefs() {
|
||||
fieldDefs.clear();
|
||||
<#list columns as col>
|
||||
fieldDefs.put("${col.name}", "${col.customType}<#if col.isPk>:KEY</#if>");
|
||||
</#list>
|
||||
}
|
||||
|
||||
public DTO_${tableName} getInstanceDTO() {
|
||||
myDTO.setDTO(this.getDTO());
|
||||
return myDTO;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initSqlSelect() {
|
||||
StringBuilder Sql = new StringBuilder();
|
||||
Sql.append("SELECT ");
|
||||
<#list columns as col>
|
||||
<#if col?is_first>
|
||||
Sql.append(" <#if col.customType == 'DATE'>JDTOET(${col.name}) ${col.name}, ${col.name} AS DT_${col.name}<#else> ${col.name}</#if>\n");
|
||||
<#else>
|
||||
Sql.append(" ,<#if col.customType == 'DATE'>JDTOET(${col.name}) ${col.name}, ${col.name} AS DT_${col.name}<#else>${col.name}</#if>\n");
|
||||
</#if>
|
||||
</#list>
|
||||
Sql.append(" FROM ${tableName}\n");
|
||||
Sql.append(" WHERE 0=0 \n");
|
||||
|
||||
sqlSelect = new StringBuilder(Sql);
|
||||
}
|
||||
|
||||
<#-- Generate Setters -->
|
||||
<#list columns as col>
|
||||
public void set${col.name}(String value) {
|
||||
<#if col.isPk>
|
||||
if (JUtils.isMacro(value)) {
|
||||
setKeyField(${col.name}, value);
|
||||
fieldByName(${col.name}).setAsString(value);
|
||||
} else {
|
||||
setKeyField(${col.name}, JUtils.cleanUpNumber(value));
|
||||
fieldByName(${col.name}).setAsString(JUtils.cleanUpNumber(value));
|
||||
}
|
||||
<#elseif col.customType == "DATE">
|
||||
if (JUtils.isMacro(value)) {
|
||||
setField(${col.name}, value);
|
||||
fieldByName(${col.name}).setAsString(value);
|
||||
} else {
|
||||
setField(${col.name}, DateUtils.strToSqlDate(value));
|
||||
fieldByName(${col.name}).setAsString(value);
|
||||
}
|
||||
<#else>
|
||||
setField(${col.name}, value);
|
||||
fieldByName(${col.name}).setAsString(value);
|
||||
</#if>
|
||||
}
|
||||
|
||||
public final DTOField dfx${col.name};
|
||||
</#list>
|
||||
|
||||
<#-- Generate Getters and Constants -->
|
||||
public DTO_${className}() { //class construction
|
||||
super();
|
||||
setFieldList("${fieldList}");
|
||||
|
||||
// Create DTOField Instant (dfx) for each field
|
||||
<#list columns as col>
|
||||
dfx${col.name} = new DTOField(this,${col.name});
|
||||
</#list>
|
||||
}
|
||||
|
||||
public DTO_${className}(DTO dto) { //class construction
|
||||
super();
|
||||
setFieldList("${fieldList}");
|
||||
this.data = dto.getData();
|
||||
|
||||
// Create DTOField Instant (dfx) for each field
|
||||
<#list columns as col>
|
||||
dfx${col.name} = new DTOField(this,${col.name});
|
||||
</#list>
|
||||
}
|
||||
|
||||
public void setDTO(DTO dto) {
|
||||
this.data = dto.getData();
|
||||
}
|
||||
|
||||
<#-- Generate Field Constants -->
|
||||
<#list columns as col>
|
||||
public static final String ${col.name} = "${col.name}";
|
||||
</#list>
|
||||
|
||||
<#-- Generate Getters and Setter -->
|
||||
<#list columns as col>
|
||||
public String get${col.name}() {
|
||||
return getValue(${col.name});
|
||||
}
|
||||
public String get${col.name}(String defValue) {
|
||||
return getValue(${col.name}, defValue);
|
||||
}
|
||||
|
||||
public void set${col.name}(String value) {
|
||||
setValue(${col.name}, value);
|
||||
}
|
||||
</#list>
|
||||
}
|
||||
Reference in New Issue
Block a user