Corrections de bugs multiples
- Correction de quelques NPE - Ajout d'une classe BiMap - Correctif mineure dans le code
This commit is contained in:
parent
58e48bf27a
commit
d9d5e77105
47
src/fr/pandacube/java/util/BiMap.java
Normal file
47
src/fr/pandacube/java/util/BiMap.java
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
package fr.pandacube.java.util;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
public class BiMap<K,V> {
|
||||||
|
|
||||||
|
HashMap<K, V> map = new HashMap<>();
|
||||||
|
HashMap<V, K> inversedMap = new HashMap<>();
|
||||||
|
|
||||||
|
public synchronized void put(K k, V v) {
|
||||||
|
if (map.containsKey(k) || inversedMap.containsKey(v)) {
|
||||||
|
map.remove(k);
|
||||||
|
inversedMap.remove(v);
|
||||||
|
}
|
||||||
|
map.put(k, v);
|
||||||
|
inversedMap.put(v, k);
|
||||||
|
}
|
||||||
|
|
||||||
|
public synchronized V get(K k) {
|
||||||
|
return map.get(k);
|
||||||
|
}
|
||||||
|
|
||||||
|
public synchronized K getKey(V v) {
|
||||||
|
return inversedMap.get(v);
|
||||||
|
}
|
||||||
|
|
||||||
|
public synchronized boolean containsKey(K k) {
|
||||||
|
return map.containsKey(k);
|
||||||
|
}
|
||||||
|
|
||||||
|
public synchronized boolean containsValue(V v) {
|
||||||
|
return inversedMap.containsKey(v);
|
||||||
|
}
|
||||||
|
|
||||||
|
public synchronized V remove(K k) {
|
||||||
|
V v = map.remove(k);
|
||||||
|
inversedMap.remove(v);
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
|
||||||
|
public synchronized K removeValue(V v) {
|
||||||
|
K k = inversedMap.remove(v);
|
||||||
|
map.remove(k);
|
||||||
|
return k;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -38,7 +38,6 @@ public class ServerPropertyFile {
|
|||||||
public boolean loadFromFile() {
|
public boolean loadFromFile() {
|
||||||
try (BufferedReader in = new BufferedReader(new FileReader(file))) {
|
try (BufferedReader in = new BufferedReader(new FileReader(file))) {
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
Map<String, Object> dataFile = new Gson().fromJson(in, Map.class);
|
Map<String, Object> dataFile = new Gson().fromJson(in, Map.class);
|
||||||
|
|
||||||
if (!dataFile.containsKey("name") || !(dataFile.get("name") instanceof String)) return false;
|
if (!dataFile.containsKey("name") || !(dataFile.get("name") instanceof String)) return false;
|
||||||
|
@ -50,13 +50,14 @@ public class AbstractCommand {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static List<String> getTabProposalFromToken(String token, Collection<String> allProposal) {
|
public static List<String> getTabProposalFromToken(String token, Collection<String> allProposal) {
|
||||||
List<String> ret = new ArrayList<String>();
|
List<String> ret = new ArrayList<>();
|
||||||
|
|
||||||
for (String s : allProposal)
|
for (String s : allProposal)
|
||||||
if (s.toLowerCase().startsWith(token.toLowerCase())) ret.add(s);
|
if (s != null && s.toLowerCase().startsWith(token.toLowerCase())) ret.add(s);
|
||||||
|
|
||||||
if (ret.isEmpty()) ret.addAll(allProposal);
|
if (ret.isEmpty()) ret.addAll(allProposal);
|
||||||
|
|
||||||
|
ret.removeIf(s -> s == null);
|
||||||
ret.sort(null); // String implents Comparable
|
ret.sort(null); // String implents Comparable
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -294,7 +294,7 @@ public class TCPServer extends Thread implements Closeable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
} catch (InterruptedException e) {} catch (IOException e) {}
|
} catch (InterruptedException|IOException e) {}
|
||||||
|
|
||||||
close();
|
close();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user