
wprocessors.1.2.6.source-code.record.stg Maven / Gradle / Ivy
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