Skip to content

Commit 88021f2

Browse files
authored
Merge pull request #92 from domaframework/fix/not-null-filetype
Null check for virtualFile
2 parents 0a49f29 + e6d2363 commit 88021f2

File tree

4 files changed

+8
-6
lines changed

4 files changed

+8
-6
lines changed

src/main/kotlin/org/domaframework/doma/intellij/common/FileTypeCheck.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ fun getExtension(type: String): String =
3737
* Does it match the Dao file type condition?
3838
*/
3939
fun isJavaOrKotlinFileType(daoFile: PsiFile): Boolean {
40+
if (daoFile.virtualFile == null) return false
4041
val fileType = FileTypeManager.getInstance().getFileTypeByFile(daoFile.virtualFile)
4142
return when (fileType.name) {
4243
"JAVA", "Kotlin" -> true
@@ -57,7 +58,7 @@ fun isSupportFileType(file: PsiFile): Boolean {
5758

5859
fun isInjectionSqlFile(file: PsiFile): Boolean {
5960
val extension = file.fileType.defaultExtension
60-
val filePath = file.virtualFile.path
61+
val filePath = file.virtualFile?.path ?: return false
6162
return when (extension) {
6263
"sql" -> true
6364
else -> false

src/main/kotlin/org/domaframework/doma/intellij/common/dao/DaoMethodUtil.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ import org.domaframework.doma.intellij.extension.getModule
3939
*/
4040
fun findDaoMethod(originalFile: PsiFile): PsiMethod? {
4141
val project = originalFile.project
42-
val module = project.getModule(originalFile.virtualFile) ?: return null
42+
val virtualFile = originalFile.virtualFile ?: return null
43+
val module = project.getModule(virtualFile) ?: return null
4344

4445
if (isInjectionSqlFile(originalFile)) {
4546
originalFile.let {
@@ -52,7 +53,7 @@ fun findDaoMethod(originalFile: PsiFile): PsiMethod? {
5253
val relativePath =
5354
formatDaoPathFromSqlFilePath(
5455
originalFile,
55-
project.getContentRoot(originalFile.virtualFile)?.path ?: "",
56+
project.getContentRoot(virtualFile)?.path ?: "",
5657
fileTypeName,
5758
)
5859
val daoClassName: String =
@@ -110,7 +111,7 @@ fun formatDaoPathFromSqlFilePath(
110111
if (isInjectionSqlFile(relativeBaseSqlFile)) {
111112
return ""
112113
}
113-
val sqlPath = relativeBaseSqlFile.virtualFile.path
114+
val sqlPath = relativeBaseSqlFile.virtualFile?.path ?: return ""
114115
var relativeFilePath = sqlPath.substring(projectRootPath.length)
115116
if (!relativeFilePath.startsWith("/")) {
116117
relativeFilePath = "/$relativeFilePath"

src/main/kotlin/org/domaframework/doma/intellij/common/psi/PsiDaoMethod.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ class PsiDaoMethod(
166166
PsiManager
167167
.getInstance(psiProject)
168168
.findDirectory(virtualFile) ?: return@runWriteCommandAction
169-
val sqlVirtualFile = sqlOutputDirPath.createFile(sqlFileName).virtualFile
169+
val sqlVirtualFile = sqlOutputDirPath.createFile(sqlFileName).virtualFile ?: return@runWriteCommandAction
170170
FileEditorManager
171171
.getInstance(psiProject)
172172
.openFile(sqlVirtualFile, true)

src/main/kotlin/org/domaframework/doma/intellij/refactoring/dao/DaoRenameProcessor.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ class DaoRenameProcessor : RenameJavaClassProcessor() {
4242
val daoClass = getDaoClass(element.containingFile) ?: return
4343

4444
val project = element.project
45-
val virtualFile = element.containingFile.virtualFile
45+
val virtualFile = element.containingFile.virtualFile ?: return
4646
project.getContentRoot(virtualFile)?.let {
4747
element.module?.getPackagePathFromDaoPath(virtualFile)?.let {
4848
if (it.name == daoClass.name) {

0 commit comments

Comments
 (0)