Add RegionStorage class with persistence delegation
This commit is contained in:
@@ -0,0 +1,56 @@
|
|||||||
|
package com.livingworld.regions;
|
||||||
|
|
||||||
|
import com.livingworld.core.services.PersistenceService;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Storage class for managing region persistence operations.
|
||||||
|
*
|
||||||
|
* <p>This class delegates loading and saving of regions to the provided
|
||||||
|
* {@link PersistenceService} instance, with argument validation.</p>
|
||||||
|
*/
|
||||||
|
public class RegionStorage {
|
||||||
|
|
||||||
|
private final PersistenceService persistenceService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new RegionStorage instance.
|
||||||
|
*
|
||||||
|
* @param persistenceService the persistence service to delegate to (must not be null)
|
||||||
|
* @throws IllegalArgumentException if persistenceService is null
|
||||||
|
*/
|
||||||
|
public RegionStorage(PersistenceService persistenceService) {
|
||||||
|
if (persistenceService == null) {
|
||||||
|
throw new IllegalArgumentException("PersistenceService must not be null");
|
||||||
|
}
|
||||||
|
this.persistenceService = persistenceService;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Loads a region from storage by its coordinate.
|
||||||
|
*
|
||||||
|
* @param coordinate the region coordinate to load (must not be null)
|
||||||
|
* @return an Optional containing the loaded region if it exists, or empty if not found
|
||||||
|
* @throws IllegalArgumentException if coordinate is null
|
||||||
|
*/
|
||||||
|
public Optional<Region> load(RegionCoordinate coordinate) {
|
||||||
|
if (coordinate == null) {
|
||||||
|
throw new IllegalArgumentException("RegionCoordinate must not be null");
|
||||||
|
}
|
||||||
|
return persistenceService.loadRegion(coordinate);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Saves a region to storage.
|
||||||
|
*
|
||||||
|
* @param region the region to save (must not be null)
|
||||||
|
* @throws IllegalArgumentException if region is null
|
||||||
|
*/
|
||||||
|
public void save(Region region) {
|
||||||
|
if (region == null) {
|
||||||
|
throw new IllegalArgumentException("Region must not be null");
|
||||||
|
}
|
||||||
|
persistenceService.saveRegion(region);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user