blob: c403846d285f69b21019be43a4a0326dc9f611e2 [file] [log] [blame]
Brian O'Connorb876bf12014-10-02 14:59:37 -07001package org.onlab.onos.net.intent;
2
Brian O'Connorf2dbde52014-10-10 16:20:24 -07003import java.util.List;
Brian O'Connorcb900f42014-10-07 21:55:33 -07004
Brian O'Connorf2dbde52014-10-10 16:20:24 -07005import org.onlab.onos.net.flow.FlowRuleBatchOperation;
Brian O'Connorcb900f42014-10-07 21:55:33 -07006
Brian O'Connorb876bf12014-10-02 14:59:37 -07007/**
8 * Abstraction of entity capable of installing intents to the environment.
9 */
Thomas Vachuskac96058a2014-10-20 23:00:16 -070010public interface IntentInstaller<T extends Intent> {
Brian O'Connorb876bf12014-10-02 14:59:37 -070011 /**
12 * Installs the specified intent to the environment.
13 *
14 * @param intent intent to be installed
15 * @throws IntentException if issues are encountered while installing the intent
16 */
Brian O'Connorf2dbde52014-10-10 16:20:24 -070017 List<FlowRuleBatchOperation> install(T intent);
Brian O'Connorb876bf12014-10-02 14:59:37 -070018
19 /**
20 * Uninstalls the specified intent from the environment.
21 *
22 * @param intent intent to be uninstalled
23 * @throws IntentException if issues are encountered while uninstalling the intent
24 */
Brian O'Connorf2dbde52014-10-10 16:20:24 -070025 List<FlowRuleBatchOperation> uninstall(T intent);
Brian O'Connorb876bf12014-10-02 14:59:37 -070026}