コード例 #1
0
  public String generateJsonMetadata(BundleBuildRequest request, BundleBuildResponse response) {
    File bundleDir = new File(response.getBundleDataDirectory());
    List<BundleFile> files = getBundleFilesWithSumsForDirectory(bundleDir, bundleDir);

    Gson gson =
        new GsonBuilder()
            .serializeNulls()
            .registerTypeAdapter(DateTime.class, new JodaDateTimeAdapter())
            .registerTypeAdapter(LocalDate.class, new JodaLocalDateAdapter())
            .setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_DASHES)
            .setPrettyPrinting()
            .create();

    Bundle bundle = new Bundle();

    bundle.setId(request.getBundleName());

    bundle.setName(request.getBundleName());

    bundle.setServiceDateFrom(request.getBundleStartDate());
    bundle.setServiceDateTo(request.getBundleEndDate());

    DateTime now = new DateTime();

    bundle.setCreated(now);
    bundle.setUpdated(now);

    List<String> applicableAgencyIds = new ArrayList<String>();
    // TODO this should come from somewhere
    applicableAgencyIds.add("MTA NYCT");

    bundle.setApplicableAgencyIds(applicableAgencyIds);

    bundle.setFiles(files);

    String output = gson.toJson(bundle);

    String outputFilename = response.getBundleRootDirectory() + File.separator + META_DATA_FILE;
    File outputFile = new File(outputFilename);
    _log.info("creating metadata file=" + outputFilename);
    PrintWriter writer = null;
    try {
      writer = new PrintWriter(outputFile);
      writer.print(output);
    } catch (Exception any) {
      _log.error(any.toString(), any);
      response.setException(any);
    } finally {
      writer.close();
    }
    return outputFilename;
  }