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"); } }