class TspOutputBuilder extends TxtOutputBuilder<TspSolution> {

        @Override
        public void writeSolution() throws IOException {<FILL_FUNCTION_BODY>}

        private Visit findNextVisit(Standstill standstill) {
            for (Visit visit : solution.getVisitList()) {
                if (visit.getPreviousStandstill() == standstill) {
                    return visit;
                }
            }
            return null;
        }
    }

            bufferedWriter.write("NAME : " + solution.getName() + "\n");
            bufferedWriter.write("TYPE : TOUR\n");
            bufferedWriter.write("DIMENSION : " + solution.getLocationList().size() + "\n");
            bufferedWriter.write("TOUR_SECTION\n");
            Standstill standstill = solution.getDomicile();
            while (standstill != null) {
                bufferedWriter.write(standstill.getLocation().getId() + "\n");
                standstill = findNextVisit(standstill);
            }
            bufferedWriter.write("EOF\n");
        
<methods>public non-sealed void <init>() ,public abstract TxtOutputBuilder<org.optaplanner.examples.tsp.domain.TspSolution> createTxtOutputBuilder() ,public java.lang.String getOutputFileSuffix() ,public void writeSolution(org.optaplanner.examples.tsp.domain.TspSolution, java.io.File) <variables>protected static final java.lang.String DEFAULT_OUTPUT_FILE_SUFFIX