package io.lumify.core.model.audit;
import com.altamiracorp.bigtable.model.ColumnFamily;
import com.altamiracorp.bigtable.model.Value;
import io.lumify.web.clientapi.model.UserType;
import io.lumify.core.user.User;
import org.securegraph.Visibility;
import org.json.JSONException;
import org.json.JSONObject;
public class AuditCommon extends ColumnFamily {
public static final String NAME = "common";
public static final String ACTOR_TYPE = "actorType";
public static final String USER_ID = "userId";
public static final String USER_NAME = "userName";
public static final String DISPLAY_NAME = "displayName";
public static final String ACTION = "action";
public static final String TYPE = "type";
public static final String COMMENT = "comment";
public static final String PROCESS = "process";
public static final String UNIX_BUILD_TIME = "unixBuildTime";
public static final String VERSION = "version";
public static final String SCM_BUILD_NUMBER = "scmBuildNumber";
public static final String PUBLISHED = "published";
public AuditCommon() {
super(NAME);
}
public String getActorType() {
return Value.toString(get(ACTOR_TYPE));
}
public AuditCommon setActorType(UserType actorType, Visibility visibility) {
set(ACTOR_TYPE, actorType.toString(), visibility.getVisibilityString());
return this;
}
public String getUserId() {
return Value.toString(get(USER_ID));
}
public AuditCommon setUserId(String userId, Visibility visibility) {
set(USER_ID, userId, visibility.getVisibilityString());
return this;
}
public String getUserName() {
return Value.toString(get(USER_NAME));
}
public AuditCommon setUserName(String userName, Visibility visibility) {
set(USER_NAME, userName, visibility.getVisibilityString());
return this;
}
public String getDisplayName() {
return Value.toString(get(DISPLAY_NAME));
}
public AuditCommon setDisplayName(String displayName, Visibility visibility) {
set(DISPLAY_NAME, displayName, visibility.getVisibilityString());
return this;
}
public String getAction() {
return Value.toString(get(ACTION));
}
public AuditCommon setAction(AuditAction action, Visibility visibility) {
set(ACTION, action.toString(), visibility.getVisibilityString());
return this;
}
public String getType() {
return Value.toString(get(TYPE));
}
public AuditCommon setType(String type, Visibility visibility) {
set(TYPE, type, visibility.getVisibilityString());
return this;
}
public String getComment() {
return Value.toString(get(COMMENT));
}
public AuditCommon setComment(String comment, Visibility visibility) {
set(COMMENT, comment, visibility.getVisibilityString());
return this;
}
public AuditCommon setUser(User user, Visibility visibility) {
setUserId(user.getUserId(), visibility);
setUserName(user.getUsername(), visibility);
setDisplayName(user.getDisplayName(), visibility);
setActorType(user.getUserType(), visibility);
return this;
}
public String getProcess() {
return Value.toString(get(PROCESS));
}
public AuditCommon setProcess(String process, Visibility visibility) {
set(PROCESS, process, visibility.getVisibilityString());
return this;
}
public Long getUnixBuildTime() {
return Value.toLong(get(UNIX_BUILD_TIME));
}
public AuditCommon setUnixBuildTime(Long unixBuildTime, Visibility visibility) {
set(UNIX_BUILD_TIME, unixBuildTime, visibility.getVisibilityString());
return this;
}
public String getVersion() {
return Value.toString(get(VERSION));
}
public AuditCommon setVersion(String version, Visibility visibility) {
set(VERSION, version, visibility.getVisibilityString());
return this;
}
public String getScmBuildNumber() {
return Value.toString(get(SCM_BUILD_NUMBER));
}
public AuditCommon setScmBuildNumber(String scmBuildNumber, Visibility visibility) {
set(SCM_BUILD_NUMBER, scmBuildNumber, visibility.getVisibilityString());
return this;
}
public String getPublished() {
return Value.toString(get(PUBLISHED));
}
public AuditCommon setPublished(String published, Visibility visibility) {
set(PUBLISHED, published, visibility.getVisibilityString());
return this;
}
@Override
public JSONObject toJson() {
try {
JSONObject json = new JSONObject();
json.put("actorType", getActorType());
json.put("userId", getUserId());
json.put("userName", getUserName());
json.put("displayName", getDisplayName());
json.put("action", getAction());
json.put("type", getType());
json.put("comment", getComment());
json.put("process", getProcess());
json.put("unixBuildTime", getUnixBuildTime());
json.put("version", getVersion());
json.put("scmBuildNumber", getScmBuildNumber());
json.put("published", getPublished());
return json;
} catch (JSONException e) {
throw new RuntimeException(e);
}
}
}