Refactor JPS daemon client

This commit is contained in:
Alexey Tsvetkov
2017-01-10 23:50:33 +03:00
parent 73f7b76b5d
commit 99c72b6dff
10 changed files with 188 additions and 76 deletions
@@ -17,10 +17,24 @@
package org.jetbrains.kotlin.cli.common.arguments
import com.intellij.util.xmlb.XmlSerializerUtil
import com.sampullara.cli.Args
import java.lang.reflect.Field
import java.lang.reflect.Modifier
import java.util.*
fun <A : CommonCompilerArguments> parseArguments(args: Array<String>, arguments: A) {
val unparsedArgs = Args.parse(arguments, args, false).partition { it.startsWith("-X") }
arguments.unknownExtraFlags = unparsedArgs.first
arguments.freeArgs = unparsedArgs.second
for (argument in arguments.freeArgs) {
if (argument.startsWith("-")) {
throw IllegalArgumentException("Invalid argument: " + argument)
}
}
}
fun <T : Any> copyBean(bean: T) = copyFields(bean, bean.javaClass.newInstance(), true)
fun <From : Any, To : From> mergeBeans(from: From, to: To): To {