[freenet-cvs] r13634 - trunk/plugins/XMLLibrarian

swatig0 at freenetproject.org swatig0 at freenetproject.org
Sun Jun 17 11:42:03 UTC 2007


Author: swatig0
Date: 2007-06-17 11:42:03 +0000 (Sun, 17 Jun 2007)
New Revision: 13634

Modified:
   trunk/plugins/XMLLibrarian/XMLLibrarian.java
Log:
The new Librarian reads file ids from the subindex

Modified: trunk/plugins/XMLLibrarian/XMLLibrarian.java
===================================================================
--- trunk/plugins/XMLLibrarian/XMLLibrarian.java	2007-06-16 23:43:42 UTC (rev 13633)
+++ trunk/plugins/XMLLibrarian/XMLLibrarian.java	2007-06-17 11:42:03 UTC (rev 13634)
@@ -2,7 +2,6 @@
 
 import java.io.File;
 import java.io.FileWriter;
-import java.io.PrintStream;
 import java.io.UnsupportedEncodingException;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
@@ -20,6 +19,7 @@
 import org.w3c.dom.Attr;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
+import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 import org.xml.sax.Attributes;
 import org.xml.sax.Locator;
@@ -46,8 +46,9 @@
 //the default index site has to be set as the SSK key of the index site 
 //the Librarian would later be modified to take the site value from the interface
 //this Librarian assumes that the index to be used is present at DEFAULT_INDEX_SITE/index.xml
-
-	private  final String DEFAULT_INDEX_SITE="SSK at BdtiukemDVmUu-Ds8va48bnalaPv2Kc-FAXCgW2fULY,YOeF82YDzFhp2A5ChKeyd2AKHbs~mQTXHRdM3ur-Vuo,AQACAAE/testsite/";
+	//SSK at 0yc3irwbhLYU1j3MdzGuwC6y1KboBHJ~1zIi8AN2XC0,5j9hrd2LLcew6ieoX1yC-hXRueSKziKYnRaD~aLnAYE,AQACAAE/testsite/
+	private  final String DEFAULT_INDEX_SITE="SSK at 0yc3irwbhLYU1j3MdzGuwC6y1KboBHJ~1zIi8AN2XC0,5j9hrd2LLcew6ieoX1yC-hXRueSKziKYnRaD~aLnAYE,AQACAAE/testsite/";
+	//	"SSK at BdtiukemDVmUu-Ds8va48bnalaPv2Kc-FAXCgW2fULY,YOeF82YDzFhp2A5ChKeyd2AKHbs~mQTXHRdM3ur-Vuo,AQACAAE/testsite/";
 	private  final String DEFAULT_INDEX_URI = DEFAULT_INDEX_SITE+"index.xml";
 	private static final String DEFAULT_FILE = "index.xml";
 	boolean goon = true;
@@ -260,7 +261,8 @@
 				}
 				else{
 					try{
-					
+					FileWriter output3 = new FileWriter("logfile_geturi",true);
+					output3.write("inside keyuris elimination "+keyuris.size());
 					synchronized(hs){
 					if(keyuris.size() > 0){
 					
@@ -269,12 +271,17 @@
 					{
 						URIWrapper uri = (URIWrapper) it.next();
 						//output.write("\nhs values "+uri.URI);
-						if(!((uri.URI).equals(((URIWrapper) (keyuris.elementAt(0))).URI))) it.remove();
+						if(!Contains(uri.URI,keyuris)) it.remove();
+//						if(!((uri.URI).equals(((URIWrapper) (keyuris.elementAt(0))).URI))) {
+//							//output.write("\ndoesn't match \n "+keyuris.elementAt())
+//							it.remove();
+//						}
 					}
 					
 					}
 					if(keyuris.size() == 0) hs.clear();}
-					//output.close();
+					
+					output3.close();
 					}
 					catch(Exception e){
 						e.getMessage();
@@ -328,6 +335,17 @@
 			return e.toString();
 		}
 	}
+	private boolean Contains(String str, Vector keyuris){
+		if(keyuris.size() > 0){
+			//to search if the string is present in the vector
+			for(int i = 0; i<keyuris.size();i++){
+				if(str.equals((((URIWrapper) (keyuris.elementAt(i))).URI))) return true;
+				
+			}
+			return false;
+		}
+		else return false;
+	}
 	private Vector getIndex(String word) throws Exception{
 		fetch(DEFAULT_FILE);
 	
@@ -378,6 +396,7 @@
 		DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
 		Document doc = docBuilder.parse("index_"+subIndex+".xml");
 		Element root = doc.getDocumentElement();
+		Element filesElement = (Element) root.getElementsByTagName("files").item(0);
 		NodeList wordList = root.getElementsByTagName("word");
 		for(int i = 0;i<wordList.getLength();i++)
 		{
@@ -398,10 +417,24 @@
 					URIWrapper uri = new URIWrapper();
 					String id = file.getAttribute("id");
 					//reference this id from index.xml and get the file
-					uri.URI = getURI(id);
-				
+		//			uri.URI = getURI(id);
+					uri.URI = "not available";
+					NodeList files = filesElement.getElementsByTagName("file");
+					for(int k =0;k<files.getLength();k++){
+						Node fileElt =  files.item(k);
+						String fileid = ((Attr) fileElt.getAttributes().getNamedItem("id")).getValue();
+			
+						if(fileid.equals(id))
+							{
+							uri.URI = ((Attr) fileElt.getAttributes().getNamedItem("key")).getValue();
+							break;
+							}
+					}
+					FileWriter output3 = new FileWriter("logfile_geturi",true);
+					output3.write(uri.URI+"\n");
 					uri.descr = "not available";
 					fileuris.add(uri);
+					output3.close();
 				}
 				break;
 				}




More information about the cvs mailing list