1 /* 2 * Copyright (c) 2014 Contextream, Inc. and others. All rights reserved. 3 * 4 * This program and the accompanying materials are made available under the 5 * terms of the Eclipse Public License v1.0 which accompanies this distribution, 6 * and is available at http://www.eclipse.org/legal/epl-v10.html 7 */ 8 9 package org.opendaylight.lispflowmapping.interfaces.dao; 10 11 import java.util.Map; 12 13 public interface ILispDAO { 14 15 /** 16 * Put a entry into the DAO. 17 * 18 * @param key 19 * The entry's key. 20 * @param values 21 * The entry's value. 22 */ 23 void put(Object key, MappingEntry<?>... values); 24 25 /** 26 * Get a specific value from the DAO. 27 * 28 * @param key 29 * The key of the value to fetch 30 * @param valueKey 31 * The value to fetch 32 * @return The value from the DAO. 33 */ 34 Object getSpecific(Object key, String valueKey); 35 36 /** 37 * Get the entries from the DAO 38 * 39 * @param key 40 * The key. 41 * @return The value from the DAO. 42 */ 43 Map<String, Object> get(Object key); 44 45 /** 46 * Enumerate all the entries from the DAO 47 * 48 * @param visitor 49 * The visitor object. 50 */ 51 void getAll(IRowVisitor visitor); 52 53 /** 54 * Remove an entry from the DAO 55 * 56 * @param key 57 * The key of the entry to delete 58 */ 59 void remove(Object key); 60 61 /** 62 * Remove an entry from the DAO 63 * 64 * @param key 65 * The key of the entry 66 * @param valueKey 67 * The value to delete 68 */ 69 void removeSpecific(Object key, String valueKey); 70 71 /** 72 * Clear the DAO and remove all of the entries. 73 */ 74 void removeAll(); 75 76 /** 77 * Insert a new table for given key. 78 * 79 * @param key 80 * The key for the table 81 * @return The inserted table 82 */ 83 ILispDAO putTable(String key); 84 85 /** 86 * Inserts a new, nested table for given key and subkey. Also acts as factory method. 87 * 88 * @param key 89 * The key for which a new table is linked in 90 * @param valueKey 91 * The subkey under which to insert the new table 92 * @return The inserted table 93 */ 94 ILispDAO putNestedTable(Object key, String valueKey); 95 }