}
JInvocation constructorInvocation = JExpr._new(usedValueClassType);
constructorInvocation.arg(caseClassConstructorInvocation);
constructorMethod.body()._return(constructorInvocation);
} else {
JInvocation caseClassConstructorInvocation = JExpr._new(usedCaseClassType.erasure());
JInvocation initializer = JExpr._new(usedValueClassType.erasure());
initializer.arg(caseClassConstructorInvocation);
JFieldVar singletonInstanceField = valueClass.field(JMod.PRIVATE | JMod.STATIC | JMod.FINAL,
usedValueClassType.erasure(),
interfaceMethod.name().toUpperCase(),