package io.lumify.core.model.audit;
import com.altamiracorp.bigtable.model.ModelSession;
import com.altamiracorp.bigtable.model.Repository;
import com.altamiracorp.bigtable.model.Row;
import io.lumify.core.user.User;
import org.securegraph.*;
import org.securegraph.mutation.ElementMutation;
import java.util.List;
public abstract class AuditRepository extends Repository<Audit> {
public AuditRepository(ModelSession modelSession) {
super(modelSession);
}
public abstract Audit fromRow(Row row);
public abstract Row toRow(Audit audit);
public abstract String getTableName();
public abstract Iterable<Audit> getAudits(String vertexId, String workspaceId, Authorizations authorizations);
public abstract Audit auditVertex(AuditAction auditAction, Object vertexId, String process, String comment, User user, Visibility visibility);
public abstract Audit auditEntityProperty(AuditAction action, Object id, String propertyKey, String propertyName, Object oldValue, Object newValue,
String process, String comment, Metadata metadata, User user,
Visibility visibility);
public abstract List<Audit> auditRelationship(AuditAction action, Vertex sourceVertex, Vertex destVertex, Edge edge, String process,
String comment, User user, Visibility visibility);
public abstract List<Audit> auditRelationshipProperty(AuditAction action, String sourceId, String destId, String propertyKey, String propertyName,
Object oldValue, Object newValue, Edge edge, String process, String comment, User user,
Visibility visibility);
public abstract Audit auditAnalyzedBy(AuditAction action, Vertex vertex, String process, User user, Visibility visibility);
public abstract void auditVertexElementMutation(AuditAction action, ElementMutation<Vertex> vertexElementMutation, Vertex vertex, String process,
User user, Visibility visibility);
public abstract void auditEdgeElementMutation(AuditAction action, ElementMutation<Edge> edgeElementMutation, Edge edge, Vertex sourceVertex, Vertex destVertex, String process,
User user, Visibility visibility);
public abstract void updateColumnVisibility(Audit audit, Visibility originalEdgeVisibility, String visibilityString);
}