mirror of https://github.com/sbt/sbt.git
use java.util.Optional in Position
This commit is contained in:
parent
c985d9cdc0
commit
f76e3aa2bb
|
|
@ -3,16 +3,19 @@
|
||||||
*/
|
*/
|
||||||
package xsbti;
|
package xsbti;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
public interface Position
|
public interface Position
|
||||||
{
|
{
|
||||||
Maybe<Integer> line();
|
Optional<Integer> line();
|
||||||
String lineContent();
|
String lineContent();
|
||||||
Maybe<Integer> offset();
|
Optional<Integer> offset();
|
||||||
|
|
||||||
// pointer to the column position of the error/warning
|
// pointer to the column position of the error/warning
|
||||||
Maybe<Integer> pointer();
|
Optional<Integer> pointer();
|
||||||
Maybe<String> pointerSpace();
|
Optional<String> pointerSpace();
|
||||||
|
|
||||||
Maybe<String> sourcePath();
|
Optional<String> sourcePath();
|
||||||
Maybe<java.io.File> sourceFile();
|
Optional<File> sourceFile();
|
||||||
}
|
}
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/**
|
/**
|
||||||
* This code is generated using sbt-datatype.
|
* This code is generated using [[http://www.scala-sbt.org/contraband/ sbt-contraband]].
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// DO NOT EDIT MANUALLY
|
// DO NOT EDIT MANUALLY
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/**
|
/**
|
||||||
* This code is generated using sbt-datatype.
|
* This code is generated using [[http://www.scala-sbt.org/contraband/ sbt-contraband]].
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// DO NOT EDIT MANUALLY
|
// DO NOT EDIT MANUALLY
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/**
|
/**
|
||||||
* This code is generated using sbt-datatype.
|
* This code is generated using [[http://www.scala-sbt.org/contraband/ sbt-contraband]].
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// DO NOT EDIT MANUALLY
|
// DO NOT EDIT MANUALLY
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/**
|
/**
|
||||||
* This code is generated using sbt-datatype.
|
* This code is generated using [[http://www.scala-sbt.org/contraband/ sbt-contraband]].
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// DO NOT EDIT MANUALLY
|
// DO NOT EDIT MANUALLY
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/**
|
/**
|
||||||
* This code is generated using sbt-datatype.
|
* This code is generated using [[http://www.scala-sbt.org/contraband/ sbt-contraband]].
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// DO NOT EDIT MANUALLY
|
// DO NOT EDIT MANUALLY
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
package sbt.internal.util
|
||||||
|
@target(Java)
|
||||||
|
@codecPackage("sbt.internal.util.codec")
|
||||||
|
@fullCodec("JsonProtocol")
|
||||||
|
|
||||||
|
enum Severity
|
||||||
|
{
|
||||||
|
Info, Warn, Error
|
||||||
|
}
|
||||||
|
|
||||||
|
type Position {
|
||||||
|
line: Int
|
||||||
|
lineContent: String!
|
||||||
|
offset: Int
|
||||||
|
pointer: Int
|
||||||
|
pointerSpace: String
|
||||||
|
sourcePath: String
|
||||||
|
sourceFile: java.io.File
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,49 @@
|
||||||
|
/**
|
||||||
|
* This code is generated using [[http://www.scala-sbt.org/contraband/ sbt-contraband]].
|
||||||
|
*/
|
||||||
|
|
||||||
|
package sbt.internal.util.codec
|
||||||
|
import _root_.sjsonnew.{ deserializationError, Builder, JsonFormat, Unbuilder }
|
||||||
|
import xsbti.Position
|
||||||
|
import java.util.Optional
|
||||||
|
|
||||||
|
trait PositionFormats { self: sjsonnew.BasicJsonProtocol =>
|
||||||
|
implicit lazy val PositionFormat: JsonFormat[Position] = new JsonFormat[Position] {
|
||||||
|
override def read[J](jsOpt: Option[J], unbuilder: Unbuilder[J]): Position = {
|
||||||
|
jsOpt match {
|
||||||
|
case Some(js) =>
|
||||||
|
unbuilder.beginObject(js)
|
||||||
|
val line0 = unbuilder.readField[Optional[java.lang.Integer]]("line")
|
||||||
|
val lineContent0 = unbuilder.readField[String]("lineContent")
|
||||||
|
val offset0 = unbuilder.readField[Optional[java.lang.Integer]]("offset")
|
||||||
|
val pointer0 = unbuilder.readField[Optional[java.lang.Integer]]("pointer")
|
||||||
|
val pointerSpace0 = unbuilder.readField[Optional[String]]("pointerSpace")
|
||||||
|
val sourcePath0 = unbuilder.readField[Optional[String]]("sourcePath")
|
||||||
|
val sourceFile0 = unbuilder.readField[Optional[java.io.File]]("sourceFile")
|
||||||
|
unbuilder.endObject()
|
||||||
|
new Position() {
|
||||||
|
override val line = line0
|
||||||
|
override val lineContent = lineContent0
|
||||||
|
override val offset = offset0
|
||||||
|
override val pointer = pointer0
|
||||||
|
override val pointerSpace = pointerSpace0
|
||||||
|
override val sourcePath = sourcePath0
|
||||||
|
override val sourceFile = sourceFile0
|
||||||
|
}
|
||||||
|
case None =>
|
||||||
|
deserializationError("Expected JsObject but found None")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
override def write[J](obj: Position, builder: Builder[J]): Unit = {
|
||||||
|
builder.beginObject()
|
||||||
|
builder.addField("line", obj.line)
|
||||||
|
builder.addField("lineContent", obj.lineContent)
|
||||||
|
builder.addField("offset", obj.offset)
|
||||||
|
builder.addField("pointer", obj.pointer)
|
||||||
|
builder.addField("pointerSpace", obj.pointerSpace)
|
||||||
|
builder.addField("sourcePath", obj.sourcePath)
|
||||||
|
builder.addField("sourceFile", obj.sourceFile)
|
||||||
|
builder.endObject()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
/**
|
||||||
|
* This code is generated using [[http://www.scala-sbt.org/contraband/ sbt-contraband]].
|
||||||
|
*/
|
||||||
|
|
||||||
|
package sbt.internal.util.codec
|
||||||
|
|
||||||
|
import _root_.sjsonnew.{ deserializationError, Builder, JsonFormat, Unbuilder }
|
||||||
|
import xsbti.Severity;
|
||||||
|
|
||||||
|
trait SeverityFormats { self: sjsonnew.BasicJsonProtocol =>
|
||||||
|
implicit lazy val SeverityFormat: JsonFormat[Severity] = new JsonFormat[Severity] {
|
||||||
|
override def read[J](jsOpt: Option[J], unbuilder: Unbuilder[J]): Severity = {
|
||||||
|
jsOpt match {
|
||||||
|
case Some(js) =>
|
||||||
|
unbuilder.readString(js) match {
|
||||||
|
case "Info" => Severity.Info
|
||||||
|
case "Warn" => Severity.Warn
|
||||||
|
case "Error" => Severity.Error
|
||||||
|
}
|
||||||
|
case None =>
|
||||||
|
deserializationError("Expected JsString but found None")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
override def write[J](obj: Severity, builder: Builder[J]): Unit = {
|
||||||
|
val str = obj match {
|
||||||
|
case Severity.Info => "Info"
|
||||||
|
case Severity.Warn => "Warn"
|
||||||
|
case Severity.Error => "Error"
|
||||||
|
}
|
||||||
|
builder.writeString(str)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -2,6 +2,7 @@ package sbt.util
|
||||||
|
|
||||||
import xsbti.{ Maybe, F0, F1, T2, Position, Problem, Severity }
|
import xsbti.{ Maybe, F0, F1, T2, Position, Problem, Severity }
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
import java.util.Optional
|
||||||
|
|
||||||
object InterfaceUtil {
|
object InterfaceUtil {
|
||||||
def f0[A](a: => A): F0[A] = new ConcreteF0[A](a)
|
def f0[A](a: => A): F0[A] = new ConcreteF0[A](a)
|
||||||
|
|
@ -18,6 +19,16 @@ object InterfaceUtil {
|
||||||
case None => Maybe.nothing()
|
case None => Maybe.nothing()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def jo2o[A](o: Optional[A]): Option[A] =
|
||||||
|
if (o.isPresent) Some(o.get)
|
||||||
|
else None
|
||||||
|
|
||||||
|
def o2jo[A](o: Option[A]): Optional[A] =
|
||||||
|
o match {
|
||||||
|
case Some(v) => Optional.ofNullable(v)
|
||||||
|
case None => Optional.empty[A]()
|
||||||
|
}
|
||||||
|
|
||||||
def position(line0: Option[Integer], content: String, offset0: Option[Integer], pointer0: Option[Integer],
|
def position(line0: Option[Integer], content: String, offset0: Option[Integer], pointer0: Option[Integer],
|
||||||
pointerSpace0: Option[String], sourcePath0: Option[String], sourceFile0: Option[File]): Position =
|
pointerSpace0: Option[String], sourcePath0: Option[String], sourceFile0: Option[File]): Position =
|
||||||
new ConcretePosition(line0, content, offset0, pointer0, pointerSpace0, sourcePath0, sourceFile0)
|
new ConcretePosition(line0, content, offset0, pointer0, pointerSpace0, sourcePath0, sourceFile0)
|
||||||
|
|
@ -61,13 +72,13 @@ object InterfaceUtil {
|
||||||
sourcePath0: Option[String],
|
sourcePath0: Option[String],
|
||||||
sourceFile0: Option[File]
|
sourceFile0: Option[File]
|
||||||
) extends Position {
|
) extends Position {
|
||||||
val line = o2m(line0)
|
val line = o2jo(line0)
|
||||||
val lineContent = content
|
val lineContent = content
|
||||||
val offset = o2m(offset0)
|
val offset = o2jo(offset0)
|
||||||
val pointer = o2m(pointer0)
|
val pointer = o2jo(pointer0)
|
||||||
val pointerSpace = o2m(pointerSpace0)
|
val pointerSpace = o2jo(pointerSpace0)
|
||||||
val sourcePath = o2m(sourcePath0)
|
val sourcePath = o2jo(sourcePath0)
|
||||||
val sourceFile = o2m(sourceFile0)
|
val sourceFile = o2jo(sourceFile0)
|
||||||
}
|
}
|
||||||
|
|
||||||
private final class ConcreteProblem(
|
private final class ConcreteProblem(
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import sys.process.ProcessLogger
|
||||||
import sbt.internal.util.{ BufferedLogger, FullLogger }
|
import sbt.internal.util.{ BufferedLogger, FullLogger }
|
||||||
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
import java.util.Optional
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is intended to be the simplest logging interface for use by code that wants to log.
|
* This is intended to be the simplest logging interface for use by code that wants to log.
|
||||||
|
|
@ -88,6 +89,8 @@ object Logger {
|
||||||
def f0[A](a: => A): F0[A] = InterfaceUtil.f0[A](a)
|
def f0[A](a: => A): F0[A] = InterfaceUtil.f0[A](a)
|
||||||
def m2o[A](m: Maybe[A]): Option[A] = InterfaceUtil.m2o(m)
|
def m2o[A](m: Maybe[A]): Option[A] = InterfaceUtil.m2o(m)
|
||||||
def o2m[A](o: Option[A]): Maybe[A] = InterfaceUtil.o2m(o)
|
def o2m[A](o: Option[A]): Maybe[A] = InterfaceUtil.o2m(o)
|
||||||
|
def jo2o[A](o: Optional[A]): Option[A] = InterfaceUtil.jo2o(o)
|
||||||
|
def o2jo[A](o: Option[A]): Optional[A] = InterfaceUtil.o2jo(o)
|
||||||
def position(line0: Option[Integer], content: String, offset0: Option[Integer], pointer0: Option[Integer],
|
def position(line0: Option[Integer], content: String, offset0: Option[Integer], pointer0: Option[Integer],
|
||||||
pointerSpace0: Option[String], sourcePath0: Option[String], sourceFile0: Option[File]): Position =
|
pointerSpace0: Option[String], sourcePath0: Option[String], sourceFile0: Option[File]): Position =
|
||||||
InterfaceUtil.position(line0, content, offset0, pointer0, pointerSpace0, sourcePath0, sourceFile0)
|
InterfaceUtil.position(line0, content, offset0, pointer0, pointerSpace0, sourcePath0, sourceFile0)
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
addSbtPlugin("org.scala-sbt" % "sbt-contraband" % "0.3.0-M3")
|
addSbtPlugin("org.scala-sbt" % "sbt-contraband" % "0.3.0-M4")
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue