Replaced getter methods with properties (because of fixed compiler bugs)
This commit is contained in:
@@ -72,7 +72,7 @@ public object FileSystem {
|
|||||||
*/
|
*/
|
||||||
public fun addWatchedDirectory(dir : VirtualFile) {
|
public fun addWatchedDirectory(dir : VirtualFile) {
|
||||||
assertCanRead()
|
assertCanRead()
|
||||||
if (dir.isDirectory()) {
|
if (dir.isDirectory) {
|
||||||
watchedDirectories.add(dir)
|
watchedDirectories.add(dir)
|
||||||
scanAndAddRecursivelyNoEvents(dir)
|
scanAndAddRecursivelyNoEvents(dir)
|
||||||
|
|
||||||
@@ -135,7 +135,7 @@ private class VirtualFileInfo(file : VirtualFile) {
|
|||||||
val children : List<VirtualFile> = ArrayList<VirtualFile>;
|
val children : List<VirtualFile> = ArrayList<VirtualFile>;
|
||||||
|
|
||||||
{
|
{
|
||||||
children.addAll(file.children())
|
children.addAll(file.children)
|
||||||
lastModified = file.modificationTime()
|
lastModified = file.modificationTime
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ fun main(args : Array<String>) {
|
|||||||
println(event)
|
println(event)
|
||||||
if (event is VirtualFileChangedEvent) {
|
if (event is VirtualFileChangedEvent) {
|
||||||
// FIXME explicit type casting to avoid overload ambiguity (KT-1461)
|
// FIXME explicit type casting to avoid overload ambiguity (KT-1461)
|
||||||
println("new file size is ${(event as VirtualFileChangedEvent).file.size()}")
|
println("new file size is ${(event as VirtualFileChangedEvent).file.size}")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -54,9 +54,9 @@ internal object RefreshQueue {
|
|||||||
if (fileInfo == null) {
|
if (fileInfo == null) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (file.isDirectory()) {
|
if (file.isDirectory) {
|
||||||
val oldChildren = fileInfo.children
|
val oldChildren = fileInfo.children
|
||||||
val newChildren = file.children()
|
val newChildren = file.children
|
||||||
|
|
||||||
|
|
||||||
val addedChildren = listDifference(newChildren, oldChildren)
|
val addedChildren = listDifference(newChildren, oldChildren)
|
||||||
@@ -71,7 +71,7 @@ internal object RefreshQueue {
|
|||||||
|
|
||||||
commonChildren.forEach{ refreshFile(it) }
|
commonChildren.forEach{ refreshFile(it) }
|
||||||
} else {
|
} else {
|
||||||
val newModificationTime = file.modificationTime()
|
val newModificationTime = file.modificationTime
|
||||||
if (fileInfo.lastModified != newModificationTime) {
|
if (fileInfo.lastModified != newModificationTime) {
|
||||||
fileInfo.lastModified = newModificationTime
|
fileInfo.lastModified = newModificationTime
|
||||||
|
|
||||||
|
|||||||
@@ -13,31 +13,29 @@ import kotlin.util.*
|
|||||||
* Abstract virtual file.
|
* Abstract virtual file.
|
||||||
*/
|
*/
|
||||||
public abstract class VirtualFile(public val path : String) {
|
public abstract class VirtualFile(public val path : String) {
|
||||||
// FIXME this method should be replaced with val (KT-1168, KT-1170)
|
protected abstract val kind : String
|
||||||
protected abstract fun kind() : String
|
|
||||||
|
|
||||||
// FIXME these abstract methods should be replaced with vals (KT-1165)
|
|
||||||
/**
|
/**
|
||||||
* Returns file size.
|
* Returns file size.
|
||||||
*/
|
*/
|
||||||
public abstract fun size() : Long
|
public abstract val size : Long
|
||||||
/**
|
/**
|
||||||
* Returns the time that the virtual file was last modified (milliseconds since
|
* Returns the time that the virtual file was last modified (milliseconds since
|
||||||
* the epoch (00:00:00 GMT, January 1, 1970).
|
* the epoch (00:00:00 GMT, January 1, 1970).
|
||||||
*/
|
*/
|
||||||
public abstract fun modificationTime() : Long
|
public abstract val modificationTime : Long
|
||||||
/**
|
/**
|
||||||
* Returns if virtual file exists.
|
* Returns if virtual file exists.
|
||||||
*/
|
*/
|
||||||
public abstract fun exists() : Boolean
|
public abstract val exists : Boolean
|
||||||
/**
|
/**
|
||||||
* Returns if virtual file is directory
|
* Returns if virtual file is directory
|
||||||
*/
|
*/
|
||||||
public abstract fun isDirectory() : Boolean
|
public abstract val isDirectory : Boolean
|
||||||
/**
|
/**
|
||||||
* Returns list of virtual files which are children for this.
|
* Returns list of virtual files which are children for this.
|
||||||
*/
|
*/
|
||||||
public abstract fun children() : List<VirtualFile>
|
public abstract val children : List<VirtualFile>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Opens input stream for reading. After reading, stream should be closed.
|
* Opens input stream for reading. After reading, stream should be closed.
|
||||||
@@ -46,16 +44,16 @@ public abstract class VirtualFile(public val path : String) {
|
|||||||
public abstract fun openInputStream() : InputStream
|
public abstract fun openInputStream() : InputStream
|
||||||
|
|
||||||
fun equals(other : Any?) : Boolean {
|
fun equals(other : Any?) : Boolean {
|
||||||
return other is VirtualFile && kind() == other.kind() && path == other.path
|
return other is VirtualFile && kind == other.kind && path == other.path
|
||||||
}
|
}
|
||||||
|
|
||||||
fun hashCode() : Int {
|
fun hashCode() : Int {
|
||||||
// FIXME rewrite without casting when it will be possible
|
// FIXME rewrite without casting when it will be possible
|
||||||
return (kind() as java.lang.String).hashCode() * 31 + (path as java.lang.String).hashCode()
|
return (kind as java.lang.String).hashCode() * 31 + (path as java.lang.String).hashCode()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun toString(): String {
|
fun toString(): String {
|
||||||
return "${kind()}[path=$path]"
|
return "${kind}[path=$path]"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -63,32 +61,37 @@ public abstract class VirtualFile(public val path : String) {
|
|||||||
* Type of virtual file which corresponds to real file in file system of OS.
|
* Type of virtual file which corresponds to real file in file system of OS.
|
||||||
*/
|
*/
|
||||||
public class PhysicalVirtualFile(path : String) : VirtualFile(path) {
|
public class PhysicalVirtualFile(path : String) : VirtualFile(path) {
|
||||||
override public fun kind() : String = "Physical"
|
override public val kind : String = "Physical"
|
||||||
|
|
||||||
private val ioFile : File
|
private val ioFile : File
|
||||||
get() = File(this.path.toSystemDependentPath())
|
get() = File(this.path.toSystemDependentPath())
|
||||||
|
|
||||||
override public fun exists(): Boolean {
|
override public val exists: Boolean
|
||||||
|
get() {
|
||||||
FileSystem.assertCanRead()
|
FileSystem.assertCanRead()
|
||||||
return ioFile.exists()
|
return ioFile.exists()
|
||||||
}
|
}
|
||||||
|
|
||||||
override public fun size(): Long {
|
override public val size: Long
|
||||||
|
get() {
|
||||||
FileSystem.assertCanRead()
|
FileSystem.assertCanRead()
|
||||||
return ioFile.length()
|
return ioFile.length()
|
||||||
}
|
}
|
||||||
|
|
||||||
override public fun modificationTime(): Long {
|
override public val modificationTime: Long
|
||||||
|
get() {
|
||||||
FileSystem.assertCanRead()
|
FileSystem.assertCanRead()
|
||||||
return ioFile.lastModified()
|
return ioFile.lastModified()
|
||||||
}
|
}
|
||||||
|
|
||||||
override public fun isDirectory(): Boolean {
|
override public val isDirectory: Boolean
|
||||||
|
get() {
|
||||||
FileSystem.assertCanRead()
|
FileSystem.assertCanRead()
|
||||||
return ioFile.isDirectory()
|
return ioFile.isDirectory()
|
||||||
}
|
}
|
||||||
|
|
||||||
override public fun children(): List<VirtualFile> {
|
override public val children: List<VirtualFile>
|
||||||
|
get() {
|
||||||
FileSystem.assertCanRead()
|
FileSystem.assertCanRead()
|
||||||
return (ioFile.listFiles() ?: array<File?>()).
|
return (ioFile.listFiles() ?: array<File?>()).
|
||||||
map{ FileSystem.getFileByIoFile(it.sure()) }?.toList()
|
map{ FileSystem.getFileByIoFile(it.sure()) }?.toList()
|
||||||
@@ -96,7 +99,7 @@ public class PhysicalVirtualFile(path : String) : VirtualFile(path) {
|
|||||||
|
|
||||||
override public fun openInputStream(): InputStream {
|
override public fun openInputStream(): InputStream {
|
||||||
FileSystem.assertCanRead()
|
FileSystem.assertCanRead()
|
||||||
if (isDirectory()) {
|
if (isDirectory) {
|
||||||
throw IllegalArgumentException("Can't open directory for reading");
|
throw IllegalArgumentException("Can't open directory for reading");
|
||||||
}
|
}
|
||||||
return CheckedInputStream(FileInputStream(ioFile))
|
return CheckedInputStream(FileInputStream(ioFile))
|
||||||
|
|||||||
Reference in New Issue
Block a user