All Downloads are FREE. Search and download functionalities are using the official Maven repository.

wprocessors.1.2.6.source-code.record.stg Maven / Gradle / Ivy

There is a newer version: 1.5.9
Show newest version
delimiters "$", "$"

pathPart(pathPart)::= "$pathPart.main.className$Optics.$pathPart.field.fieldName$T"

restPath(path) ::=<<$if(path)$
  .andThen($pathPart(first(path))$)$restPath(rest(path))$$endif$>>

firstPath(path) ::= <<
  $pathPart(first(path))$$restPath(rest(path))$
>>
traversal(details,recordDetails)::=<<
$if(recordDetails.debug)$//$recordDetails$
//$details$
$endif$
 $details: {x | ITraversal<$recordDetails.className$,$x.classAtEnd.className$> $x.name$ = $firstPath(x.path)$ ;$\n$}$
>>
recordOptic(details) ::= <<
package $details.packageName$;

import java.util.List;
import one.xingyi.optics.ITraversal;
import one.xingyi.optics.annotations.processors.IGeneratedOptics;
import one.xingyi.optics.ILens;
$details.fieldDetails: {fd |import $fd.fieldType.string$;$\n$}$
$details.traversalDetails:{td|$td.path:{p|import $p.main.string$Optics;$\n$}$}$
$details.traversalDetails: {td |import $td.classAtEnd.string$;$\n$}$

public interface $details.className$Optics extends IGeneratedOptics<$details.className$> {
 $details.fieldDetails: {x | ILens<$details.className$,$x.fieldType.shortName$> $x.name$L =
   ILens.of($details.className$::$x.getter$,$x.setter$);$\n$}$
 $details.fieldDetails: {x | $if(x.containedFieldType)$ ITraversal<$details.className$, $x.containedFieldType.shortName$> $x.name$T =
   ITraversal.from$x.simpleCollectionType.className$Lens($x.name$L);$\n$$endif$}$
 $if(details.addListTraversal)$ ITraversal,$details.className$> listT=ITraversal.listTraversal();$endif$
 $details.traversalDetails:traversal(details)$}
>>




© 2015 - 2025 Weber Informatics LLC | Privacy Policy