/** * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ package net.sourceforge.pmd.cpd; import java.io.FilenameFilter; import java.util.Arrays; import java.util.List; import java.util.Properties; import net.sourceforge.pmd.util.filter.Filters; public abstract class AbstractLanguage implements Language { private final String name; private final String terseName; private final Tokenizer tokenizer; private final FilenameFilter fileFilter; private final List<String> extensions; public AbstractLanguage(String name, String terseName, Tokenizer tokenizer, String... extensions) { this.name = name; this.terseName = terseName; this.tokenizer = tokenizer; fileFilter = Filters.toFilenameFilter(Filters.getFileExtensionOrDirectoryFilter(extensions)); this.extensions = Arrays.asList(extensions); } @Override public FilenameFilter getFileFilter() { return fileFilter; } @Override public Tokenizer getTokenizer() { return tokenizer; } @Override public void setProperties(Properties properties) { // needs to be implemented by subclasses. } @Override public String getName() { return name; } @Override public String getTerseName() { return terseName; } @Override public List<String> getExtensions() { return extensions; } }