1 /* 2 3 dsh-multi-map Multi-key map interfaces and implementation. 4 Copyright (c) 2007-2016 held jointly by the individual authors. 5 6 This library is free software; you can redistribute it and/or modify it 7 under the terms of the GNU Lesser General Public License as published 8 by the Free Software Foundation; either version 3 of the License, or (at 9 your option) any later version. 10 11 This library is distributed in the hope that it will be useful, but WITHOUT 12 ANY WARRANTY; with out even the implied warranty of MERCHANTABILITY or 13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 14 License for more details. 15 16 You should have received a copy of the GNU Lesser General Public License 17 along with this library; if not, write to the Free Software Foundation, 18 Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. 19 20 > http://www.fsf.org/licensing/licenses/lgpl.html 21 > http://www.opensource.org/licenses/lgpl-license.php 22 23 */ 24 package org.dishevelled.multimap.impl; 25 26 import org.dishevelled.multimap.QuaternaryKeyMap; 27 28 /** 29 * Static utility methods for QuaternaryKeyMaps. 30 * 31 * @author Michael Heuer 32 */ 33 public final class QuaternaryKeyMaps 34 { 35 36 /** 37 * Private no-arg constructor. 38 */ 39 private QuaternaryKeyMaps() 40 { 41 // empty 42 } 43 44 45 /** 46 * Create and return a new instance of QuaternaryKeyMap. 47 * 48 * @param <K1> first key type 49 * @param <K2> second key type 50 * @param <K3> third key type 51 * @param <K4> fourth key type 52 * @param <V> value type 53 * @return a new instance of QuaternaryKeyMap 54 */ 55 public static <K1, K2, K3, K4, V> QuaternaryKeyMap<K1, K2, K3, K4, V> createQuaternaryKeyMap() 56 { 57 return new HashedQuaternaryKeyMap<K1, K2, K3, K4, V>(); 58 } 59 60 /** 61 * Create and return a new instance of QuaternaryKeyMap with the specified initial capacity. 62 * 63 * @param <K1> first key type 64 * @param <K2> second key type 65 * @param <K3> third key type 66 * @param <K4> fourth key type 67 * @param <V> value type 68 * @param initialCapacity initial capacity 69 * @return a new instance of QuaternaryKeyMap with the specified initial capacity 70 */ 71 public static <K1, K2, K3, K4, V> QuaternaryKeyMap<K1, K2, K3, K4, V> createQuaternaryKeyMap(final int initialCapacity) 72 { 73 return new HashedQuaternaryKeyMap<K1, K2, K3, K4, V>(initialCapacity, 74 HashedQuaternaryKeyMap.DEFAULT_LOAD_FACTOR, 75 HashedQuaternaryKeyMap.DEFAULT_THRESHOLD); 76 } 77 78 /** 79 * Create and return a new instance of QuaternaryKeyMap with the specified initial capacity, 80 * load factor, and threshold. 81 * 82 * @param <K1> first key type 83 * @param <K2> second key type 84 * @param <K3> third key type 85 * @param <K4> fourth key type 86 * @param <V> value type 87 * @param initialCapacity initial capacity 88 * @param loadFactor load factor 89 * @param threshold threshold 90 * @return a new instance of QuaternaryKeyMap with the specified initial capacity, 91 * load factor, and threshold 92 */ 93 public static <K1, K2, K3, K4, V> QuaternaryKeyMap<K1, K2, K3, K4, V> createQuaternaryKeyMap(final int initialCapacity, 94 final float loadFactor, 95 final int threshold) 96 { 97 return new HashedQuaternaryKeyMap<K1, K2, K3, K4, V>(initialCapacity, loadFactor, threshold); 98 } 99 }