Changeset 6516


Ignore:
Timestamp:
2004-01-15T16:59:57+13:00 (20 years ago)
Author:
kjdon
Message:

added more methods

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gsdl3/src/java/org/greenstone/gsdl3/util/SQLQuery.java

    r6357 r6516  
    2828    }
    2929
    30     public String MGNum2OID(int mg_num) {
     30    public String MGNum2OID(String mg_num) {
    3131    System.out.println("converting mg num to oid "+mg_num);
    3232    // get doc id and meta id
     
    5353    } catch (java.sql.SQLException e) {
    5454
    55         System.err.println("something went wrong with sql getting doc_id and meta_id: "+e.getMessage());
     55        System.err.println("SQLQuery.MGNum2OID() Error: "+e.getMessage());
    5656        return null;
    5757    }
     
    7676    } catch (java.sql.SQLException e) {
    7777
    78         System.err.println("something went wrong with sql getting division label: "+e.getMessage());
     78        System.err.println("SQLQuery.MGNum2OID() Error: "+e.getMessage());
    7979        return null;
    8080    }
     
    8282    ///ystem.out.println("short label = "+short_label);
    8383
    84     System.out.println("final doc_id = "+doc_id+"."+short_label);
    85     return doc_id+"."+short_label;
    86     }
    87 
    88     public int OID2MGNum(String oid) {
    89    
     84    System.out.println("final doc_id = "+GS3OID.createOID(doc_id, short_label));
     85    return GS3OID.createOID(doc_id, short_label);
     86    }
     87
     88    public String OID2MGNum(String oid) {
     89    System.out.println("converting oid "+oid+" to mg num");
    9090    String id = getDocumentMetadata(oid, "gsdl3.mgseqno");
    9191    System.out.println("mg id = "+id);
    92     return Integer.parseInt(id);
     92    return id;
    9393
    9494    }
     
    9797    public String getClassifierMetadata(String oid, String full_meta_name) {
    9898
    99     if (full_meta_name.equals("Title")) {
     99    if (full_meta_name.equals("Title") || full_meta_name.equals("numleafdocs")) {
    100100        // get the description
    101         String query = "select "+ GSSQL.DESCRIPTION+
     101        String field_name="";
     102        if (full_meta_name.equals("Title")) {
     103        field_name = GSSQL.DESCRIPTION;
     104        } else {
     105        field_name = GSSQL.NUM_LEAF_DOCUMENTS;
     106        }
     107         
     108        String query = "select "+ field_name+
    102109        " from " + GSSQL.CLASSIFIER_TABLE +
    103110        " where " + GSSQL.CLASSIFIER_ID + GSSQL.EQUALS_QUOTE + oid + GSSQL.QUOTE +
     
    110117        results = connection.getResultSet();
    111118        results.first();
    112         value = results.getString(GSSQL.DESCRIPTION);
     119        value = results.getString(field_name);
    113120        } catch (java.sql.SQLException e) {
    114121       
    115         System.err.println("something went wrong with sql "+e.getMessage());
     122        System.err.println("SQLQuery.getClassifierMetadata() Error: "+e.getMessage());
    116123        return null;
    117124        }
    118125        return value;
    119126 
    120     } else if (full_meta_name.equals("numleafdocs")) {
    121         // get the number of documents
    122         return "2";
    123 
    124     } else return null;
    125    
    126     }
    127    
     127    }  else return null;
     128   
     129    }
     130   
     131    public ArrayList getDocumentChildren(String oid) {
     132
     133    ArrayList children = new ArrayList();
     134    String doc_id = oid;
     135    String section_id = "All"; // if we are just passed a doc id
     136    if (!GS3OID.isDocTop(oid)) {
     137        doc_id = GS3OID.getDocID(oid);
     138        section_id = GS3OID.getSectionLabel(oid);
     139    }
     140    System.out.println("getDocChildren: oid = "+oid+", doc id = "+doc_id+", sec id ="+section_id);
     141//      int sep_index = oid.indexOf(".");
     142//      if (sep_index != -1) {
     143//          doc_id = oid.substring(0, sep_index);
     144//          section_id = oid.substring(sep_index+1);
     145//      }
     146
     147    // get the division ref for this section
     148    String query = "select "+GSSQL.DIVISION_REF +
     149        " from "+GSSQL.DIVISION_TABLE+
     150        " where "+GSSQL.DOCUMENT_ID+GSSQL.EQUALS_QUOTE+doc_id+GSSQL.QUOTE+
     151        " and "+GSSQL.SHORT_LABEL+GSSQL.EQUALS_QUOTE+section_id+GSSQL.QUOTE+
     152        GSSQL.END;
     153
     154    connection.execute(query);
     155    ResultSet results = null;
     156    String div_ref = null;
     157    try {
     158        results = connection.getResultSet();
     159        results.first();
     160        div_ref = results.getString(GSSQL.DIVISION_REF);
     161    } catch (java.sql.SQLException e) {
     162       
     163        System.err.println("SQLQuery.getDocumentChildren() Error1: "+e.getMessage());
     164        return null;
     165    }
     166
     167    // now get the list of children
     168    query = "select "+GSSQL.SHORT_LABEL +
     169        " from "+GSSQL.DIVISION_TABLE+
     170        " where "+ GSSQL.DOCUMENT_ID+GSSQL.EQUALS_QUOTE+doc_id+GSSQL.QUOTE+
     171        " and "+GSSQL.PARENT_TYPE+GSSQL.EQUALS_QUOTE+GSSQL.DIVISION+GSSQL.QUOTE+
     172        " and "+GSSQL.PARENT_REF+GSSQL.EQUALS_QUOTE+div_ref+GSSQL.QUOTE+
     173        GSSQL.END;
     174    connection.execute(query);
     175    results = null;
     176    try {
     177        results = connection.getResultSet();
     178        while (results.next()) {
     179        String id = results.getString(GSSQL.SHORT_LABEL);
     180        children.add(GS3OID.createOID(doc_id, id));
     181        }
     182    } catch (java.sql.SQLException e) {
     183       
     184        System.err.println("SQLQuery.getDocumentChildren() Error2: "+e.getMessage());
     185        return null;
     186    }
     187
     188    return children;
     189   
     190    }
     191   
     192    public boolean documentHasChildren(String oid) {
     193    // for now, use getChildren, but can we do this a better way??
     194    ArrayList children = getDocumentChildren(oid);
     195    if (children==null || children.size()==0) {
     196        return false;
     197    }
     198    return true;
     199   
     200    }
    128201    public ArrayList getClassifierChildren(String oid) {
    129202
     
    131204
    132205    String query = "select "+ GSSQL.CLASSIFIER_ID +
    133         " from " + GSSQL.CLASSIFIER_TABLE +
    134         " where " + GSSQL.PARENT_ID + GSSQL.EQUALS_QUOTE + oid + GSSQL.QUOTE +
    135         GSSQL.END;
     206        " from " + GSSQL.CLASSIFIER_TABLE +
     207        " where " + GSSQL.PARENT_ID + GSSQL.EQUALS_QUOTE + oid + GSSQL.QUOTE +
     208        " and " + GSSQL.NUM_LEAF_DOCUMENTS + GSSQL.NOT+GSSQL.EQUALS_QUOTE+ "0"+GSSQL.QUOTE +
     209        GSSQL.END;
    136210   
    137211    connection.execute(query);
     
    145219    } catch (java.sql.SQLException e) {
    146220       
    147         System.err.println("something went wrong with sql "+e.getMessage());
     221        System.err.println("SQLQuery.getClassifierChildren Error: "+e.getMessage());
    148222        return null;
    149223    }
     
    151225    }
    152226
    153      public ArrayList getClassifierDocChildren(String oid) {
    154 
     227    public ArrayList getClassifierDocChildren(String oid) {
     228    System.out.println("in getclassifierdocchildren");
    155229    ArrayList children = new ArrayList();
    156230
    157231    String query = "select "+ GSSQL.CLASS_DOCUMENT_TABLE+GSSQL.DOT+ GSSQL.DOCUMENT_ID+
    158232        " from " + GSSQL.CLASSIFIER_TABLE + GSSQL.COMMA+GSSQL.CLASS_DOCUMENT_TABLE+
    159         " where " + GSSQL.CLASSIFIER_TABLE +GSSQL.DOT+ GSSQL.PARENT_ID + GSSQL.EQUALS_QUOTE + oid + GSSQL.QUOTE +
     233        " where " + GSSQL.CLASSIFIER_TABLE +GSSQL.DOT+ GSSQL.CLASSIFIER_ID + GSSQL.EQUALS_QUOTE + oid + GSSQL.QUOTE +
    160234        " and " + GSSQL.CLASSIFIER_TABLE +GSSQL.DOT+ GSSQL.CLASSIFIER_REF+GSSQL.EQUALS+GSSQL.CLASS_DOCUMENT_TABLE+GSSQL.DOT+ GSSQL.CLASSIFIER_REF+
    161         GSSQL.END;
    162    
     235        " order by "+GSSQL.CLASS_DOCUMENT_TABLE+GSSQL.DOT+GSSQL.DOCUMENT_ORDER+
     236        GSSQL.END;
     237    System.out.println("query="+query);
    163238    connection.execute(query);
    164239    ResultSet results = null;
     
    171246    } catch (java.sql.SQLException e) {
    172247       
    173         System.err.println("something went wrong with sql: "+e.getMessage());
     248        System.err.println("SQLQuery.getClassifierDocChildren() Error: "+e.getMessage());
    174249        return null;
    175250    }
     
    183258    String doc_id = oid;
    184259    String section_id = "All"; // if we are just passed a doc id
    185     int sep_index = oid.indexOf(".");
    186     if (sep_index != -1) {
    187         doc_id = oid.substring(0, sep_index);
    188         section_id = oid.substring(sep_index+1);
    189     }
     260    if (!GS3OID.isDocTop(oid)) {
     261        doc_id = GS3OID.getDocID(oid);
     262        section_id = GS3OID.getSectionLabel(oid);
     263    }
     264//      int sep_index = oid.indexOf(".");
     265//      if (sep_index != -1) {
     266//          doc_id = oid.substring(0, sep_index);
     267//          section_id = oid.substring(sep_index+1);
     268//      }
    190269
    191270    System.out.println("get meta for "+oid+", doc id = "+doc_id+"sec id = "+section_id);
     
    210289    } catch (java.sql.SQLException e) {
    211290
    212         System.err.println("something went wrong with sql "+e.getMessage());
     291        System.err.println("SQLQuery.getDocumentMetadata() Error: "+e.getMessage());
    213292        return null;
    214293    }
     
    216295
    217296    // now get the list of namespace refs for the right namespace
    218     sep_index = full_meta_name.indexOf('.');
     297    int sep_index = full_meta_name.indexOf('.');
    219298    String meta_ns = "gsdl3";
    220299    String meta_name = full_meta_name;
     
    248327    } catch (java.sql.SQLException e) {
    249328
    250         System.err.println("somethings went wrong with sql "+e.getMessage());
     329        System.err.println("SQLQuery.getDocumentMetadata() Error: "+e.getMessage());
    251330        return null;
    252331    }
     
    259338    self.setDatabase("gs3test");
    260339    System.out.println("getting oid for mg num 3");
    261     String oid = self.MGNum2OID(3);
     340    String oid = self.MGNum2OID("stx.3");
    262341    System.out.println("oid was "+oid);
    263342   
     
    270349
    271350    System.out.println("converting back to mg, oid "+oid);
    272     int id = self.OID2MGNum(oid);
     351    String id = self.OID2MGNum(oid);
    273352    System.out.println(""+id);
    274353
    275354    System.out.println("getting oid for mg num 8");
    276     oid = self.MGNum2OID(8);
     355    oid = self.MGNum2OID("stx.8");
    277356    System.out.println("oid was "+oid);
    278357
Note: See TracChangeset for help on using the changeset viewer.