| 12345678910111213141516171819202122232425262728 |
- using InvercargillSql.Orm.Projections;
- namespace InvercargillSql.Orm {
- /**
- * Interface for providing entity mappers and projection definitions.
- * This interface allows OrmSession to be decoupled from the concrete TypeRegistry,
- * enabling custom implementations for testing or alternative registration strategies.
- */
- public interface TypeProvider : Object {
- // Entity methods - non-generic versions taking Type parameter
- public abstract bool has_mapper_for_type(Type type);
- public abstract EntityMapper? get_mapper_for_type(Type type);
-
- // Entity methods - generic convenience versions
- public abstract bool has_mapper<T>();
- public abstract EntityMapper<T> get_mapper<T>() throws SqlError;
-
- // Projection methods - non-generic versions taking Type parameter
- public abstract bool has_projection_for_type(Type type);
- public abstract ProjectionDefinition? get_projection_for_type(Type type);
-
- // Projection methods - generic convenience versions
- public abstract bool has_projection<T>();
- public abstract ProjectionDefinition? get_projection<T>();
- }
- }
|