This commit is contained in:
Anuken
2020-08-09 12:46:44 -04:00
parent 1b7159647e
commit 1d5a25ce75
30 changed files with 7588 additions and 7175 deletions

View File

@@ -70,15 +70,22 @@ public class LogicStatementProcessor extends BaseProcessor{
if(field.is(Modifier.TRANSIENT)) continue;
writer.addStatement("out.append(\" \")");
writer.addStatement("out.append((($T)obj).$L)", c.mirror(), field.name());
writer.addStatement("out.append((($T)obj).$L$L)", c.mirror(), field.name(),
field.mirror().toString().equals("java.lang.String") ?
".replace(\"\\n\", \"\\\\n\")" :
Seq.with(typeu.directSupertypes(field.mirror())).contains(t -> t.toString().contains("java.lang.Enum")) ? ".name()" :
"");
//reading primitives, strings and enums is supported; nothing else is
reader.addStatement("result.$L = $L(tokens[$L])",
reader.addStatement("result.$L = $L(tokens[$L])$L",
field.name(),
field.mirror().toString().equals("java.lang.String") ?
"" : (field.tname().isPrimitive() ? field.tname().box().toString() :
field.mirror().toString()) + ".valueOf", //if it's not a string, it must have a valueOf method
index + 1
index + 1,
field.mirror().toString().equals("java.lang.String") ?
".replace(\"\\\\n\", \"\\n\")" :
""
);
index ++;