/** * Generate files under the specified directory * * @param directory the directory under which to generate files * @throws IOException if the files cannot be generated * @deprecated construct {@code HollowAPIGenerator} with a {@code destinationPath} then call {@link #generateSourceFiles()} */ public void generateFiles(File directory) throws IOException { if (packageName != null && !packageName.trim().isEmpty()) { String packageDir = packageName.replace(".", File.separator); if (!directory.getAbsolutePath().endsWith(packageDir)) { directory = new File(directory, packageDir); } } directory.mkdirs(); HollowAPIClassJavaGenerator apiClassGenerator = new HollowAPIClassJavaGenerator(packageName, apiClassname, dataset, parameterizeClassNames, config); HollowAPIFactoryJavaGenerator apiFactoryGenerator = new HollowAPIFactoryJavaGenerator(packageName, apiClassname, dataset, config); HollowHashIndexGenerator hashIndexGenerator = new HollowHashIndexGenerator(packageName, apiClassname, dataset, config); generateFile(directory, apiClassGenerator); generateFile(directory, apiFactoryGenerator); generateFile(directory, hashIndexGenerator); generateFilesForHollowSchemas(directory); }
appendPackageAndCommonImports(builder); builder.append(" typeDataAccess = dataAccess.getTypeDataAccess(\"").append(schema.getName()).append("\");\n"); builder.append(" if(typeDataAccess != null) {\n"); builder.append(" ").append(lowercase(typeAPIClassname(schema.getName()))).append(" = new ").append(typeAPIClassname(schema.getName())).append("(this, (Hollow").append(schemaType(schema)).append("TypeDataAccess)typeDataAccess);\n"); builder.append(" } else {\n"); builder.append(" ").append(lowercase(typeAPIClassname(schema.getName()))).append(" = new ").append(typeAPIClassname(schema.getName())).append("(this, new Hollow").append(schemaType(schema)).append("MissingDataAccess(dataAccess, \"").append(schema.getName()).append("\"));\n"); builder.append(" }\n"); builder.append(" addTypeAPI(").append(lowercase(typeAPIClassname(schema.getName()))).append(");\n"); HollowSchema schema = schemaList.get(i); if(parameterizeClassNames) { builder.append(" public <T> Collection<T> getAll").append(hollowImplClassname(schema.getName())).append("() {\n"); builder.append(" return new AllHollowRecordCollection<T>(getDataAccess().getTypeDataAccess(\"").append(schema.getName()).append("\").getTypeState()) {\n"); builder.append(" protected T getForOrdinal(int ordinal) {\n"); builder.append(" return get").append(hollowImplClassname(schema.getName())).append("(ordinal);\n"); builder.append(" }\n"); builder.append(" };\n"); builder.append(" }\n"); builder.append(" public <T> T get").append(hollowImplClassname(schema.getName())).append("(int ordinal) {\n"); builder.append(" objectCreationSampler.recordCreation(").append(i).append(");\n"); builder.append(" return (T) ").append(hollowObjectProviderName(schema.getName())).append(".getHollowObject(ordinal);\n"); builder.append(" }\n"); } else { String hollowImplClassname = hollowImplClassname(schema.getName());