package org.fenixedu.bennu.core.api.json; import org.fenixedu.bennu.core.annotation.DefaultJsonAdapter; import org.fenixedu.bennu.core.groups.Group; import org.fenixedu.bennu.core.json.JsonAdapter; import org.fenixedu.bennu.core.json.JsonBuilder; import org.fenixedu.bennu.core.security.Authenticate; import com.google.gson.JsonElement; import com.google.gson.JsonObject; @DefaultJsonAdapter(Group.class) public class GroupJsonAdapter implements JsonAdapter<Group> { @Override public Group create(JsonElement json, JsonBuilder ctx) { return Group.parse(json.getAsJsonObject().get("expression").getAsString()); } @Override public Group update(JsonElement json, Group obj, JsonBuilder ctx) { return Group.parse(json.getAsJsonObject().get("expression").getAsString()); } @Override public JsonElement view(Group group, JsonBuilder ctx) { JsonObject object = new JsonObject(); object.addProperty("expression", group.getExpression()); object.addProperty("name", group.getPresentationName()); object.addProperty("accessible", group.isMember(Authenticate.getUser())); return object; } }