@Override public void afterEnd() { string("}").newLine(); } });
@Override public void beforeEnd() { string(";").newLine(); }
@Override public void beforeEnd() { string(";").newLine(); // complete statement to execute }
@Override public void afterEnd() { string("}").newLine(); } });
@Override public void beforeEnd() { string(";").newLine(); // complete statement to execute }
@Override public void beforeEnd() { string(";").newLine(); }
@Override public void beforeEnd() { string(" :").newLine(); }
@Override public void beforeEnd() { string(" :").newLine(); }
@Override public void afterEnd() { string("return").string(";").newLine(); // emit a return; } });
@Override public void afterEnd() { string("return").string(";").newLine(); // emit a return; } });
public CodeTreeBuilder lineComment(String text) { return string("// ").string(text).newLine(); }
public CodeTreeBuilder caseDefault() { return startGroup().string("default :").newLine().end(); }
public CodeTreeBuilder caseDefault() { return startGroup().string("default :").newLine().end(); }
public CodeTreeBuilder startBlock() { startGroup(); string("{").newLine().startIndention(); registerCallBack(new EndCallback() { @Override public void beforeEnd() { } @Override public void afterEnd() { string("}").newLine(); } }); endAfter(); return this; }
public CodeTreeBuilder startBlock() { startGroup(); string("{").newLine().startIndention(); registerCallBack(new EndCallback() { @Override public void beforeEnd() { } @Override public void afterEnd() { string("}").newLine(); } }); endAfter(); return this; }
private CodeExecutableElement createIsImplicitTypeMethodFlat(TypeMirror type) { CodeExecutableElement method = new CodeExecutableElement(modifiers(PUBLIC, STATIC), context.getType(boolean.class), TypeSystemCodeGenerator.isImplicitTypeMethodName(typeSystem, type)); method.addParameter(new CodeVariableElement(context.getType(int.class), "state")); method.addParameter(new CodeVariableElement(context.getType(Object.class), LOCAL_VALUE)); CodeTreeBuilder builder = method.createBuilder(); List<TypeMirror> sourceTypes = typeSystem.lookupSourceTypes(type); builder.startReturn(); String sep = ""; int mask = 1; for (TypeMirror sourceType : sourceTypes) { builder.string(sep); builder.string("((state & 0b").string(Integer.toBinaryString(mask)).string(") != 0 && "); builder.tree(check(typeSystem, sourceType, LOCAL_VALUE)); builder.string(")"); if (sourceTypes.lastIndexOf(sourceType) != sourceTypes.size() - 1) { builder.newLine(); } if (sep.equals("")) { builder.startIndention(); } sep = " || "; mask = mask << 1; } builder.end(); builder.end(); return method; }
private void generateCheckNewPolymorphismState(CodeTreeBuilder builder) { builder.startIf().string(OLD_STATE + " != 0"); if (requiresExclude()) { builder.string(" || " + OLD_EXCLUDE + " != 0"); } builder.end(); builder.startBlock(); builder.string(CHECK_FOR_POLYMORPHIC_SPECIALIZE + "(" + OLD_STATE); if (requiresExclude()) { builder.string(", " + OLD_EXCLUDE); } if (requiresCacheCheck()) { builder.string(", " + OLD_CACHE_COUNT); } builder.string(");").newLine(); builder.end(); // block }