package org.fenixedu.bennu.io.api.json; import org.fenixedu.bennu.core.annotation.DefaultJsonAdapter; import org.fenixedu.bennu.core.json.JsonAdapter; import org.fenixedu.bennu.core.json.JsonBuilder; import org.fenixedu.bennu.io.domain.FileStorage; import org.fenixedu.bennu.io.domain.LocalFileSystemStorage; import com.google.gson.JsonElement; import com.google.gson.JsonObject; @DefaultJsonAdapter(LocalFileSystemStorage.class) public class LocalFileSystemStorageAdapter implements JsonAdapter<LocalFileSystemStorage> { @Override public LocalFileSystemStorage create(JsonElement el, JsonBuilder ctx) { final JsonObject obj = el.getAsJsonObject(); final String name = obj.get("name").getAsString(); final String path = obj.get("path").getAsString(); final Integer treeDirectoriesNameLength = obj.get("treeDirectoriesNameLength").getAsInt(); return FileStorage.createNewFileSystemStorage(name, path, treeDirectoriesNameLength); } @Override public LocalFileSystemStorage update(JsonElement arg0, LocalFileSystemStorage arg1, JsonBuilder arg2) { throw new UnsupportedOperationException(); } @Override public JsonElement view(LocalFileSystemStorage fls, JsonBuilder ctx) { final JsonObject json = ctx.view(fls, FileStorageAdapter.class).getAsJsonObject(); json.addProperty("path", fls.getPath()); json.addProperty("treeDirectoriesNameLength", fls.getTreeDirectoriesNameLength()); return json; } }