package fr.adrienbrault.idea.symfony2plugin.templating.dict;
import fr.adrienbrault.idea.symfony2plugin.templating.util.TwigExtensionParser;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.HashMap;
import java.util.Map;
/**
* @author Daniel Espendiller <daniel@espendiller.net>
*/
public class TwigExtension {
@Nullable
private String signature = null;
@NotNull
private TwigExtensionParser.TwigExtensionType twigExtensionType;
@NotNull
private Map<String, String> options = new HashMap<>();
public TwigExtension(@NotNull TwigExtensionParser.TwigExtensionType twigExtensionType) {
this.twigExtensionType = twigExtensionType;
}
public TwigExtension(@NotNull TwigExtensionParser.TwigExtensionType twigExtensionType, @Nullable String signature) {
this(twigExtensionType);
this.signature = signature;
}
@NotNull
public TwigExtensionParser.TwigExtensionType getTwigExtensionType() {
return twigExtensionType;
}
@NotNull
public String getType() {
return twigExtensionType.toString();
}
@Nullable
public String getSignature() {
return signature;
}
@NotNull
public TwigExtension putOption(@NotNull String key, @NotNull String value) {
options.put(key, value);
return this;
}
@Nullable
public String getOption(String key) {
return options.containsKey(key) ? options.get(key) : null;
}
}