diff --git a/core/store/dist/src/main/java/org/onlab/onos/store/service/impl/TableModificationEvent.java b/core/store/dist/src/main/java/org/onlab/onos/store/service/impl/TableModificationEvent.java
index 25956de..885c9fa 100644
--- a/core/store/dist/src/main/java/org/onlab/onos/store/service/impl/TableModificationEvent.java
+++ b/core/store/dist/src/main/java/org/onlab/onos/store/service/impl/TableModificationEvent.java
@@ -1,25 +1,50 @@
 package org.onlab.onos.store.service.impl;
 
-public class TableModificationEvent {
+/**
+ * A table modification event.
+ */
+public final class TableModificationEvent {
 
+    /**
+     * Type of table modification event.
+     *
+     */
     public enum Type {
         ROW_ADDED,
         ROW_DELETED,
         ROW_UPDATED
     }
-    
+
     private final String tableName;
     private final String key;
     private final Type type;
 
+    /**
+     * Creates a new row deleted table modification event.
+     * @param tableName table name.
+     * @param key row key
+     * @return table modification event.
+     */
     public static TableModificationEvent rowDeleted(String tableName, String key) {
         return new TableModificationEvent(tableName, key, Type.ROW_DELETED);
     }
-    
+
+    /**
+     * Creates a new row added table modification event.
+     * @param tableName table name.
+     * @param key row key
+     * @return table modification event.
+     */
     public static TableModificationEvent rowAdded(String tableName, String key) {
         return new TableModificationEvent(tableName, key, Type.ROW_ADDED);
     }
-    
+
+    /**
+     * Creates a new row updated table modification event.
+     * @param tableName table name.
+     * @param key row key
+     * @return table modification event.
+     */
     public static TableModificationEvent rowUpdated(String tableName, String key) {
         return new TableModificationEvent(tableName, key, Type.ROW_UPDATED);
     }
@@ -30,14 +55,26 @@
         this.type = type;
     }
 
+    /**
+     * Returns name of table this event is for.
+     * @return table name
+     */
     public String tableName() {
         return tableName;
     }
 
+    /**
+     * Returns the row key this event is for.
+     * @return row key
+     */
     public String key() {
         return key;
     }
 
+    /**
+     * Returns the type of table modification event.
+     * @return event type.
+     */
     public Type type() {
         return type;
     }
