Skip to content
This repository was archived by the owner on Mar 24, 2025. It is now read-only.

Commit a439c4d

Browse files
rename some classes and methods (#235)
1 parent c46404b commit a439c4d

File tree

14 files changed

+86
-66
lines changed

14 files changed

+86
-66
lines changed

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ examples/scala2-13/target/
2020
examples/scala2-11/project/target
2121
examples/scala2-12/project/target
2222
examples/scala2-13/project/target
23-
smt-benchmark/target
2423
smt-cacheable/target
2524
smt-cacheable-caffeine/target
2625
smt-cacheable-redis/target

smt-common/src/main/scala/org/bitlap/common/TransformableSyntax.scala

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,24 @@
1+
/*
2+
* Copyright (c) 2022 bitlap
3+
*
4+
* Permission is hereby granted, free of charge, to any person obtaining a copy of
5+
* this software and associated documentation files (the "Software"), to deal in
6+
* the Software without restriction, including without limitation the rights to
7+
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
8+
* the Software, and to permit persons to whom the Software is furnished to do so,
9+
* subject to the following conditions:
10+
*
11+
* The above copyright notice and this permission notice shall be included in all
12+
* copies or substantial portions of the Software.
13+
*
14+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
16+
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
17+
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
18+
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19+
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20+
*/
21+
122
package org.bitlap.common
223
import org.bitlap.common.internal.TransformerMacro
324

smt-csv-derive/src/main/scala/org/bitlap/csv/derive/DeriveCsvConverter.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@ object DeriveCsvConverter {
4848
val tree =
4949
q"""
5050
new Converter[$typeName] {
51-
override def toScala($lineTermName: String): _root_.scala.Option[$typeName] = $packageName.macros.DeriveToCaseClass[$typeName]($lineTermName)($csvFormat)
52-
override def toCsvString($tTermName: $typeName): String = $packageName.macros.DeriveToString[$typeName]($tTermName)($csvFormat)
51+
override def toScala($lineTermName: String): _root_.scala.Option[$typeName] = $packageName.internal.ToCaseClassMacro[$typeName]($lineTermName)($csvFormat)
52+
override def toCsvString($tTermName: $typeName): String = $packageName.internal.ToStringMacro[$typeName]($tTermName)($csvFormat)
5353
}
5454
"""
5555
exprPrintTree[CC](force = false, tree)

smt-csv/src/main/scala/org/bitlap/csv/Csvable.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ trait Csvable[T] {
3636
* case class object
3737
* @return
3838
*/
39-
def _toCsvString(t: T): String
39+
def transform(t: T): String
4040

4141
}
4242

smt-csv/src/main/scala/org/bitlap/csv/CsvableBuilder.scala

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
package org.bitlap.csv
2323

24-
import org.bitlap.csv.macros.DeriveCsvableBuilder
24+
import org.bitlap.csv.internal.CsvableBuilderMacro
2525
import java.io.File
2626

2727
/** Builder to create a custom Csv Encoder.
@@ -43,7 +43,7 @@ class CsvableBuilder[T] {
4343
* @return
4444
*/
4545
def setField[SF](scalaField: T => SF, value: SF => String): CsvableBuilder[T] =
46-
macro DeriveCsvableBuilder.setFieldImpl[T, SF]
46+
macro CsvableBuilderMacro.setFieldImpl[T, SF]
4747

4848
/** Create a custom builder for converting this scala value to CSV line string.
4949
*
@@ -54,7 +54,7 @@ class CsvableBuilder[T] {
5454
* @return
5555
* The string of one CSV line.
5656
*/
57-
def convert(t: T)(implicit format: CsvFormat): String = macro DeriveCsvableBuilder.convertOneImpl[T]
57+
def convert(t: T)(implicit format: CsvFormat): String = macro CsvableBuilderMacro.convertOneImpl[T]
5858

5959
/** Convert the sequence of Scala case class to CSV string.
6060
*
@@ -65,7 +65,7 @@ class CsvableBuilder[T] {
6565
* @return
6666
* The string of all CSV lines.
6767
*/
68-
def convert(ts: List[T])(implicit format: CsvFormat): String = macro DeriveCsvableBuilder.convertAllImpl[T]
68+
def convert(ts: List[T])(implicit format: CsvFormat): String = macro CsvableBuilderMacro.convertAllImpl[T]
6969

7070
/** Convert the sequence of Scala case class to CSV string and write to file.
7171
*
@@ -79,12 +79,12 @@ class CsvableBuilder[T] {
7979
* The string of all CSV lines.
8080
*/
8181
def convertTo(ts: List[T], file: File)(implicit format: CsvFormat): Boolean =
82-
macro DeriveCsvableBuilder.convertToFileImpl[T]
82+
macro CsvableBuilderMacro.convertToFileImpl[T]
8383

8484
}
8585

8686
object CsvableBuilder {
8787

88-
def apply[T <: Product]: CsvableBuilder[T] = macro DeriveCsvableBuilder.applyImpl[T]
88+
def apply[T <: Product]: CsvableBuilder[T] = macro CsvableBuilderMacro.applyImpl[T]
8989

9090
}

smt-csv/src/main/scala/org/bitlap/csv/CsvableImplicits.scala

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,34 +28,34 @@ package org.bitlap.csv
2828
trait CsvableImplicits {
2929

3030
implicit final val stringCsvable: Csvable[String] = new Csvable[String] {
31-
override def _toCsvString(s: String): String = s
31+
override def transform(s: String): String = s
3232
}
3333

3434
implicit final val intCsvable: Csvable[Int] = new Csvable[Int] {
35-
override def _toCsvString(column: Int): String = column.toString
35+
override def transform(column: Int): String = column.toString
3636
}
3737

3838
implicit final val charCsvable: Csvable[Char] = new Csvable[Char] {
39-
override def _toCsvString(t: Char): String = t.toString
39+
override def transform(t: Char): String = t.toString
4040
}
4141

4242
implicit final val longCsvable: Csvable[Long] = new Csvable[Long] {
43-
override def _toCsvString(column: Long): String = column.toString
43+
override def transform(column: Long): String = column.toString
4444
}
4545

4646
implicit final val shortCsvable: Csvable[Short] = new Csvable[Short] {
47-
override def _toCsvString(column: Short): String = column.toString
47+
override def transform(column: Short): String = column.toString
4848
}
4949

5050
implicit final val doubleCsvable: Csvable[Double] = new Csvable[Double] {
51-
override def _toCsvString(column: Double): String = column.toString
51+
override def transform(column: Double): String = column.toString
5252
}
5353

5454
implicit final val floatCsvable: Csvable[Float] = new Csvable[Float] {
55-
override def _toCsvString(column: Float): String = column.toString
55+
override def transform(column: Float): String = column.toString
5656
}
5757

5858
implicit final val booleanCsvable: Csvable[Boolean] = new Csvable[Boolean] {
59-
override def _toCsvString(column: Boolean): String = column.toString
59+
override def transform(column: Boolean): String = column.toString
6060
}
6161
}

smt-csv/src/main/scala/org/bitlap/csv/Scalable.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ trait Scalable[T] {
3636
* The column value of CSV line data.
3737
* @return
3838
*/
39-
def _toScala(column: String): Option[T]
39+
def transform(column: String): Option[T]
4040
}
4141

4242
object Scalable extends ScalableImplicits {

smt-csv/src/main/scala/org/bitlap/csv/ScalableBuilder.scala

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
package org.bitlap.csv
2323

24-
import org.bitlap.csv.macros.DeriveScalableBuilder
24+
import org.bitlap.csv.internal.ScalableBuilderMacro
2525
import java.io.InputStream
2626

2727
/** Builder to create a custom Csv Decoder.
@@ -43,7 +43,7 @@ class ScalableBuilder[T] {
4343
* @return
4444
*/
4545
def setField[SF](scalaField: T => SF, value: String => SF): ScalableBuilder[T] =
46-
macro DeriveScalableBuilder.setFieldImpl[T, SF]
46+
macro ScalableBuilderMacro.setFieldImpl[T, SF]
4747

4848
/** Create a custom builder for converting this CSV line to scala values.
4949
*
@@ -53,7 +53,7 @@ class ScalableBuilder[T] {
5353
* For processing CSV in the specified format.
5454
* @return
5555
*/
56-
def convert(line: String)(implicit format: CsvFormat): Option[T] = macro DeriveScalableBuilder.convertOneImpl[T]
56+
def convert(line: String)(implicit format: CsvFormat): Option[T] = macro ScalableBuilderMacro.convertOneImpl[T]
5757

5858
/** Convert all CSV lines to the sequence of Scala case class.
5959
*
@@ -64,7 +64,7 @@ class ScalableBuilder[T] {
6464
* @return
6565
*/
6666
def convert(lines: List[String])(implicit format: CsvFormat): List[Option[T]] =
67-
macro DeriveScalableBuilder.convertAllImpl[T]
67+
macro ScalableBuilderMacro.convertAllImpl[T]
6868

6969
/** Read all CSV lines of the file and convert them to the sequence of Scala case class.
7070
*
@@ -75,12 +75,12 @@ class ScalableBuilder[T] {
7575
* @return
7676
*/
7777
def convertFrom(file: InputStream)(implicit format: CsvFormat): List[Option[T]] =
78-
macro DeriveScalableBuilder.convertFromFileImpl[T]
78+
macro ScalableBuilderMacro.convertFromFileImpl[T]
7979

8080
}
8181

8282
object ScalableBuilder {
8383

84-
def apply[T <: Product]: ScalableBuilder[T] = macro DeriveScalableBuilder.applyImpl[T]
84+
def apply[T <: Product]: ScalableBuilder[T] = macro ScalableBuilderMacro.applyImpl[T]
8585

8686
}

smt-csv/src/main/scala/org/bitlap/csv/ScalableImplicits.scala

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,34 +30,34 @@ import scala.util.Try
3030
trait ScalableImplicits {
3131

3232
implicit final val stringScalable: Scalable[String] = new Scalable[String] {
33-
override def _toScala(column: String): Option[String] = if (column.isEmpty) None else Some(column)
33+
override def transform(column: String): Option[String] = if (column.isEmpty) None else Some(column)
3434
}
3535

3636
implicit final val intScalable: Scalable[Int] = new Scalable[Int] {
37-
override def _toScala(column: String): Option[Int] = Try(column.toInt).toOption
37+
override def transform(column: String): Option[Int] = Try(column.toInt).toOption
3838
}
3939

4040
implicit final val charScalable: Scalable[Char] = new Scalable[Char] {
41-
override def _toScala(column: String): Option[Char] = if (column.isEmpty) None else Try(column.charAt(0)).toOption
41+
override def transform(column: String): Option[Char] = if (column.isEmpty) None else Try(column.charAt(0)).toOption
4242
}
4343

4444
implicit final val longScalable: Scalable[Long] = new Scalable[Long] {
45-
override def _toScala(column: String): Option[Long] = Try(column.toLong).toOption
45+
override def transform(column: String): Option[Long] = Try(column.toLong).toOption
4646
}
4747

4848
implicit final val shortScalable: Scalable[Short] = new Scalable[Short] {
49-
override def _toScala(column: String): Option[Short] = Try(column.toShort).toOption
49+
override def transform(column: String): Option[Short] = Try(column.toShort).toOption
5050
}
5151

5252
implicit final val doubleScalable: Scalable[Double] = new Scalable[Double] {
53-
override def _toScala(column: String): Option[Double] = Try(column.toDouble).toOption
53+
override def transform(column: String): Option[Double] = Try(column.toDouble).toOption
5454
}
5555

5656
implicit final val floatScalable: Scalable[Float] = new Scalable[Float] {
57-
override def _toScala(column: String): Option[Float] = Try(column.toFloat).toOption
57+
override def transform(column: String): Option[Float] = Try(column.toFloat).toOption
5858
}
5959

6060
implicit final val booleanScalable: Scalable[Boolean] = new Scalable[Boolean] {
61-
override def _toScala(column: String): Option[Boolean] = Try(column.toBoolean).toOption
61+
override def transform(column: String): Option[Boolean] = Try(column.toBoolean).toOption
6262
}
6363
}

smt-csv/src/main/scala/org/bitlap/csv/macros/DeriveCsvableBuilder.scala renamed to smt-csv/src/main/scala/org/bitlap/csv/internal/CsvableBuilderMacro.scala

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
2020
*/
2121

22-
package org.bitlap.csv.macros
22+
package org.bitlap.csv.internal
2323

2424
import org.bitlap.common.MacroCache
2525
import org.bitlap.common.internal.AbstractMacroProcessor
@@ -33,7 +33,7 @@ import scala.reflect.macros.whitebox
3333
* 梦境迷离
3434
* @version 1.0,2022/4/29
3535
*/
36-
class DeriveCsvableBuilder(override val c: whitebox.Context) extends AbstractMacroProcessor(c) {
36+
class CsvableBuilderMacro(override val c: whitebox.Context) extends AbstractMacroProcessor(c) {
3737

3838
import c.universe._
3939

@@ -103,7 +103,7 @@ class DeriveCsvableBuilder(override val c: whitebox.Context) extends AbstractMac
103103
..${getAnnoClassObject[T](customTrees, format)}
104104
$packageName.FileUtils.writer($file, $ts.map { ($innerTName: $clazzName) =>
105105
$csvableInstanceTermName.$innerTmpTermName = $innerTName
106-
$csvableInstanceTermName._toCsvString($innerTName)
106+
$csvableInstanceTermName.transform($innerTName)
107107
}, $format
108108
)
109109
"""
@@ -120,7 +120,7 @@ class DeriveCsvableBuilder(override val c: whitebox.Context) extends AbstractMac
120120
..${getAnnoClassObject[T](customTrees, format)}
121121
lazy val lines = $ts.map { ($innerTName: $clazzName) =>
122122
$csvableInstanceTermName.$innerTmpTermName = $innerTName
123-
$csvableInstanceTermName._toCsvString($innerTName)
123+
$csvableInstanceTermName.transform($innerTName)
124124
}
125125
$packageName.StringUtils.combineRows(lines, $format)
126126
"""
@@ -139,7 +139,7 @@ class DeriveCsvableBuilder(override val c: whitebox.Context) extends AbstractMac
139139
val values = if (null == fields) _root_.scala.List.empty else ${fieldsToString[T](funcArgsTempTermName, customTrees)}
140140
$packageName.StringUtils.combineColumns(values, $format)
141141
}
142-
override def _toCsvString(t: $clazzName): String = _toCsv($annoClassName.$innerTmpTermName)
142+
override def transform(t: $clazzName): String = _toCsv($annoClassName.$innerTmpTermName)
143143
}
144144
145145
final lazy private val $csvableInstanceTermName = $annoClassName
@@ -156,13 +156,13 @@ class DeriveCsvableBuilder(override val c: whitebox.Context) extends AbstractMac
156156
object $annoClassName extends $packageName.Csvable[$clazzName] {
157157
final private val $innerTmpTermName = $t
158158
159-
override def _toCsvString(t: $clazzName): String = {
159+
override def transform(t: $clazzName): String = {
160160
val fields = ${clazzName.toTermName}.unapply($innerTmpTermName).orNull
161161
val values = if (null == fields) _root_.scala.List.empty else ${fieldsToString[T](innerTmpTermName, customTrees)}
162162
$packageName.StringUtils.combineColumns(values, $format)
163163
}
164164
}
165-
$annoClassName._toCsvString($t)
165+
$annoClassName.transform($t)
166166
"""
167167
exprPrintTree[String](force = false, tree)
168168
}
@@ -210,15 +210,15 @@ class DeriveCsvableBuilder(override val c: whitebox.Context) extends AbstractMac
210210
case t if t <:< typeOf[Option[_]] && !customTrees.contains(fieldNames(indexType._1)) =>
211211
val genericType = c.typecheck(q"${indexType._2}", c.TYPEmode).tpe.dealias.typeArgs.head
212212
q"""
213-
$packageName.Csvable[$genericType]._toCsvString {
213+
$packageName.Csvable[$genericType].transform {
214214
if ($innerVarTermName.${indexByName(indexType._1)}.isEmpty) ""
215215
else $innerVarTermName.${indexByName(indexType._1)}.get
216216
}
217217
"""
218218
case _ if customTrees.contains(fieldNames(indexType._1)) =>
219219
customFunction()
220220
case _ =>
221-
q"$packageName.Csvable[${indexType._2}]._toCsvString($innerVarTermName.${indexByName(indexType._1)})"
221+
q"$packageName.Csvable[${indexType._2}].transform($innerVarTermName.${indexByName(indexType._1)})"
222222
}
223223
}
224224
}

0 commit comments

Comments
 (0)