Changeset 7470


Ignore:
Timestamp:
2004-05-27T14:16:05+12:00 (20 years ago)
Author:
cs025
Message:

Added AbstractClassifier; started to improve loading of classifiers, etc.

Location:
trunk/gsdl3/src/java/org/greenstone/gsdl3/gs3build/classifier
Files:
1 added
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/gsdl3/src/java/org/greenstone/gsdl3/gs3build/classifier/AZListClassifier.java

    r7309 r7470  
    2727import org.greenstone.gsdl3.util.GSXML;
    2828
    29 public class AZListClassifier implements ClassifierInterface
     29public class AZListClassifier extends AbstractClassifier
    3030{
    3131  GS3SQLConnection database;
    3232  MultiMap         alphaMap;
    3333  List             fields;
    34     String name;
     34  String           name;
     35
    3536  class AZDocumentItem
    3637  { public DocumentID documentId;
     
    8485
    8586  public AZListClassifier(String name, List fields)
    86     { this.name = name;
    87       this.fields = fields;
     87  { this.fields   = fields;
    8888    this.alphaMap = new MultiMap();
     89    this.name     = name;
    8990    //  System.out.println("AZList :"+fields.size());
    9091  }
     
    256257    this.name = prefix;
    257258    }
     259
    258260    int leafCount = 0;
    259261    keys = this.alphaMap.keySet().iterator();
  • trunk/gsdl3/src/java/org/greenstone/gsdl3/gs3build/classifier/AbstractHierarchyNode.java

    r7307 r7470  
    108108
    109109  public void addDocument(DocumentID document, String sortKey)
    110   { this.childDocs.add(new AbstractHierarchyDocument(document, sortKey));
    111 
     110  { if (sortKey == null && false) {
     111    System.err.println("attempt to classify by an unset key");
     112      return;
     113    }
     114    this.childDocs.add(new AbstractHierarchyDocument(document, sortKey));
     115
     116    System.out.println("Adding " + document.toString() + " to " + this.name + " " + this.childDocs.size());
    112117    if (sortKey != null) {
    113118      int first = 0;
     
    117122    int at = (first + last) / 2;
    118123   
    119     if (this.childDocs.get(at) == null) {
     124    System.out.println(this.name + " " + at + " " + this.childDocs.size() + " " + this.childDocs.get(at) + " " + sortKey);
     125    if (this.childDocs.get(at) == null ||
     126        this.childDocs.get(at).toString() == null) {
    120127      last = at;
     128      System.out.println("COntinuing");
    121129      continue;
    122130    }
     
    138146      this.childDocs.set(first, newItem);
    139147    }
     148
     149    //  System.out.println("Added " + document.toString() + " to " + this.name + " " + this.childDocs.size());
     150    //    for (int a = 0; a < this.childDocs.size(); a ++) {
     151    //System.out.println(this.childDocs.get(a));
     152    //}
    140153  }
    141154
  • trunk/gsdl3/src/java/org/greenstone/gsdl3/gs3build/classifier/ClassifierInterface.java

    r7309 r7470  
    1717   */
    1818  public void configure(List parameters);
     19  public void configure(java.net.URL baseURL, org.w3c.dom.Node node);
    1920
    2021  public void setDatabase(org.greenstone.gsdl3.gs3build.util.GS3SQLConnection connection);
  • trunk/gsdl3/src/java/org/greenstone/gsdl3/gs3build/classifier/ClassifierManager.java

    r7309 r7470  
    106106  }
    107107
    108   public static ClassifierInterface loadClassifier(String classifierName, List params)
    109   {
     108  public static ClassifierInterface loadClassifier(String classifierName)
     109  { System.out.println("Loading classifier " + classifierName);
    110110    try {
    111111      ClassifierInterface classifier =
    112     (ClassifierInterface) Class.forName("org.greenstone.gsdl3.gs3build.classifier."+classifierName).newInstance();
    113       if (classifier != null) {
    114     classifier.configure(params);
    115       }
     112    (ClassifierInterface) Class.forName("org.greenstone.gsdl3.gs3build.classifier."+classifierName+"Classifier").newInstance();
    116113      return classifier;
    117114    }
     
    127124    return null;
    128125  }
     126   
     127  public static ClassifierInterface loadClassifier(String classifierName, List params)
     128  { ClassifierInterface classifier = loadClassifier(classifierName);
     129    if (classifier != null) {
     130      classifier.configure(params);
     131    }
     132    return classifier;
     133  }
    129134
    130     public boolean addServiceDescriptions(Element service_class_list) {
    131     if (this.used==0) {
    132         // no classiifers
    133         return true;
    134     }
    135     Element retrieve_service = GSXML.getNamedElement(service_class_list, GSXML.SERVICE_CLASS_ELEM, GSXML.NAME_ATT, "GS3Retrieve");
    136     Document owner_doc = service_class_list.getOwnerDocument();
    137     if (retrieve_service == null) {
    138         System.err.println("didn't find a retrieve service");
    139         // create it
    140         retrieve_service = owner_doc.createElement(GSXML.SERVICE_CLASS_ELEM);
    141         retrieve_service.setAttribute(GSXML.NAME_ATT, "GS3Retrieve");
    142         service_class_list.appendChild(retrieve_service);
    143     }
    144     Element classifier_list = owner_doc.createElement(GSXML.CLASSIFIER_ELEM+GSXML.LIST_MODIFIER);
    145     retrieve_service.appendChild(classifier_list);
    146     boolean success = true;
    147     for (int i = 0; i < this.used; i ++) {
    148         if (!this.list[i].addClassifierDescription(classifier_list)) {
    149         success = false;
    150         }
    151     }
    152     return success;
     135  public boolean addServiceDescriptions(Element service_class_list) {
     136    if (this.used==0) {
     137      // no classiifers
     138      return true;
    153139    }
     140    Element retrieve_service = GSXML.getNamedElement(service_class_list, GSXML.SERVICE_CLASS_ELEM, GSXML.NAME_ATT, "GS3Retrieve");
     141    Document owner_doc = service_class_list.getOwnerDocument();
     142    if (retrieve_service == null) {
     143      System.err.println("didn't find a retrieve service");
     144      // create it
     145      retrieve_service = owner_doc.createElement(GSXML.SERVICE_CLASS_ELEM);
     146      retrieve_service.setAttribute(GSXML.NAME_ATT, "GS3Retrieve");
     147      service_class_list.appendChild(retrieve_service);
     148    }
     149    Element classifier_list = owner_doc.createElement(GSXML.CLASSIFIER_ELEM+GSXML.LIST_MODIFIER);
     150    retrieve_service.appendChild(classifier_list);
     151    boolean success = true;
     152    for (int i = 0; i < this.used; i ++) {
     153      if (!this.list[i].addClassifierDescription(classifier_list)) {
     154    success = false;
     155      }
     156    }
     157    return success;
     158  }
    154159}
  • trunk/gsdl3/src/java/org/greenstone/gsdl3/gs3build/classifier/GS2HierarchyClassifier.java

    r7309 r7470  
    22
    33import java.io.*;
     4
     5import java.net.URL;
    46
    57import java.util.List;
     
    168170  }
    169171
     172  public void configure(URL url, org.w3c.dom.Node node)
     173  {
     174  }
     175
    170176  public void configure(List parameters)
    171177  {
  • trunk/gsdl3/src/java/org/greenstone/gsdl3/gs3build/classifier/HierarchyClassifier.java

    r7309 r7470  
    2424
    2525
    26 public class HierarchyClassifier implements ClassifierInterface
     26public class HierarchyClassifier extends AbstractClassifier
    2727{
    2828  class HierarchyClassifierObserver implements ClassifierObserverInterface
Note: See TracChangeset for help on using the changeset viewer.