package de.viathinksoft.distributed.apps.immortal.iterator.marschall;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.math.BigInteger;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import de.viathinksoft.distributed.apps.immortal.exception.FileContentsBadException;
import de.viathinksoft.distributed.apps.immortal.exception.InitialNumberIsOneException;
import de.viathinksoft.distributed.apps.immortal.exception.InitialNumberNotImmortableException;
import de.viathinksoft.distributed.apps.immortal.iterator.QuickImmortableCheck;
import de.viathinksoft.utils.security.MD5;
//TODO: Gewisse zahl anwählen
private static final long serialVersionUID = 251721127226195138L;
protected static final String SEPARATOR =
",";
public SectionImmortableNumber
(BigInteger initialElement
)
throws InitialNumberNotImmortableException,
InitialNumberIsOneException {
// TODO: initialnumberisone: soll das auch bei "0" passieren? (unendlichschleife)
throw new InitialNumberIsOneException();
}
if (!QuickImmortableCheck.check(initialElement)) {
throw new InitialNumberNotImmortableException();
}
this.add(initialElement);
}
// public SectionImmortableNumber(String initialElement)
// throws InitialNumberNotImmortableException,
// InitialNumberIsOneException {
// this(new BigInteger(initialElement));
// }
public SectionImmortableNumber(int initialElement)
throws InitialNumberNotImmortableException,
InitialNumberIsOneException {
// this(Integer.toString(initialElement));
}
public SectionImmortableNumber
(String filename
)
FileContentsBadException {
loadFromFile(filename);
}
return this.get(0);
}
public int getCalculatedAmount() {
return this.size() - 1;
}
if (s.equals("")) {
s = m.toString();
} else {
s = m.toString().concat(SEPARATOR).concat(s);
}
}
return s;
}
s = m.toString().concat(s);
}
}
// TODO equals, clone
private final String SIGNATURE =
"Immortal Sectioned Marschall Number V001";
private final String SALT =
"AFFAüüü+++MSKGM ignsdg nkoi ajp894jfocwrvw AFAFAü324§$§$%$&WQ";
x.write(SIGNATURE);
x.write("\r\n");
s = this.toString();
x.write(s);
x.write("\r\n");
x.write(MD5.digest(s, SALT));
x.write("\r\n");
x.close();
}
if ((f_sig == null) || (!f_sig.equals(SIGNATURE))) {
throw new FileContentsBadException();
}
String f_commatext = r.
readLine();
if ((f_commatext == null)
|| (!MD5.digest(f_commatext, SALT).equals(r.readLine()))) {
throw new FileContentsBadException();
}
r.close();
this.clear();
String[] ary = f_commatext.
split(SEPARATOR
);
for (int i = ary.length - 1; i >= 0; i--) {
}
// for (String s : ary) {
// this.add(new BigInteger(s));
// }
}
}