private final Database database;
private final Sone sone; /* TODO - only store sone ID. */
- private final String parentId;
protected DefaultAlbum(Database database, String id, Sone sone, String parentId) {
- super(id);
+ super(id, parentId);
this.database = database;
this.sone = sone;
- this.parentId = parentId;
}
@Override
public ImageBuilder newImageBuilder() throws IllegalStateException {
return new AbstractImageBuilder() {
@Override
- public Image build() throws IllegalStateException {
+ public Image build(Optional<ImageCreated> imageCreated) throws IllegalStateException {
validate();
- DefaultImage memoryImage = new DefaultImage(database, getId(), sone, DefaultAlbum.this.id, key, getCreationTime(), width, height);
- database.storeImage(memoryImage);
- return memoryImage;
+ DefaultImage image = new DefaultImage(database, getId(), sone, DefaultAlbum.this.id, key, getCreationTime(), width, height);
+ database.storeImage(image);
+ if (imageCreated.isPresent()) {
+ imageCreated.get().imageCreated(image);
+ }
+ return image;
}
};
}