update lastaflute
This commit is contained in:
parent
a31b495a40
commit
7b83242fb3
2 changed files with 7 additions and 55 deletions
2
pom.xml
2
pom.xml
|
@ -40,7 +40,7 @@
|
|||
|
||||
<!-- Main Framework -->
|
||||
<dbflute.version>1.1.2</dbflute.version>
|
||||
<lastaflute.version>0.9.2-RC2</lastaflute.version>
|
||||
<lastaflute.version>0.9.2-RC3</lastaflute.version>
|
||||
<lasta.taglib.version>0.7.1</lasta.taglib.version>
|
||||
<lasta.job.version>0.4.0</lasta.job.version>
|
||||
<mailflute.version>0.5.2</mailflute.version>
|
||||
|
|
|
@ -15,71 +15,23 @@
|
|||
*/
|
||||
package org.codelibs.fess.mylasta.direction.sponsor;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import org.dbflute.optional.OptionalThing;
|
||||
import org.lastaflute.core.json.JsonMappingOption;
|
||||
import org.lastaflute.core.json.JsonMappingOption.JsonFieldNaming;
|
||||
import org.lastaflute.core.json.JsonResourceProvider;
|
||||
import org.lastaflute.core.json.bind.JsonYourCollectionResource;
|
||||
import org.lastaflute.core.json.engine.GsonJsonEngine;
|
||||
import org.lastaflute.core.json.engine.RealJsonEngine;
|
||||
|
||||
import com.google.gson.FieldNamingPolicy;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.internal.bind.LaYourCollectionTypeAdapterFactory;
|
||||
|
||||
public class FessJsonResourceProvider implements JsonResourceProvider {
|
||||
@Override
|
||||
public boolean isNullsSuppressed() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPrettyPrintSuppressed() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public JsonMappingOption provideOption() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public List<JsonYourCollectionResource> provideYourCollections() {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
public RealJsonEngine swtichJsonEngine() {
|
||||
final boolean serializeNulls = !isNullsSuppressed();
|
||||
final boolean prettyPrinting = !isPrettyPrintSuppressed();
|
||||
final OptionalThing<JsonMappingOption> mappingOption =
|
||||
provideOption() != null ? OptionalThing.of(provideOption()) : OptionalThing.empty();
|
||||
return new GsonJsonEngine(builder -> {
|
||||
setupSerializeNullsSettings(builder, serializeNulls);
|
||||
setupPrettyPrintingSettings(builder, prettyPrinting);
|
||||
setupYourCollectionSettings(builder);
|
||||
builder.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES);
|
||||
}, op -> {
|
||||
mappingOption.ifPresent(another -> op.acceptAnother(another));
|
||||
});
|
||||
}
|
||||
|
||||
protected void setupSerializeNullsSettings(GsonBuilder builder, boolean serializeNulls) {
|
||||
if (serializeNulls) {
|
||||
builder.serializeNulls();
|
||||
}
|
||||
}
|
||||
|
||||
protected void setupPrettyPrintingSettings(GsonBuilder builder, boolean prettyPrinting) {
|
||||
if (prettyPrinting) {
|
||||
builder.setPrettyPrinting();
|
||||
}
|
||||
}
|
||||
|
||||
protected void setupYourCollectionSettings(GsonBuilder builder) {
|
||||
for (JsonYourCollectionResource resource : provideYourCollections()) {
|
||||
builder.registerTypeAdapterFactory(createYourCollectionTypeAdapterFactory(resource));
|
||||
}
|
||||
}
|
||||
|
||||
protected LaYourCollectionTypeAdapterFactory createYourCollectionTypeAdapterFactory(JsonYourCollectionResource resource) {
|
||||
return new LaYourCollectionTypeAdapterFactory(resource.getYourType(), resource.getYourCollectionCreator());
|
||||
@Override
|
||||
public JsonMappingOption provideMappingOption() {
|
||||
return new JsonMappingOption().asFieldNaming(JsonFieldNaming.CAMEL_TO_LOWER_SNAKE);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue