Class DatabaseExtension

java.lang.Object
net.carcdr.yhocuspocus.extension.DatabaseExtension
All Implemented Interfaces:
Extension
Direct Known Subclasses:
InMemoryDatabaseExtension

public abstract class DatabaseExtension extends Object implements Extension
Abstract base class for database persistence extensions.

This class provides a convenient pattern for implementing document persistence. Subclasses only need to implement loadFromDatabase(String) and saveToDatabase(String, byte[]).

Example usage:


 public class PostgresDatabaseExtension extends DatabaseExtension {
     private final DataSource dataSource;

     {@literal @}Override
     protected byte[] loadFromDatabase(String documentName) {
         // Load from PostgreSQL
         try (Connection conn = dataSource.getConnection()) {
             // ... query logic
         }
     }

     {@literal @}Override
     protected void saveToDatabase(String documentName, byte[] state) {
         // Save to PostgreSQL
         try (Connection conn = dataSource.getConnection()) {
             // ... insert/update logic
         }
     }
 }
 
Since:
1.0.0