@Override public void addMapping(XContentBuilder builder) throws IOException { builder.startObject(getTypeName()); if (clazz.isAnnotationPresent(ElasticSearchTtl.class)) { String ttlValue = clazz.getAnnotation(ElasticSearchTtl.class).value(); builder.startObject("_ttl"); builder.field("enabled", true); builder.field("default", ttlValue); builder.endObject(); } builder.startObject("properties"); for (FieldMapper<M> field : mapping) { field.addToMapping(builder); } builder.endObject(); builder.endObject(); }