type-provider.vala 1.1 KB

12345678910111213141516171819202122232425262728
  1. using InvercargillSql.Orm.Projections;
  2. namespace InvercargillSql.Orm {
  3. /**
  4. * Interface for providing entity mappers and projection definitions.
  5. * This interface allows OrmSession to be decoupled from the concrete TypeRegistry,
  6. * enabling custom implementations for testing or alternative registration strategies.
  7. */
  8. public interface TypeProvider : Object {
  9. // Entity methods - non-generic versions taking Type parameter
  10. public abstract bool has_mapper_for_type(Type type);
  11. public abstract EntityMapper? get_mapper_for_type(Type type);
  12. // Entity methods - generic convenience versions
  13. public abstract bool has_mapper<T>();
  14. public abstract EntityMapper<T> get_mapper<T>() throws SqlError;
  15. // Projection methods - non-generic versions taking Type parameter
  16. public abstract bool has_projection_for_type(Type type);
  17. public abstract ProjectionDefinition? get_projection_for_type(Type type);
  18. // Projection methods - generic convenience versions
  19. public abstract bool has_projection<T>();
  20. public abstract ProjectionDefinition? get_projection<T>();
  21. }
  22. }