added some debug code

git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@2369 6c8d7289-2bf4-0310-a012-ef5d649a1542
This commit is contained in:
allo 2006-08-09 16:57:36 +00:00
parent 61b151b083
commit 3480d36417

View File

@ -227,20 +227,21 @@ public final class httpTemplate {
return false;
}
public static void writeTemplate(InputStream in, OutputStream out, Hashtable pattern, byte[] dflt) throws IOException {
writeTemplate(in, out, pattern, dflt, "");
public static String writeTemplate(InputStream in, OutputStream out, Hashtable pattern, byte[] dflt) throws IOException {
return writeTemplate(in, out, pattern, dflt, "");
}
/**
* Reads a input stream, and writes the data with replaced templates on a output stream
*/
public static void writeTemplate(InputStream in, OutputStream out, Hashtable pattern, byte[] dflt, String prefix) throws IOException {
public static String writeTemplate(InputStream in, OutputStream out, Hashtable pattern, byte[] dflt, String prefix) throws IOException {
PushbackInputStream pis = new PushbackInputStream(in, 100);
ByteArrayOutputStream keyStream;
String key;
String multi_key;
byte[] replacement;
int bb;
int bb;
StringBuffer structure=new StringBuffer();
while (transferUntil(pis, out, hasha)) {
bb = pis.read();
@ -286,12 +287,14 @@ public final class httpTemplate {
}
//Enumeration enx = pattern.keys(); while (enx.hasMoreElements()) System.out.println("KEY=" + enx.nextElement()); // DEBUG
structure.append("<"+multi_key+" type=\"multi\" num=\""+num+"\">\n");
for(int i=0;i < num;i++ ){
PushbackInputStream pis2 = new PushbackInputStream(new ByteArrayInputStream(text.getBytes()));
PushbackInputStream pis2 = new PushbackInputStream(new ByteArrayInputStream(text.getBytes()));
//System.out.println("recursing with text(prefix="+ multi_key + "_" + i + "_" +"):"); //DEBUG
//System.out.println(text);
writeTemplate(pis2, out, pattern, dflt, multi_key + "_" + i + "_");
structure.append(writeTemplate(pis2, out, pattern, dflt, multi_key + "_" + i + "_"));
}//for
structure.append("\n</"+multi_key+">\n");
}else{//transferUntil
serverLog.logSevere("TEMPLATE", "No Close Key found for #{"+multi_key+"}#");
}
@ -338,12 +341,12 @@ public final class httpTemplate {
transferUntil(pis, keyStream, (new String("%%"+patternName)).getBytes());
if(pis.available()==0){
serverLog.logSevere("TEMPLATE", "No such Template: %%"+patternName);
return;
return structure.toString();
}
keyStream=new ByteArrayOutputStream();
transferUntil(pis, keyStream, "::".getBytes());
pis2 = new PushbackInputStream(new ByteArrayInputStream(keyStream.toString().getBytes()));
writeTemplate(pis2, out, pattern, dflt, prefix + key + "_");
structure.append(writeTemplate(pis2, out, pattern, dflt, prefix + key + "_"));
transferUntil(pis, keyStream, (new String("#(/"+key+")#")).getBytes());
if(pis.available()==0){
serverLog.logSevere("TEMPLATE", "No Close Key found for #("+key+")# (by Name)");
@ -360,7 +363,9 @@ public final class httpTemplate {
if(keyStream.toString().equals("/" + key)){
pis2 = new PushbackInputStream(new ByteArrayInputStream(text.getBytes()));
//this maybe the wrong, but its the last
writeTemplate(pis2, out, pattern, dflt, prefix + key + "_");
structure.append("<"+key+" type=\"alternative\" which=\""+whichPattern+"\" found=\"0\">\n");
structure.append(writeTemplate(pis2, out, pattern, dflt, prefix + key + "_"));
structure.append("\n</key>\n");
found=true;
}else if(others >0 && keyStream.toString().startsWith("/")){ //close nested
others--;
@ -381,7 +386,9 @@ public final class httpTemplate {
if( (bb & 0xFF) == ':'){
if(currentPattern == whichPattern){ //found the pattern
pis2 = new PushbackInputStream(new ByteArrayInputStream(text.getBytes()));
writeTemplate(pis2, out, pattern, dflt, prefix + key + "_");
structure.append("<"+key+" type=\"alternative\" which=\""+whichPattern+"\" found=\"0\">\n");
structure.append(writeTemplate(pis2, out, pattern, dflt, prefix + key + "_"));
structure.append("\n</"+key+">\n");
transferUntil(pis, keyStream, (new String("#(/"+key+")#")).getBytes());//to #(/key)#.
@ -408,6 +415,9 @@ public final class httpTemplate {
// pattern detected, write replacement
key = prefix + keyStream.toString();
replacement = replacePattern(key, pattern, dflt); //replace
structure.append("<"+key+" type=\"normal\">\n");
structure.append(new String(replacement));
structure.append("\n</"+key+">\n");
/* DEBUG
try{
@ -421,7 +431,7 @@ public final class httpTemplate {
} else {
// inconsistency, simply finalize this
serverFileUtils.copy(pis, out);
return;
return structure.toString();
}
}else if( (bb & 0xFF) == ps){ //include
String include = "";
@ -448,7 +458,9 @@ public final class httpTemplate {
if (br!=null) try{br.close(); br=null;}catch(Exception e){}
}
PushbackInputStream pis2 = new PushbackInputStream(new ByteArrayInputStream(include.getBytes()));
writeTemplate(pis2, out, pattern, dflt, prefix);
structure.append("<fileinclude file=\""+filename+">\n");
structure.append(writeTemplate(pis2, out, pattern, dflt, prefix));
structure.append("\n</fileinclude>\n");
}
}
}else{ //no match, but a single hash (output # + bb)
@ -458,6 +470,8 @@ public final class httpTemplate {
serverFileUtils.write(tmp, out);
}
}
//System.out.println(structure.toString()); //DEBUG
return structure.toString();
}
public static byte[] replacePattern(String key, Hashtable pattern, byte dflt[]) {