import ceylon.language { AnnotationType = Annotation } """The declaration model of a class that has a parameter list rather than explicit constructors. For example: class Color(Integer rgba) { } Such classes have a meaningful parameter list and for abstraction purposes have a single [[defaultConstructor]] representing the class' parameter list and the class initializer code. This "constructor" will have the same [[SharedAnnotation]], [[DeprecationAnnotation]] and [[ThrownExceptionAnnotation]] annotations as the class, but will have no other annotations. """ see(`interface ClassWithConstructorsDeclaration`) since("1.2.0") shared sealed interface ClassWithInitializerDeclaration satisfies ClassDeclaration { "A CallableConstructorDeclaration representing the class initializer." shared actual formal CallableConstructorDeclaration defaultConstructor; "The list of parameter declarations for this class." shared actual formal FunctionOrValueDeclaration[] parameterDeclarations; "A singleton sequence containing the [[defaultConstructor]]." shared actual default Sequence<CallableConstructorDeclaration> constructorDeclarations() => Singleton(defaultConstructor); shared actual default CallableConstructorDeclaration? getConstructorDeclaration(String name) => if (name.empty) then defaultConstructor else null; shared actual formal CallableConstructorDeclaration[] annotatedConstructorDeclarations<Annotation>() given Annotation satisfies AnnotationType; }