Generate the loader class for generated code.
()
| 1029 | * Generate the loader class for generated code. |
| 1030 | */ |
| 1031 | protected void generateLoader() { |
| 1032 | String loaderClassName = "DigesterGeneratedCodeLoader"; |
| 1033 | StringBuilder code = new StringBuilder(); |
| 1034 | code.append("package ").append(generatedCodePackage).append(';').append(System.lineSeparator()); |
| 1035 | code.append("public class ").append(loaderClassName); |
| 1036 | code.append(" implements org.apache.tomcat.util.digester.Digester.GeneratedCodeLoader {") |
| 1037 | .append(System.lineSeparator()); |
| 1038 | code.append("public Object loadGeneratedCode(String className) {").append(System.lineSeparator()); |
| 1039 | code.append("switch (className) {").append(System.lineSeparator()); |
| 1040 | for (String generatedClassName : Digester.getGeneratedClasses()) { |
| 1041 | code.append("case \"").append(generatedClassName).append("\" : return new ").append(generatedClassName); |
| 1042 | code.append("();").append(System.lineSeparator()); |
| 1043 | } |
| 1044 | code.append("default: return null; }").append(System.lineSeparator()); |
| 1045 | code.append("}}").append(System.lineSeparator()); |
| 1046 | File loaderLocation = new File(generatedCodeLocation, generatedCodePackage); |
| 1047 | try (FileWriter writer = new FileWriter(new File(loaderLocation, loaderClassName + ".java"))) { |
| 1048 | writer.write(code.toString()); |
| 1049 | } catch (IOException ioe) { |
| 1050 | // Should not happen |
| 1051 | log.debug(sm.getString("catalina.loaderWriteFail"), ioe); |
| 1052 | } |
| 1053 | } |
| 1054 | |
| 1055 | |
| 1056 | /** |