package org.molgenis.data.i18n;
import org.molgenis.data.AbstractRepositoryDecorator;
import org.molgenis.data.Entity;
import org.molgenis.data.Repository;
import java.util.ResourceBundle;
import java.util.stream.Stream;
/**
* Decorator for the I18nString respository.
* <p>
* Clears the ResourceBundle cache after an update
*/
public class I18nStringDecorator extends AbstractRepositoryDecorator<Entity>
{
private final Repository<Entity> decorated;
public I18nStringDecorator(Repository<Entity> decorated)
{
this.decorated = decorated;
}
@Override
protected Repository<Entity> delegate()
{
return decorated;
}
@Override
public void update(Entity entity)
{
decorated.update(entity);
ResourceBundle.clearCache();
}
@Override
public void update(Stream<Entity> entities)
{
decorated.update(entities);
ResourceBundle.clearCache();
}
@Override
public void delete(Entity entity)
{
decorated.delete(entity);
ResourceBundle.clearCache();
}
@Override
public void delete(Stream<Entity> entities)
{
decorated.delete(entities);
ResourceBundle.clearCache();
}
@Override
public void deleteById(Object id)
{
decorated.deleteById(id);
ResourceBundle.clearCache();
}
@Override
public void deleteAll(Stream<Object> ids)
{
decorated.deleteAll(ids);
ResourceBundle.clearCache();
}
@Override
public void deleteAll()
{
decorated.deleteAll();
ResourceBundle.clearCache();
}
@Override
public void add(Entity entity)
{
decorated.add(entity);
ResourceBundle.clearCache();
}
@Override
public Integer add(Stream<Entity> entities)
{
Integer result = decorated.add(entities);
ResourceBundle.clearCache();
return result;
}
}