package jetbrains.mps.ide.java.sourceStubs;
/*Generated by MPS */
import jetbrains.mps.extapi.persistence.FolderDataSource;
import org.apache.log4j.Logger;
import org.jetbrains.annotations.NotNull;
import jetbrains.mps.vfs.IFile;
import org.jetbrains.mps.openapi.persistence.ModelRoot;
import org.jetbrains.annotations.Nullable;
import jetbrains.mps.vfs.IFileUtils;
import jetbrains.mps.ide.java.newparser.JavaParser;
import java.io.IOException;
public class MPSJavaSrcDataSource extends FolderDataSource {
private static final Logger LOG = Logger.getLogger(MPSJavaSrcDataSource.class);
public MPSJavaSrcDataSource(@NotNull IFile dir, ModelRoot modelRoot) {
super(dir, modelRoot);
}
@Override
public boolean isIncluded(IFile file) {
return super.isIncluded(file) && file.getPath().endsWith(".java");
}
public boolean hasJavaFiles() {
return getAvailableStreams().iterator().hasNext();
}
@Nullable
public String guessPackage() {
String pkg = null;
try {
for (String stream : getAvailableStreams()) {
IFile file = getFile(stream);
String code = IFileUtils.getTextContents(file);
pkg = JavaParser.peekPackage(code);
}
} catch (IOException e) {
LOG.warn("Failed to guess package name for java source stub model", e);
}
return pkg;
}
}