Changeset 4708
- Timestamp:
- 2003-06-18T12:02:14+12:00 (21 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gsdl3/src/java/org/greenstone/gsdl3/service/GS2Search.java
r4247 r4708 281 281 282 282 283 /** Creates a new documentNode element containing ID and type */ 284 protected Element createDocumentNodeElement(String doc_id) 283 /** Creates a new documentNode element containing ID, node type 284 * and docType*/ 285 protected Element createDocumentNodeElement(String node_id) 285 286 { 286 287 Element doc_node = doc_.createElement(GSXML.DOC_NODE_ELEM); 287 doc_node.setAttribute(GSXML.NODE_ID_ATT, doc_id); 288 if (OID.isTop(doc_id)) 288 doc_node.setAttribute(GSXML.NODE_ID_ATT, node_id); 289 290 String top_id = OID.getTop(node_id); 291 boolean is_top = (top_id.equals(node_id) ? true : false); 292 293 DBInfo info = gdbm_src_.getInfo(node_id); 294 String children = info.getInfo("contains"); 295 boolean is_leaf = (children.equals("") ? true : false); 296 297 // set teh node type att 298 if (is_top) { 289 299 doc_node.setAttribute(GSXML.NODE_TYPE_ATT, GSXML.NODE_TYPE_ROOT); 290 else if (isLeafNode(doc_id))300 } else if (is_leaf) { 291 301 doc_node.setAttribute(GSXML.NODE_TYPE_ATT, GSXML.NODE_TYPE_LEAF); 292 else302 } else { 293 303 doc_node.setAttribute(GSXML.NODE_TYPE_ATT, GSXML.NODE_TYPE_INTERIOR); 304 } 305 306 // set teh doc type att 307 if (is_top && is_leaf) { // a single section document 308 doc_node.setAttribute(GSXML.DOC_TYPE_ATT, "simple"); 309 return doc_node; 310 } 311 312 if (!is_top) { // we need to look at the top info 313 info = gdbm_src_.getInfo(top_id); 314 } 315 316 String childtype = info.getInfo("childtype"); 317 if (childtype.equals("Paged")) { 318 doc_node.setAttribute(GSXML.DOC_TYPE_ATT, "paged"); 319 } else { 320 doc_node.setAttribute(GSXML.DOC_TYPE_ATT, "hierarchy"); 321 } 294 322 return doc_node; 295 323 } 296 324 325 /** returns the document type of a node - if the node is a subnode, it returns teh type of teh top document node. for now, only does paged and hierarchical, but eventually will have more types */ 326 protected String getDocType(String node_id) { 327 328 String doc_id = OID.getTop(node_id); 329 DBInfo info = gdbm_src_.getInfo(doc_id); 330 String child_type = info.getInfo("childtype"); 331 if (child_type.equals("Paged")) { 332 return "paged"; 333 } 334 return "hierarchy"; 335 336 } 297 337 298 338 /** Returns true if the OID specifies a leaf node, false otherwise
Note:
See TracChangeset
for help on using the changeset viewer.