A class model represents the model of a Ceylon class that you can inspect.

A class model can be either a toplevel `Class` or a member `MemberClass`.

no type hierarchy

- `ClassModel`
  - `ClassOrInterface`
    - `Generic`
    - `Model`
      - `Declared`
    - `ClosedType`

- `ClassModel`
  - `Class`
  - `MemberClass`

Attributes
`declaration` | Source Code `shared formal ClassDeclaration declaration` The declaration model of this class, which is necessarily a `ClassDeclaration`. Refines `ClassOrInterface.declaration` ultimately refines `Declared.declaration`
`defaultConstructor` | Source Code `shared formal FunctionModel<Type,Arguments>? defaultConstructor` A function model for this class's initializer or default constructor, or null if this class has constructors but lacks a default constructor. Since 1.2.0

Inherited Attributes
Attributes inherited from: `Object` `hash`, `string`
Attributes inherited from: `ClassOrInterface<Type>` `caseValues`, `declaration`, `extendedType`, `satisfiedTypes`
Attributes inherited from: `Declared` `container`, `declaration`
Attributes inherited from: `Generic` `typeArgumentList`, `typeArgumentWithVarianceList`, `typeArgumentWithVariances`, `typeArguments`
Attributes inherited from: `Model` `container`, `declaration`

Methods
`getCallableConstructors` | Source Code `shared formal FunctionModel<Type,Arguments>[] getCallableConstructors<Arguments = Nothing>(ClosedType<Annotation>* annotationTypes) given Arguments satisfies Anything[]` Returns the list of shared callable constructors on this class and annotated with all the specified annotations. This does not include unshared callable constructors. Since 1.2.0
`getConstructor` | Source Code `shared formal FunctionModel<Type,Arguments>|ValueModel<Type,Nothing>? getConstructor<Arguments>(String name) given Arguments satisfies Anything[]` Looks up a constructor by name, Returns `null` if no such constructor matches. This excludes unshared constructors. Throws `IncompatibleTypeException` If the specified type arguments are not compatible with the actual result. Since 1.2.0
`getDeclaredCallableConstructors` | Source Code `shared formal FunctionModel<Type,Arguments>[] getDeclaredCallableConstructors<Arguments = Nothing>(ClosedType<Annotation>* annotationTypes) given Arguments satisfies Anything[]` Returns the list of callable constructors directly declared on this class and annotated with all the specified annotations. This includes unshared callable constructors. Since 1.2.0
`getDeclaredConstructor` | Source Code `shared formal FunctionModel<Type,Arguments>|ValueModel<Type,Nothing>? getDeclaredConstructor<Arguments>(String name) given Arguments satisfies Anything[]` Looks up a constructor by name, Returns `null` if no such constructor matches. This includes unshared constructors. Throws `IncompatibleTypeException` If the specified type arguments are not compatible with the actual result. Since 1.2.0
`getDeclaredValueConstructors` | Source Code `shared formal ValueModel<Type,Nothing>[] getDeclaredValueConstructors(ClosedType<Annotation>* annotationTypes)` Returns the list of value constructors directly declared on this class and annotated with all the specified annotations. This includes unshared constructors. Since 1.2.0
`getValueConstructors` | Source Code `shared formal ValueModel<Type,Nothing>[] getValueConstructors(ClosedType<Annotation>* annotationTypes)` Returns the list of shared value constructors on this class and annotated with all the specified annotations. This does not include unshared value constructors. Since 1.2.0

Inherited Methods
Methods inherited from: `Object` `equals()`
Methods inherited from: `ClassOrInterface<Type>` `getAttribute()`, `getAttributes()`, `getClass()`, `getClassOrInterface()`, `getClasses()`, `getDeclaredAttribute()`, `getDeclaredAttributes()`, `getDeclaredClass()`, `getDeclaredClassOrInterface()`, `getDeclaredClasses()`, `getDeclaredInterface()`, `getDeclaredInterfaces()`, `getDeclaredMethod()`, `getDeclaredMethods()`, `getInterface()`, `getInterfaces()`, `getMethod()`, `getMethods()`
Methods inherited from: `ClosedType<Target>` `exactly()`, `intersection()`, `subtypeOf()`, `supertypeOf()`, `typeOf()`, `union()`