From 73d0c17cb7f9db1c64d4554e5b399b833236936b Mon Sep 17 00:00:00 2001
From: Adam Blank <blank@sneetch.local>
Date: Wed, 20 Jan 2016 06:37:30 -0800
Subject: [PATCH] Updates A to be Comparable everywhere

---
 src/cse332/interfaces/misc/BString.java | 3 +--
 src/cse332/interfaces/trie/TrieMap.java | 2 +-
 src/cse332/interfaces/trie/TrieSet.java | 2 +-
 src/p2/clients/NGramTester.java         | 3 +--
 4 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/src/cse332/interfaces/misc/BString.java b/src/cse332/interfaces/misc/BString.java
index 460653e..07e860d 100644
--- a/src/cse332/interfaces/misc/BString.java
+++ b/src/cse332/interfaces/misc/BString.java
@@ -6,8 +6,7 @@ import java.util.Iterator;
 import cse332.interfaces.worklists.FixedSizeFIFOWorkList;
 import datastructures.worklists.CircularArrayFIFOQueue;
 
-public abstract class BString<Alphabet>
-        implements Iterable<Alphabet>, Comparable<BString<Alphabet>> {
+public abstract class BString<Alphabet extends Comparable<Alphabet> implements Iterable<Alphabet>, Comparable<BString<Alphabet>> {
     protected FixedSizeFIFOWorkList<Alphabet> str;
 
     public BString(Alphabet[] str) {
diff --git a/src/cse332/interfaces/trie/TrieMap.java b/src/cse332/interfaces/trie/TrieMap.java
index 0084396..1b32d64 100644
--- a/src/cse332/interfaces/trie/TrieMap.java
+++ b/src/cse332/interfaces/trie/TrieMap.java
@@ -30,7 +30,7 @@ import datastructures.worklists.ListFIFOQueue;
  *
  * @author Adam Blank
  */
-public abstract class TrieMap<A, K extends BString<A>, V> extends Dictionary<K, V> {
+public abstract class TrieMap<A extends Comparable<A>, K extends BString<A>, V> extends Dictionary<K, V> {
     protected TrieNode<?, ?> root;
 
     /**
diff --git a/src/cse332/interfaces/trie/TrieSet.java b/src/cse332/interfaces/trie/TrieSet.java
index 1600845..97d819e 100644
--- a/src/cse332/interfaces/trie/TrieSet.java
+++ b/src/cse332/interfaces/trie/TrieSet.java
@@ -3,7 +3,7 @@ package cse332.interfaces.trie;
 import cse332.interfaces.misc.BString;
 import cse332.interfaces.misc.Set;
 
-public abstract class TrieSet<A, E extends BString<A>> extends Set<E> {
+public abstract class TrieSet<A extends Comparable<A>, E extends BString<A>> extends Set<E> {
     protected TrieSet(TrieMap<A, E, Boolean> backingMap) {
         super(backingMap);
     }
diff --git a/src/p2/clients/NGramTester.java b/src/p2/clients/NGramTester.java
index 09dcff1..33b035c 100644
--- a/src/p2/clients/NGramTester.java
+++ b/src/p2/clients/NGramTester.java
@@ -12,8 +12,7 @@ import datastructures.dictionaries.HashTrieMap;
 import p2.wordsuggestor.WordSuggestor;
 
 public class NGramTester {
-    public static <A, K extends BString<A>, V> Supplier<Dictionary<K, V>> trieConstructor(
-            Class<K> clz) {
+    public static <A extends Comparable<A>, K extends BString<A>, V> Supplier<Dictionary<K, V>> trieConstructor(Class<K> clz) {
         return () -> new HashTrieMap<A, K, V>(clz);
     }
 
-- 
GitLab