package com.twasyl.slideshowfx.snippet.executor;
import com.twasyl.slideshowfx.plugin.AbstractPlugin;
import java.io.File;
import java.util.logging.Logger;
/**
* Abstract implementation of a {@link com.twasyl.slideshowfx.snippet.executor.ISnippetExecutor}. It takes care of
* defining the {@link #getCode()}, {@link #getLanguage()}, {@link #getCssClass()}.
*
* @author Thierry Wasylczenko
* @version 1.0
* @since SlideshowFX 1.0
*/
public abstract class AbstractSnippetExecutor<T extends ISnippetExecutorOptions> extends AbstractPlugin<T> implements ISnippetExecutor<T> {
private static final Logger LOGGER = Logger.getLogger(AbstractSnippetExecutor.class.getName());
/*
* Constants for stored properties
*/
private static final String PROPERTIES_PREFIX = "snippet.executor.";
protected T newOptions;
private final String configurationBaseName;
private final String code;
private final String language;
private final String cssClass;
protected AbstractSnippetExecutor(final String code, final String language, final String cssClass) {
super(code);
this.code = code;
this.language = language;
this.cssClass = cssClass;
this.configurationBaseName = PROPERTIES_PREFIX.concat(this.code);
}
@Override
public String getConfigurationBaseName() { return this.configurationBaseName; }
@Override
public T getNewOptions() { return this.newOptions; }
protected File getTemporaryDirectory() {
return new File(System.getProperty("java.io.tmpdir"));
}
@Override
public String getCode() { return this.code; }
@Override
public String getLanguage() { return this.language; }
@Override
public String getCssClass() { return this.cssClass; }
}