import java.io.*;
import java.util.*;
import org.dom4j.*;
import org.dom4j.io.*;
/*************************************************************************
* Tento kód třídy vezměte, doplňte těla metod adjustSalary
* a changeName
.
* S ostatními nedělejte nic.
* Po doplnění by měla fungovat metoda main
tak, jak je.
* Pro překlad a spuštění můžete využít dávku run.bat
.
*
* Kompletní balíček dom4j
stáhnete z http://dom4j.org
,
* zde z důvodu úspory místa najdete jen dom4j.jar
, který ale pro překlad
* i běh stačí.
*/
public class Cv4 {
/** dom4j object model representation of a xml document. Note: We use the interface(!) not its implementation */
private Document doc;
/**
* Loads a document from a file.
*
* @throw a org.dom4j.DocumentException occurs whenever the buildprocess fails.
*/
public void parseWithSAX(File aFile) throws DocumentException, java.net.MalformedURLException {
SAXReader xmlReader = new SAXReader();
this.doc = xmlReader.read(aFile);
}
public void serializetoXML(OutputStream out, String aEncodingScheme) throws Exception {
OutputFormat outformat = OutputFormat.createPrettyPrint();
outformat.setEncoding(aEncodingScheme);
XMLWriter writer = new XMLWriter(out, outformat);
writer.write(this.doc);
writer.flush();
}
/*************************************************************************
* Metoda na úpravu platů:
* Má-li osoba menší plat než minimum
,
* bude jí plat zvýšen na minimum
.
* S ostatními osobami se nic neděje.
*/
public void adjustSalary(float minimum) {
// sem doplnit kód
}
/*************************************************************************
* Metoda na změnu jména:
* která osoba má id
rovno zadanému,
* změní se jí křestní jméno (name
) na newName
* S ostatními se opět neděje nic.
*/
public void changeName(String id, String newName) {
// sem doplnit kód
}
public static void main(String[] args) throws Exception {
Cv4 cv4 = new Cv4();
cv4.parseWithSAX(new File(args[0]+".xml"));
cv4.changeName("1", "Pavlík");
cv4.changeName("2", "Liborek");
cv4.adjustSalary(10000f);
cv4.serializetoXML(new FileOutputStream(args[0]+"-out.xml"), "Windows-1250");
}
}