/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package net.onrc.onos.ofcontroller.flowmanager;

/**
 *
 * @author nickkaranatsios
 */
public enum DBOperationType {
    ADD,
    UPDATE,
    QUERY,
    REMOVE,
    INVALID
}

