[jOOQ/jOOQ#13516] KotlinGenerator should generate implicit joins path
accessors as properties
This commit is contained in:
parent
5050246b68
commit
51ba61d336
@ -69,6 +69,7 @@ abstract class AbstractGenerator implements Generator {
|
||||
boolean generateIndexes = true;
|
||||
boolean generateRelations = true;
|
||||
boolean generateImplicitJoinPathsToOne = true;
|
||||
boolean generateImplicitJoinPathsAsKotlinProperties = true;
|
||||
boolean generateRowConvenienceToOne = true;
|
||||
boolean generateMultisetConvenienceOneToMany = true;
|
||||
boolean generateMultisetConvenienceManyToMany = true;
|
||||
@ -295,6 +296,16 @@ abstract class AbstractGenerator implements Generator {
|
||||
this.generateImplicitJoinPathsToOne = generateImplicitJoinPathsToOne;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean generateImplicitJoinPathsAsKotlinProperties() {
|
||||
return generateImplicitJoinPathsAsKotlinProperties && generateImplicitJoinPathsToOne();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setGenerateImplicitJoinPathsAsKotlinProperties(boolean generateImplicitJoinPathsAsKotlinProperties) {
|
||||
this.generateImplicitJoinPathsAsKotlinProperties = generateImplicitJoinPathsAsKotlinProperties;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean generateRowConvenienceToOne() {
|
||||
return generateRowConvenienceToOne && generateRelations();
|
||||
|
||||
@ -718,6 +718,8 @@ public class GenerationTool {
|
||||
generator.setGenerateRelations(g.getGenerate().isRelations());
|
||||
if (g.getGenerate().isImplicitJoinPathsToOne() != null)
|
||||
generator.setGenerateImplicitJoinPathsToOne(g.getGenerate().isImplicitJoinPathsToOne());
|
||||
if (g.getGenerate().isImplicitJoinPathsAsKotlinProperties() != null)
|
||||
generator.setGenerateImplicitJoinPathsAsKotlinProperties(g.getGenerate().isImplicitJoinPathsAsKotlinProperties());
|
||||
if (g.getGenerate().isRowConvenienceToOne() != null)
|
||||
generator.setGenerateRowConvenienceToOne(g.getGenerate().isRowConvenienceToOne());
|
||||
if (g.getGenerate().isMultisetConvenienceOneToMany() != null)
|
||||
|
||||
@ -127,6 +127,18 @@ public interface Generator {
|
||||
*/
|
||||
void setGenerateImplicitJoinPathsToOne(boolean generateImplicitJoinPathsToOne);
|
||||
|
||||
/**
|
||||
* Whether implicit join path constructors should be offered as properties
|
||||
* in Kotlin.
|
||||
*/
|
||||
boolean generateImplicitJoinPathsAsKotlinProperties();
|
||||
|
||||
/**
|
||||
* Whether implicit join path constructors should be offered as properties
|
||||
* in Kotlin.
|
||||
*/
|
||||
void setGenerateImplicitJoinPathsAsKotlinProperties(boolean generateImplicitJoinPathsAsKotlinProperties);
|
||||
|
||||
/**
|
||||
* Whether <code>ROW</code> convenience syntax for to-one relationships
|
||||
* should be generated.
|
||||
|
||||
@ -6318,6 +6318,12 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
out.println();
|
||||
out.println("return _%s;", unquotedKeyMethodName);
|
||||
out.println("}");
|
||||
|
||||
if (generateImplicitJoinPathsAsKotlinProperties()) {
|
||||
out.println();
|
||||
out.println("%sval %s: %s", visibility(), keyMethodName, referencedTableClassName);
|
||||
out.tab(1).println("get(): %s = %s()", referencedTableClassName, keyMethodName);
|
||||
}
|
||||
}
|
||||
else {
|
||||
out.println("%s%s %s() {", visibility(), referencedTableClassName, keyMethodName);
|
||||
|
||||
@ -39,6 +39,8 @@ public class Generate implements Serializable, XMLAppendable
|
||||
@XmlElement(defaultValue = "true")
|
||||
protected Boolean implicitJoinPathsToOne = true;
|
||||
@XmlElement(defaultValue = "true")
|
||||
protected Boolean implicitJoinPathsAsKotlinProperties = true;
|
||||
@XmlElement(defaultValue = "true")
|
||||
protected Boolean rowConvenienceToOne = true;
|
||||
@XmlElement(defaultValue = "true")
|
||||
protected Boolean multisetConvenienceOneToMany = true;
|
||||
@ -327,6 +329,30 @@ public class Generate implements Serializable, XMLAppendable
|
||||
this.implicitJoinPathsToOne = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether implicit join path constructors should be offered as properties in Kotlin.
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link Boolean }
|
||||
*
|
||||
*/
|
||||
public Boolean isImplicitJoinPathsAsKotlinProperties() {
|
||||
return implicitJoinPathsAsKotlinProperties;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the value of the implicitJoinPathsAsKotlinProperties property.
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link Boolean }
|
||||
*
|
||||
*/
|
||||
public void setImplicitJoinPathsAsKotlinProperties(Boolean value) {
|
||||
this.implicitJoinPathsAsKotlinProperties = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate <code>ROW</code> convenience syntax for to-one relationships.
|
||||
* <p>
|
||||
@ -2536,6 +2562,11 @@ public class Generate implements Serializable, XMLAppendable
|
||||
return this;
|
||||
}
|
||||
|
||||
public Generate withImplicitJoinPathsAsKotlinProperties(Boolean value) {
|
||||
setImplicitJoinPathsAsKotlinProperties(value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Generate withRowConvenienceToOne(Boolean value) {
|
||||
setRowConvenienceToOne(value);
|
||||
return this;
|
||||
@ -3056,6 +3087,7 @@ public class Generate implements Serializable, XMLAppendable
|
||||
builder.append("relations", relations);
|
||||
builder.append("sequenceFlags", sequenceFlags);
|
||||
builder.append("implicitJoinPathsToOne", implicitJoinPathsToOne);
|
||||
builder.append("implicitJoinPathsAsKotlinProperties", implicitJoinPathsAsKotlinProperties);
|
||||
builder.append("rowConvenienceToOne", rowConvenienceToOne);
|
||||
builder.append("multisetConvenienceOneToMany", multisetConvenienceOneToMany);
|
||||
builder.append("multisetConvenienceManyToMany", multisetConvenienceManyToMany);
|
||||
@ -3206,6 +3238,15 @@ public class Generate implements Serializable, XMLAppendable
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (implicitJoinPathsAsKotlinProperties == null) {
|
||||
if (other.implicitJoinPathsAsKotlinProperties!= null) {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
if (!implicitJoinPathsAsKotlinProperties.equals(other.implicitJoinPathsAsKotlinProperties)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (rowConvenienceToOne == null) {
|
||||
if (other.rowConvenienceToOne!= null) {
|
||||
return false;
|
||||
@ -4054,6 +4095,7 @@ public class Generate implements Serializable, XMLAppendable
|
||||
result = ((prime*result)+((relations == null)? 0 :relations.hashCode()));
|
||||
result = ((prime*result)+((sequenceFlags == null)? 0 :sequenceFlags.hashCode()));
|
||||
result = ((prime*result)+((implicitJoinPathsToOne == null)? 0 :implicitJoinPathsToOne.hashCode()));
|
||||
result = ((prime*result)+((implicitJoinPathsAsKotlinProperties == null)? 0 :implicitJoinPathsAsKotlinProperties.hashCode()));
|
||||
result = ((prime*result)+((rowConvenienceToOne == null)? 0 :rowConvenienceToOne.hashCode()));
|
||||
result = ((prime*result)+((multisetConvenienceOneToMany == null)? 0 :multisetConvenienceOneToMany.hashCode()));
|
||||
result = ((prime*result)+((multisetConvenienceManyToMany == null)? 0 :multisetConvenienceManyToMany.hashCode()));
|
||||
|
||||
@ -1738,6 +1738,10 @@ This is a prerequisite for various advanced features]]></jxb:javadoc></jxb:prope
|
||||
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[Generate implicit join path constructors on generated tables for outgoing foreign key relationships (to-one relationships)]]></jxb:javadoc></jxb:property></appinfo></annotation>
|
||||
</element>
|
||||
|
||||
<element name="implicitJoinPathsAsKotlinProperties" type="boolean" default="true" minOccurs="0" maxOccurs="1">
|
||||
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[Whether implicit join path constructors should be offered as properties in Kotlin.]]></jxb:javadoc></jxb:property></appinfo></annotation>
|
||||
</element>
|
||||
|
||||
<element name="rowConvenienceToOne" type="boolean" default="true" minOccurs="0" maxOccurs="1">
|
||||
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[Generate <code>ROW</code> convenience syntax for to-one relationships.
|
||||
<p>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user