class StructuredData {

  public static synchronized void init(Schema schema) {
    checkNotNull(schema, "schema cannot be null");

    // Handle a direct call to init, rather than initFromConfiguration.
    dateTimeParsers.compareAndSet(ImmutableList.of(), DEFAULT_DATETIME_PARSERS);

    List<ObjectDefinition> objectDefinitions =
        schema.getObjectDefinitions() == null
            ? Collections.emptyList()
            : schema.getObjectDefinitions();
    ImmutableMap<String, StructuredData> mappings =
        objectDefinitions
            .stream()
            .collect(
                ImmutableMap.toImmutableMap(
                    objDefinition -> objDefinition.getName(),
                    objDefinition -> new StructuredData(objDefinition)));
    structuredDataMapping.set(mappings);
    initialized.set(true);
  }

  private  StructuredData(ObjectDefinition objectDefinition);

}