Skip to content

Instantly share code, notes, and snippets.

/*
* Available context bindings:
* COLUMNS List<DataColumn>
* ROWS Iterable<DataRow>
* OUT { append() }
* FORMATTER { format(row, col); formatValue(Object, col); getTypeName(Object, col); isStringLiteral(Object, col); }
* TRANSPOSED Boolean
* plus ALL_COLUMNS, TABLE, DIALECT
*
* where:
@siosio
siosio / Generate Doma Entity.groovy
Last active October 3, 2018 23:16
DatabaseウィンドウからDoma2のエンティティテンプレートを生成するやつ
import com.intellij.database.model.DasTable
import com.intellij.database.psi.DbColumnImpl
import com.intellij.database.util.Case
import com.intellij.database.util.DasUtil
/*
* Available context bindings:
* SELECTION Iterable<DasObject>
* FILES files helper
*/
import java.time.*
import java.time.format.*
import java.time.temporal.*
fun main(args: Array<String>) {
val formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd(E)")
(2017..2020).flatMap { year -> Month.values().map { month -> YearMonth.of(year, month) } }
.filterNot { it.year == 2017 && it.month == Month.JANUARY }
.map(YearMonth::atEndOfMonth)
.map { ymd -> ymd.with(TemporalAdjusters.lastInMonth(DayOfWeek.FRIDAY)) }
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.Month;
import java.time.YearMonth;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAdjusters;
import java.util.Arrays;
import java.util.stream.IntStream;
public class PremiumFriday {
sut.getProjectManager().createProject {
projectId = "kotlin-sql"
projectName = "kotlinでSQL実行できる的ななにか"
projectType = ProjectType.Gradle
codeReviewIdPattern = "kot-{}"
vcsSettings {
+vcs(id = "kotlin-sql", vcs = Vcs.git, url = "https://github.com/siosio/kotlin-sql")
}
}
@siosio
siosio / Main.kt
Last active November 16, 2015 07:59
ステップの実行状態を一定間隔ごとログに出力するやつ
package siosio
import org.jboss.logging.Logger
import java.util.concurrent.ExecutorService
import java.util.concurrent.Executors
import java.util.concurrent.TimeUnit
import javax.batch.operations.JobOperator
import javax.batch.runtime.BatchRuntime
import javax.batch.runtime.BatchStatus
import javax.batch.runtime.Metric
import TestContext
import org.junit.Test
import setup
import sum
import kotlin.test.assertEquals
fun sum(a: IntArray) = a.sum()
class TestContext<P, OUT> {
package collatz
import kotlin.util.measureTimeMillis
import java.util.HashMap
import java.util.Arrays
val MAX = 100000
fun main(args: Array<String>) {
println(measureTimeMillis {
data class Ret(val count:Int, val prev:Int?) {
fun next(number:Int) = if (prev == number)
Ret(count, number)
else
Ret(count + 1, number)
}
fun runs(a: IntArray): Int {
return a.fold(Ret(0, null), {(ret, num) ->
ret.next(num)
@siosio
siosio / 。。.kt
Created November 12, 2014 06:07
こっちかなぁ
fun runs(a : IntArray) : Int {
return a.withIndices().count {
when (it.first) {
0 -> true
else -> a.get(it.first - 1) != it.second
}
}
}