Generally, please refer to the download section to fetch the Javadoc files there.
Release Notes
Changes in Version 1.0
- General framework set up
- Added support for parsing/writing GAEB90 files
Help / Samples
Writing a valid GAEB90 file
package de.ksquared.test.jgaeb.gaeb1990; import static de.ksquared.jgaeb.gaeb1990.file.File.Identifier.*; import static de.ksquared.jgaeb.gaeb1990.frame.Frame.Type.*; import static de.ksquared.jgaeb.gaeb1990.group.Group.Name.*; import java.io.IOException; import java.util.GregorianCalendar; import de.ksquared.jgaeb.gaeb1990.element.Element; import de.ksquared.jgaeb.gaeb1990.element.Element.Type; import de.ksquared.jgaeb.gaeb1990.file.FileBuilder; import de.ksquared.jgaeb.gaeb1990.frame.Frame; import de.ksquared.jgaeb.gaeb1990.frame.FrameBuilder; import de.ksquared.jgaeb.gaeb1990.group.GroupBuilder; public class GAEB1990WriteTest { public static void main(String[] args) { FileBuilder file; GroupBuilder group01,group02,group05; FrameBuilder frame; file = new FileBuilder(KE_86); //optional group: GR_03 (this one could also be template of KE_84, with ZA_07 and without ZA_25) group01 = file.newGroup(GR_01); frame = group01.newFrame(Frame.Type.ZA_T0); frame = group01.newFrame(Frame.Type.ZA_T1); frame.addElement(Element.Type.TEXT,"Contract Information"); frame = group01.newFrame(Frame.Type.ZA_T1); frame.addElement(Element.Type.TEXT,"--------------------------"); frame = group01.newFrame(Frame.Type.ZA_T1); frame.addElement(Element.Type.TEXT,"Copyright Kristian Kraljic"); frame = group01.newFrame(Frame.Type.ZA_T9); group02 = file.newGroup(GR_02); //optional: ZA_06, ZA_07 frame = group02.newFrame(ZA_00); frame.addElement(KE_86.getDP()); frame.addElement(Type.KURZLANG,"L"); //K, L or space on 84 frame.addElement(Type.OZMASKE,"PPPPPPPPP"); //only positions in this file frame.addElement(Element.VERSDTA); frame = group02.newFrame(ZA_01); frame.addElement(Type.LVBEZ,"jGAEB Write Part (Contract description)"); frame.addElement(Type.LVDATUM,GregorianCalendar.getInstance()); frame.addElement(Type.KZPREIS,true); frame = group02.newFrame(ZA_02); frame.addElement(Type.PROBEZ,"Develop the jGAEB-Testsuite (Project description)"); frame = group02.newFrame(ZA_03); frame.addElement(Type.AGBEZ,"kSquared (Employer)"); frame = group02.newFrame(ZA_04); frame.addElement(Type.ANBEZ,"Everybody (Agent)"); frame = group02.newFrame(ZA_08); frame.addElement(Type.WAEKU,"EURO"); frame.addElement(Type.WAEBEZ,"EURO"); group05 = group02.newGroup(GR_05); //optional ZA_24, ZA_30 //first item (item number 1) frame = group05.newFrame(ZA_21); frame.addElement(Type.OZ,"000000001"); //Ordnungszahl (Pos-No.) frame.addElement(Type.POSART1,"N"); //(N)ormalposition, (G)rundposition, W(A)hlposition, (S)Tundenlohnarbeiten frame.addElement(Type.POSART2,"N"); //(N)ormalposition, B(E)darfsposition, Bedarfsposition (M)it Gesamtbetrag frame.addElement(Type.POSTYP,"N"); //(N)ormalposition, (L)eitposition frame.addElement(Type.MENGE,1); frame = group05.newFrame(ZA_23); frame.addElement(Type.OZ,"000000001"); //Ordnungszahl (Pos-No.) frame = group05.newFrame(ZA_25); frame.addElement(Type.KURZTEXT,"Specification document (Item short text)"); frame = group05.newFrame(ZA_26); frame.addElement(Type.LANGTEXT,"Write a valid specification document (Item long text)"); //second item (item number 1) group05 = group02.newGroup(GR_05); //optional ZA_24, ZA_30 frame = group05.newFrame(ZA_21); frame.addElement(Type.OZ,"000000002"); //Ordnungszahl (Pos-No.) frame.addElement(Type.POSART1,"N"); //(N)ormalposition, (G)rundposition, W(A)hlposition, (S)Tundenlohnarbeiten frame.addElement(Type.POSART2,"N"); //(N)ormalposition, B(E)darfsposition, Bedarfsposition (M)it Gesamtbetrag frame.addElement(Type.POSTYP,"N"); //(N)ormalposition, (L)eitposition frame.addElement(Type.MENGE,10); frame.addElement(Type.EINHEIT,"HOUR"); frame = group05.newFrame(ZA_23); frame.addElement(Type.OZ,"000000002"); //Ordnungszahl (Pos-No.) frame = group05.newFrame(ZA_25); frame.addElement(Type.KURZTEXT,"Prototype development (Item short text)"); frame = group05.newFrame(ZA_26); frame.addElement(Type.LANGTEXT,"Write a working prototype (Item long text)"); frame = group02.newFrame(ZA_99); frame.addElement(Type.ANZTEIL,1); //number of GR_05's try { file.getFile().writeTo(new java.io.File("file"+KE_86.getSuffix())); } catch(IOException e) { e.printStackTrace(); } } }
Reading & parsing a GAEB90 file
package de.ksquared.test.jgaeb.gaeb1990; import static de.ksquared.jgaeb.gaeb1990.file.File.Identifier.*; import static de.ksquared.jgaeb.gaeb1990.element.Element.Type.*; import java.io.IOException; import de.ksquared.jgaeb.gaeb1990.file.File; import de.ksquared.jgaeb.gaeb1990.frame.Frame; import de.ksquared.jgaeb.gaeb1990.frame.Frame.Type; import de.ksquared.jgaeb.gaeb1990.group.Group; import de.ksquared.jgaeb.gaeb1990.group.Group.Name; import de.ksquared.jgaeb.gaeb1990.group.GroupElement; public class GAEB1990ReadTest { public static void main(String[] args) throws IOException { File file = File.readFrom(new java.io.File("file"+KE_86.getSuffix())); for(Group group:file.getGroups()) printGroup(group,0); } private static void printGroup(Group group,int padding) { if(group==null) return; Name name = group.getName(); printPadding("-- "+(name!=null?name.getName():"Unnamed Group")+" --",padding); if(Group.Name.GR_05.equals(name)) { printPadding(group.getFrame(Type.ZA_21).getElement(MENGE).getValue()+"x "+group.getFrame(Type.ZA_25).getElement(KURZTEXT),padding+2); printPadding(group.getFrame(Type.ZA_26).getElement(LANGTEXT),padding+4); printGroup(group.getGroup(Group.Name.GR_05),padding); //maybe there is another 05-group } else { for(GroupElement element:group.getElements()) if(element instanceof Frame) { Frame frame = (Frame)element; switch(frame.getType()) { case ZA_T1: printPadding(frame.getElement(TEXT),padding+2); break; case ZA_01: printPadding(frame.getElement(LVBEZ)+" ("+frame.getElement(LVDATUM)+")",padding+2); break; case ZA_02: printPadding("Project description: "+frame.getElement(PROBEZ),padding+2); break; case ZA_03: printPadding("Employer description: "+frame.getElement(AGBEZ),padding+4); break; case ZA_04: printPadding("Agent description: "+frame.getElement(ANBEZ),padding+4); break; } } else if(element instanceof Group) printGroup((Group)element,padding+2); } } private static void printPadding(Object print,int padding) { for(int position=0;position<padding;position++) System.out.print(' '); System.out.println(print); } }
Documentation
At the moment no standard documentation of the jGAEB framework is available. Please take a look at the JavaDoc files from the download section. For the standard (German) GAEB1990 documentation please refer to the GAEB Homepage.