MixinDeclaration class abstract
Represents a reflected Dart mixin
declaration, providing access to its
members, type constraints, and metadata.
Mixins in Dart allow code reuse across multiple class hierarchies. This interface provides runtime introspection of mixin declarations, including their fields, methods, type constraints, and annotations.
Example
mixin TimestampMixin on BaseModel {
DateTime? createdAt;
DateTime? updatedAt;
void updateTimestamp() {
updatedAt = DateTime.now();
}
}
final mixinType = reflector.reflectType(TimestampMixin).asMixinType();
print(mixinType?.getName()); // TimestampMixin
print(mixinType?.getFields().length); // 2
print(mixinType?.getMethods().length); // 1
This interface combines both SourceDeclaration and TypeDeclaration, allowing it to be used both as a type descriptor and a declaration node.
- Inheritance
-
- Object
- Declaration
- EntityDeclaration
- TypeDeclaration
- MixinDeclaration
- Implemented types
- Available extensions
Constructors
- MixinDeclaration()
-
Represents a reflected Dart
mixin
declaration, providing access to its members, type constraints, and metadata.const
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
asClass(
) → ClassDeclaration? -
Available on TypeDeclaration, provided by the TypeDeclarationExtension extension
Safely casts to ClassDeclaration if possible. -
asEnum(
) → EnumDeclaration? -
Available on TypeDeclaration, provided by the TypeDeclarationExtension extension
Safely casts to EnumDeclaration if possible. -
asMixin(
) → MixinDeclaration? -
Available on TypeDeclaration, provided by the TypeDeclarationExtension extension
Safely casts to MixinDeclaration if possible. -
asRecord(
) → RecordDeclaration? -
Available on TypeDeclaration, provided by the TypeDeclarationExtension extension
Safely casts to RecordDeclaration if possible. -
asTypedef(
) → TypedefDeclaration? -
Available on TypeDeclaration, provided by the TypeDeclarationExtension extension
Safely casts to TypedefDeclaration if possible. -
asTypeVariable(
) → TypeVariableDeclaration? -
Available on TypeDeclaration, provided by the TypeDeclarationExtension extension
Safely casts to TypeVariableDeclaration if possible. -
getAnnotations(
) → List< AnnotationDeclaration> -
Returns all annotations applied to this declaration.
inherited
-
getConstraints(
) → List< LinkDeclaration> -
Returns the
on
constraint types for this mixin. -
getDartType(
) → DartType? -
The analyzer DartType of the entity for enhanced type operations.
inherited
-
getDebugIdentifier(
) → String -
The debug identifier for the entity.
inherited
-
getDeclaration(
) → SourceDeclaration? -
Available on TypeDeclaration, provided by the TypeDeclarationExtension extension
Resolves the most specific declaration type. -
getElement(
) → Element? -
The analyzer element associated with this declaration.
inherited
-
getField(
String fieldName) → FieldDeclaration? - Returns a field by name, or null if not found.
-
getFields(
) → List< FieldDeclaration> - Returns all fields declared in this mixin (excluding inherited fields).
-
getHasConstraints(
) → bool -
Returns
true
if this mixin hason
type constraints. -
getHasInterfaces(
) → bool -
Returns
true
if this mixin implements any interfaces. -
getInstanceFields(
) → List< FieldDeclaration> - Returns all instance fields declared in this mixin.
-
getInstanceMethods(
) → List< MethodDeclaration> - Returns all instance methods declared in this mixin.
-
getInterfaces(
) → List< LinkDeclaration> -
Returns the list of interfaces this type implements.
inherited
-
getIsNullable(
) → bool -
Returns
true
if the type is nullable, such as'String?'
or'int?'
.inherited -
getIsPublic(
) → bool -
Checks if this declaration is a public declaration.
inherited
-
getIsSynthetic(
) → bool -
Checks if a declaration is a synthetic declaration.
inherited
-
getKind(
) → TypeKind -
Returns the TypeKind of this type, indicating whether it is a class, enum, mixin, etc.
inherited
-
getMembers(
) → List< MemberDeclaration> - Returns all members declared in this mixin, including fields and methods.
-
getMethod(
String methodName) → MethodDeclaration? - Returns a method by name, or null if not found.
-
getMethods(
) → List< MethodDeclaration> - Returns all methods declared in this mixin (excluding inherited methods).
-
getMixins(
) → List< LinkDeclaration> -
Returns the list of mixin identities that are applied to this type.
inherited
-
getName(
) → String -
Gets the name of the declared element.
inherited
-
getPackageUri(
) → String -
Returns the package URI where this type is declared.
inherited
-
getParentLibrary(
) → LibraryDeclaration -
Returns the LibraryDeclaration in which this declaration is defined.
inherited
-
getQualifiedName(
) → String -
Returns the fully qualified name of this type.
inherited
-
getSimpleName(
) → String -
Returns the simple name of the type without the package or library URI.
inherited
-
getSourceLocation(
) → Uri? -
Returns the source code location (e.g., file path or URI) where this declaration is defined,
or
null
if not available in the current reflection context.inherited -
getStaticFields(
) → List< FieldDeclaration> - Returns all static fields declared in this mixin.
-
getStaticMethods(
) → List< MethodDeclaration> - Returns all static methods declared in this mixin.
-
getSuperClass(
) → LinkDeclaration? -
Returns the direct superclass of this type.
inherited
-
getType(
) → Type -
Gets the runtime type of the declared element.
inherited
-
getTypeArguments(
) → List< LinkDeclaration> -
Returns the list of type arguments for generic types.
inherited
-
hasAnalyzerSupport(
) → bool -
Returns true if this declaration has analyzer information available.
inherited
-
hasField(
String fieldName) → bool - Checks if this mixin has a field with the given name.
-
hasMethod(
String methodName) → bool - Checks if this mixin has a method with the given name.
-
isAssignableFrom(
TypeDeclaration other) → bool -
Type Assignability Table:
inherited
-
isAssignableTo(
TypeDeclaration target) → bool -
Type Assignability Table:
inherited
-
isGeneric(
) → bool -
Check if this is a generic type.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toJson(
) → Map< String, Object> -
Returns a JSON representation of this entity.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited