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.

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.
`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.
`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.
`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.
`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.
`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.

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()`