You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@opennlp.apache.org by jo...@apache.org on 2011/11/09 09:25:34 UTC

svn commit: r1199644 - in /incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp: maxent/ maxent/io/ model/

Author: joern
Date: Wed Nov  9 08:25:34 2011
New Revision: 1199644

URL: http://svn.apache.org/viewvc?rev=1199644&view=rev
Log:
OPENNLP-366 Used generics to avoid casts. Thanks to Aliaksandr Autayeu for providing a patch. 

Modified:
    incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/maxent/DomainToModelMap.java
    incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/maxent/io/GISModelWriter.java
    incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/model/AbstractDataIndexer.java
    incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/model/ComparableEvent.java
    incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/model/OnePassDataIndexer.java
    incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/model/OnePassRealValueDataIndexer.java
    incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/model/TwoPassDataIndexer.java

Modified: incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/maxent/DomainToModelMap.java
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/maxent/DomainToModelMap.java?rev=1199644&r1=1199643&r2=1199644&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/maxent/DomainToModelMap.java (original)
+++ incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/maxent/DomainToModelMap.java Wed Nov  9 08:25:34 2011
@@ -37,7 +37,7 @@ import opennlp.model.MaxentModel;
 public class DomainToModelMap {
 
   // the underlying object which stores the mapping
-  private Map map = Collections.synchronizedMap(new HashMap());
+  private Map<ModelDomain, MaxentModel> map = Collections.synchronizedMap(new HashMap<ModelDomain, MaxentModel>());
 
   /**
    * Sets the model for the given domain.
@@ -60,7 +60,7 @@ public class DomainToModelMap {
    */
   public MaxentModel getModel(ModelDomain domain) {
     if (map.containsKey(domain)) {
-      return (MaxentModel) map.get(domain);
+      return map.get(domain);
     } else {
       throw new NoSuchElementException("No model has been created for "
           + "domain: " + domain);

Modified: incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/maxent/io/GISModelWriter.java
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/maxent/io/GISModelWriter.java?rev=1199644&r1=1199643&r2=1199644&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/maxent/io/GISModelWriter.java (original)
+++ incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/maxent/io/GISModelWriter.java Wed Nov  9 08:25:34 2011
@@ -49,8 +49,8 @@ public abstract class GISModelWriter ext
     PARAMS = (Context[]) data[0];
     IndexHashTable<String> pmap = (IndexHashTable<String>) data[1];
     OUTCOME_LABELS = (String[]) data[2];
-    CORRECTION_CONSTANT = ((Integer) data[3]).intValue();
-    CORRECTION_PARAM = ((Double) data[4]).doubleValue();
+    CORRECTION_CONSTANT = (Integer) data[3];
+    CORRECTION_PARAM = (Double) data[4];
 
     PRED_LABELS = new String[pmap.size()];
     pmap.toArray(PRED_LABELS);
@@ -93,7 +93,7 @@ public abstract class GISModelWriter ext
 
     for (int i = 0; i < compressed.size(); i++) {
       List a = (List) compressed.get(i);
-      writeUTF(a.size() + ((ComparablePredicate) a.get(0)).toString());
+      writeUTF(a.size() + a.get(0).toString());
     }
 
     // the mapping from predicate names to their integer indexes

Modified: incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/model/AbstractDataIndexer.java
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/model/AbstractDataIndexer.java?rev=1199644&r1=1199643&r2=1199644&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/model/AbstractDataIndexer.java (original)
+++ incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/model/AbstractDataIndexer.java Wed Nov  9 08:25:34 2011
@@ -80,7 +80,7 @@ public abstract class AbstractDataIndexe
    * @return The number of unique events in the specified list.
    * @since maxent 1.2.6
    */
-  protected int sortAndMerge(List eventsToCompare, boolean sort) {
+  protected int sortAndMerge(List<ComparableEvent> eventsToCompare, boolean sort) {
     int numUniqueEvents = 1;
     numEvents = eventsToCompare.size();
     if (sort) {
@@ -89,9 +89,9 @@ public abstract class AbstractDataIndexe
         return numUniqueEvents; // nothing to do; edge case (see assertion)
       }
 
-      ComparableEvent ce = (ComparableEvent) eventsToCompare.get(0);
+      ComparableEvent ce = eventsToCompare.get(0);
       for (int i = 1; i < numEvents; i++) {
-        ComparableEvent ce2 = (ComparableEvent) eventsToCompare.get(i);
+        ComparableEvent ce2 = eventsToCompare.get(i);
 
         if (ce.compareTo(ce2) == 0) { 
           ce.seen++; // increment the seen count
@@ -113,7 +113,7 @@ public abstract class AbstractDataIndexe
     numTimesEventsSeen = new int[numUniqueEvents];
 
     for (int i = 0, j = 0; i < numEvents; i++) {
-      ComparableEvent evt = (ComparableEvent) eventsToCompare.get(i);
+      ComparableEvent evt = eventsToCompare.get(i);
       if (null == evt) {
         continue; // this was a dupe, skip over it.
       }
@@ -137,7 +137,7 @@ public abstract class AbstractDataIndexe
    * @param counter The predicate counters.
    * @param cutoff The cutoff which determines whether a predicate is included.
    */
-   protected static void update(String[] ec, Set predicateSet, Map<String,Integer> counter, int cutoff) {
+   protected static void update(String[] ec, Set<String> predicateSet, Map<String,Integer> counter, int cutoff) {
     for (int j=0; j<ec.length; j++) {
       Integer i = counter.get(ec[j]);
       if (i == null) {

Modified: incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/model/ComparableEvent.java
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/model/ComparableEvent.java?rev=1199644&r1=1199643&r2=1199644&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/model/ComparableEvent.java (original)
+++ incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/model/ComparableEvent.java Wed Nov  9 08:25:34 2011
@@ -25,7 +25,7 @@ import java.util.Arrays;
  * A maxent event representation which we can use to sort based on the
  * predicates indexes contained in the events.
  */
-public class ComparableEvent implements Comparable {
+public class ComparableEvent implements Comparable<ComparableEvent> {
   public int outcome;
   public int[] predIndexes;
   public int seen = 1; // the number of times this event
@@ -48,8 +48,8 @@ public class ComparableEvent implements 
     this(oc, pids, null);
   }
 
-  public int compareTo(Object o) {
-    ComparableEvent ce = (ComparableEvent) o;
+  public int compareTo(ComparableEvent ce) {
+    
     if (outcome < ce.outcome)
       return -1;
     else if (outcome > ce.outcome)

Modified: incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/model/OnePassDataIndexer.java
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/model/OnePassDataIndexer.java?rev=1199644&r1=1199643&r2=1199644&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/model/OnePassDataIndexer.java (original)
+++ incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/model/OnePassDataIndexer.java Wed Nov  9 08:25:34 2011
@@ -68,7 +68,7 @@ public class OnePassDataIndexer extends 
       throws IOException {
     Map<String, Integer> predicateIndex = new HashMap<String, Integer>();
     LinkedList<Event> events;
-    List eventsToCompare;
+    List<ComparableEvent> eventsToCompare;
 
     System.out.println("Indexing events using cutoff of " + cutoff + "\n");
 
@@ -106,7 +106,7 @@ public class OnePassDataIndexer extends 
    */
   private LinkedList<Event> computeEventCounts(EventStream eventStream,
       Map<String, Integer> predicatesInOut, int cutoff) throws IOException {
-    Set predicateSet = new HashSet();
+    Set<String> predicateSet = new HashSet<String>();
     Map<String, Integer> counter = new HashMap<String, Integer>();
     LinkedList<Event> events = new LinkedList<Event>();
     while (eventStream.hasNext()) {
@@ -116,25 +116,25 @@ public class OnePassDataIndexer extends 
     }
     predCounts = new int[predicateSet.size()];
     int index = 0;
-    for (Iterator pi = predicateSet.iterator(); pi.hasNext(); index++) {
-      String predicate = (String) pi.next();
+    for (Iterator<String> pi = predicateSet.iterator(); pi.hasNext(); index++) {
+      String predicate = pi.next();
       predCounts[index] = counter.get(predicate);
       predicatesInOut.put(predicate, index);
     }
     return events;
   }
 
-  protected List index(LinkedList<Event> events,
+  protected List<ComparableEvent> index(LinkedList<Event> events,
       Map<String, Integer> predicateIndex) {
     Map<String, Integer> omap = new HashMap<String, Integer>();
 
     int numEvents = events.size();
     int outcomeCount = 0;
-    List eventsToCompare = new ArrayList(numEvents);
+    List<ComparableEvent> eventsToCompare = new ArrayList<ComparableEvent>(numEvents);
     List<Integer> indexedContext = new ArrayList<Integer>();
 
     for (int eventIndex = 0; eventIndex < numEvents; eventIndex++) {
-      Event ev = (Event) events.removeFirst();
+      Event ev = events.removeFirst();
       String[] econtext = ev.getContext();
       ComparableEvent ce;
 

Modified: incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/model/OnePassRealValueDataIndexer.java
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/model/OnePassRealValueDataIndexer.java?rev=1199644&r1=1199643&r2=1199644&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/model/OnePassRealValueDataIndexer.java (original)
+++ incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/model/OnePassRealValueDataIndexer.java Wed Nov  9 08:25:34 2011
@@ -55,7 +55,7 @@ public class OnePassRealValueDataIndexer
     return values;
   }
 
-  protected int sortAndMerge(List eventsToCompare,boolean sort) {
+  protected int sortAndMerge(List<ComparableEvent> eventsToCompare,boolean sort) {
     int numUniqueEvents = super.sortAndMerge(eventsToCompare,sort);
     values = new float[numUniqueEvents][];
     int numEvents = eventsToCompare.size();
@@ -74,11 +74,11 @@ public class OnePassRealValueDataIndexer
     
     int numEvents = events.size();
     int outcomeCount = 0;
-    List eventsToCompare = new ArrayList(numEvents);
+    List<ComparableEvent> eventsToCompare = new ArrayList<ComparableEvent>(numEvents);
     List<Integer> indexedContext = new ArrayList<Integer>();
     
     for (int eventIndex=0; eventIndex<numEvents; eventIndex++) {
-      Event ev = (Event)events.removeFirst();
+      Event ev = events.removeFirst();
       String[] econtext = ev.getContext();
       ComparableEvent ce;
       

Modified: incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/model/TwoPassDataIndexer.java
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/model/TwoPassDataIndexer.java?rev=1199644&r1=1199643&r2=1199644&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/model/TwoPassDataIndexer.java (original)
+++ incubator/opennlp/trunk/opennlp-maxent/src/main/java/opennlp/model/TwoPassDataIndexer.java Wed Nov  9 08:25:34 2011
@@ -69,7 +69,7 @@ public class TwoPassDataIndexer extends 
    */
   public TwoPassDataIndexer(EventStream eventStream, int cutoff, boolean sort) throws IOException {
     Map<String,Integer> predicateIndex = new HashMap<String,Integer>();
-    List eventsToCompare;
+    List<ComparableEvent> eventsToCompare;
 
     System.out.println("Indexing events using cutoff of " + cutoff + "\n");
 
@@ -117,7 +117,7 @@ public class TwoPassDataIndexer extends 
   private int computeEventCounts(EventStream eventStream, Writer eventStore, Map<String,Integer> predicatesInOut, int cutoff) throws IOException {
     Map<String,Integer> counter = new HashMap<String,Integer>();
     int eventCount = 0;
-    Set predicateSet = new HashSet();
+    Set<String> predicateSet = new HashSet<String>();
     while (eventStream.hasNext()) {
       Event ev = eventStream.next();
       eventCount++;
@@ -127,8 +127,8 @@ public class TwoPassDataIndexer extends 
     }
     predCounts = new int[predicateSet.size()];
     int index = 0;
-    for (Iterator pi=predicateSet.iterator();pi.hasNext();index++) {
-      String predicate = (String) pi.next();
+    for (Iterator<String> pi=predicateSet.iterator();pi.hasNext();index++) {
+      String predicate = pi.next();
       predCounts[index] = counter.get(predicate);
       predicatesInOut.put(predicate,index);
     }
@@ -136,10 +136,10 @@ public class TwoPassDataIndexer extends 
     return eventCount;
   }
 
-  private List index(int numEvents, EventStream es, Map<String,Integer> predicateIndex) throws IOException {
+  private List<ComparableEvent> index(int numEvents, EventStream es, Map<String,Integer> predicateIndex) throws IOException {
     Map<String,Integer> omap = new HashMap<String,Integer>();
     int outcomeCount = 0;
-    List eventsToCompare = new ArrayList(numEvents);
+    List<ComparableEvent> eventsToCompare = new ArrayList<ComparableEvent>(numEvents);
     List<Integer> indexedContext = new ArrayList<Integer>();
     while (es.hasNext()) {
       Event ev = es.next();