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; } }