1. IntelliJ IDEA
1.1. Live templates
Here are a few live templates for IntelliJ, reducing the typing required when defining a domain model.
Add this file to the templates directory in the IntelliJ IDEA configuration directory.
View template file
<templateSet group="codion">
<template name="cod" value="Column<Double> $ATTRIBUTE_NAME$ = TYPE.doubleColumn("$COLUMN_NAME$");$END$" description="Column<Double>" toReformat="false" toShortenFQNames="true">
<variable name="COLUMN_NAME" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="ATTRIBUTE_NAME" expression="groovyScript("_1.toUpperCase()", COLUMN_NAME)" defaultValue="" alwaysStopAt="true" />
<context>
<option name="JAVA_DECLARATION" value="true" />
</context>
</template>
<template name="coi" value="Column<Integer> $ATTRIBUTE_NAME$ = TYPE.integerColumn("$COLUMN_NAME$");$END$" description="Column<Integer>" toReformat="false" toShortenFQNames="true">
<variable name="COLUMN_NAME" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="ATTRIBUTE_NAME" expression="groovyScript("_1.toUpperCase()", COLUMN_NAME)" defaultValue="" alwaysStopAt="true" />
<context>
<option name="JAVA_DECLARATION" value="true" />
</context>
</template>
<template name="col" value="Column<Long> $ATTRIBUTE_NAME$ = TYPE.longColumn("$COLUMN_NAME$");$END$" description="Column<Long>" toReformat="false" toShortenFQNames="true">
<variable name="COLUMN_NAME" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="ATTRIBUTE_NAME" expression="groovyScript("_1.toUpperCase()", COLUMN_NAME)" defaultValue="" alwaysStopAt="true" />
<context>
<option name="JAVA_DECLARATION" value="true" />
</context>
</template>
<template name="cos" value="Column<String> $ATTRIBUTE_NAME$ = TYPE.stringColumn("$COLUMN_NAME$");$END$" description="Column<String>" toReformat="false" toShortenFQNames="true">
<variable name="COLUMN_NAME" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="ATTRIBUTE_NAME" expression="groovyScript("_1.toUpperCase()", COLUMN_NAME)" defaultValue="" alwaysStopAt="true" />
<context>
<option name="JAVA_DECLARATION" value="true" />
</context>
</template>
<template name="fk" value="ForeignKey $ATTRIBUTE_NAME$ = TYPE.foreignKey("$FK_NAME$", $END$);" description="ForeignKey" toReformat="false" toShortenFQNames="true">
<variable name="FK_NAME" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="ATTRIBUTE_NAME" expression="groovyScript("_1.toUpperCase()", FK_NAME)" defaultValue="" alwaysStopAt="true" />
<context>
<option name="JAVA_DECLARATION" value="true" />
</context>
</template>
<template name="cold" value="Column<LocalDate> $ATTRIBUTE_NAME$ = TYPE.localDateColumn("$COLUMN_NAME$");$END$" description="Column<LocalDate>" toReformat="false" toShortenFQNames="true">
<variable name="COLUMN_NAME" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="ATTRIBUTE_NAME" expression="groovyScript("_1.toUpperCase()", COLUMN_NAME)" defaultValue="" alwaysStopAt="true" />
<context>
<option name="JAVA_DECLARATION" value="true" />
</context>
</template>
<template name="coldt" value="Column<LocalDateTime> $ATTRIBUTE_NAME$ = TYPE.localDateTimeColumn("$COLUMN_NAME$");$END$" description="Column<LocalDateTime>" toReformat="false" toShortenFQNames="true">
<variable name="COLUMN_NAME" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="ATTRIBUTE_NAME" expression="groovyScript("_1.toUpperCase()", COLUMN_NAME)" defaultValue="" alwaysStopAt="true" />
<context>
<option name="JAVA_DECLARATION" value="true" />
</context>
</template>
<template name="et" value="EntityType TYPE = DOMAIN.entityType("$TABLE_NAME$");$END$" description="EntityType" toReformat="false" toShortenFQNames="true">
<variable name="TABLE_NAME" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="JAVA_DECLARATION" value="true" />
</context>
</template>
<template name="cob" value="Column<Boolean> $ATTRIBUTE_NAME$ = TYPE.booleanColumn("$COLUMN_NAME$");$END$" description="Column<Boolean>" toReformat="false" toShortenFQNames="true">
<variable name="COLUMN_NAME" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="ATTRIBUTE_NAME" expression="groovyScript("_1.toUpperCase()", COLUMN_NAME)" defaultValue="" alwaysStopAt="true" />
<context>
<option name="JAVA_DECLARATION" value="true" />
</context>
</template>
<template name="cosh" value="Column<Short> $ATTRIBUTE_NAME$ = TYPE.shortColumn("$COLUMN_NAME$");$END$" description="Column<Short>" toReformat="false" toShortenFQNames="true">
<variable name="COLUMN_NAME" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="ATTRIBUTE_NAME" expression="groovyScript("_1.toUpperCase()", COLUMN_NAME)" defaultValue="" alwaysStopAt="true" />
<context>
<option name="JAVA_DECLARATION" value="true" />
</context>
</template>
<template name="coc" value="Column<Character> $ATTRIBUTE_NAME$ = TYPE.characterColumn("$COLUMN_NAME$");$END$" description="Column<Character>" toReformat="false" toShortenFQNames="true">
<variable name="COLUMN_NAME" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="ATTRIBUTE_NAME" expression="groovyScript("_1.toUpperCase()", COLUMN_NAME)" defaultValue="" alwaysStopAt="true" />
<context>
<option name="JAVA_DECLARATION" value="true" />
</context>
</template>
<template name="coodt" value="Column<OffsetDateTime> $ATTRIBUTE_NAME$ = TYPE.offsetDateTimeColumn("$COLUMN_NAME$");$END$" description="Column<OffsetDateTime>" toReformat="false" toShortenFQNames="true">
<variable name="COLUMN_NAME" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="ATTRIBUTE_NAME" expression="groovyScript("_1.toUpperCase()", COLUMN_NAME)" defaultValue="" alwaysStopAt="true" />
<context>
<option name="JAVA_DECLARATION" value="true" />
</context>
</template>
<template name="coby" value="Column<byte[]> $ATTRIBUTE_NAME$ = TYPE.byteArrayColumn("$COLUMN_NAME$");$END$" description="Column<byte[]>" toReformat="false" toShortenFQNames="true">
<variable name="COLUMN_NAME" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="ATTRIBUTE_NAME" expression="groovyScript("_1.toUpperCase()", COLUMN_NAME)" defaultValue="" alwaysStopAt="true" />
<context>
<option name="JAVA_DECLARATION" value="true" />
</context>
</template>
</templateSet>
1.1.1. Available templates
Name | Template |
---|---|
et |
EntityType TYPE = DOMAIN.entityType("table_name"); |
fk |
ForeignKey FK_KEY = TYPE.foreignKey("fk_key"); |
cosh |
Column<Short> COLUMN = TYPE.shortColumn("column"); |
coi |
Column<Integer> COLUMN = TYPE.integerColumn("column"); |
col |
Column<Long> COLUMN = TYPE.longColumn("column"); |
cod |
Column<Double> COLUMN = TYPE.doubleColumn("column"); |
cos |
Column<String> COLUMN = TYPE.stringColumn("column"); |
cold |
Column<LocalDate> COLUMN = TYPE.localDateColumn("column"); |
coldt |
Column<LocalDateTime> COLUMN = TYPE.localDateTimeColumn("column"); |
coodt |
Column<OffsetDateTime> COLUMN = TYPE.offsetDateTimeColumn("column"); |
cob |
Column<Boolean> COLUMN = TYPE.booleanColumn("column"); |
coc |
Column<Character> COLUMN = TYPE.characterColumn("column"); |
coby |
Column<byte[]> COLUMN = TYPE.byteArrayColumn("column"); |