in src/languages/java.ts [190:249]
public override propertySignature(node: ts.PropertySignature, renderer: JavaRenderer): OTree {
const propertyType = this.renderTypeNode(node.type, renderer, 'Object');
const propertyName = renderer.convert(node.name);
const isClass = !renderer.currentContext.insideTypeDeclaration?.isInterface;
const blockSep = isClass ? ' ' : ';';
const field = isClass
? new OTree([], ['private ', propertyType, ' ', propertyName, ';'], {
canBreakLine: true,
})
: NO_SYNTAX;
const getter = new OTree(
[],
[
isClass ? 'public ' : NO_SYNTAX,
propertyType,
' ',
`get${capitalize(renderer.textOf(node.name))}()${blockSep}`,
isClass ? this.renderBlock([new OTree(['\n'], ['return this.', propertyName, ';'])]) : NO_SYNTAX,
],
{
canBreakLine: true,
},
);
const hasSetter = isClass || !isReadOnly(node);
const setter = hasSetter
? new OTree(
[],
[
isClass ? 'public ' : NO_SYNTAX,
renderer.convert(renderer.currentContext.insideTypeDeclaration!.typeName),
' ',
propertyName, // don't prefix the setter with `set` - makes it more aligned with JSII builders
'(',
propertyType,
' ',
propertyName,
`)${blockSep}`,
isClass
? this.renderBlock([
new OTree(['\n'], ['this.', propertyName, ' = ', propertyName, ';']),
new OTree(['\n'], ['return this;']),
])
: NO_SYNTAX,
],
{
canBreakLine: true,
},
)
: NO_SYNTAX;
return new OTree([], [field, getter, setter], {
canBreakLine: true,
separator: '\n',
});
}