gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
moved sources to src folder
[pub/donny/ant-tasks.git] / src / svetovid / next.java
diff --git a/src/svetovid/next.java b/src/svetovid/next.java
new file mode 100644 (file)
index 0000000..2153047
--- /dev/null
@@ -0,0 +1,106 @@
+package svetovid;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Task;
+
+import java.io.*;
+
+/**
+ * Na osnovu spiska i trenutnog studenta nadji sledeceg.
+ * cita se iz current.txt, a pise u taj i current.properties
+ * Ovo se onda korisiti za kopiranje fajlova u buildu
+ * (bio je task init)
+ */
+public class next extends Task {
+    private String student, group;
+    private String current;
+    private String file="studenti.txt";
+    private String separator="\t";
+    private String currentFilename="current.txt",
+       currentProperties="current.properties";
+    
+    
+    private void setCurrent(String c) throws Exception{
+               current = c;
+               if (current != null){
+                                       String[] s = current.split(separator);
+                                       if (s.length<2) 
+                                                       throw new Exception("problem setting current student name - can't split group and name");
+                                       student = s[1];
+                                       group = s[0];
+                       } else {
+                                       student = null;
+                                       group = null;
+                       }
+    }
+    
+    private void loadCurrent(){
+       try{
+               File f = new File(currentFilename);
+               if (f.exists()){
+                               BufferedReader r = new BufferedReader(
+                                               new InputStreamReader(
+                                                               new FileInputStream(f)));
+                               setCurrent(r.readLine());
+                               r.close();
+               } else 
+                       setCurrent(null);
+       }catch (Exception ex) {
+               throw new BuildException(ex);
+       }
+    }
+    
+    private void saveCurrent(){
+       try{
+               PrintWriter w = new PrintWriter(new FileWriter(currentFilename));
+               w.println(current);
+               w.close();
+       }catch (Exception ex) {
+               throw new BuildException(ex);
+       }
+       //now the properties file
+       try{
+               PrintWriter w = new PrintWriter(new FileWriter(currentProperties));
+               w.println("student.group="+group);
+               w.println("student.current="+student);
+               w.close();
+       }catch (Exception ex) {
+               throw new BuildException(ex);
+       }               
+    }
+    
+    // The method executing the task
+    public void execute() throws BuildException {
+       loadCurrent();
+       try{
+               BufferedReader r = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
+               String s = r.readLine();
+               if (current != null) {
+                                       while (s!=null && s.compareTo(current)!=0)
+                                               s= r.readLine();
+                                       setCurrent(r.readLine());
+                       } else {
+                                       setCurrent(s);
+                       }
+               r.close();
+       }catch (Exception ex) {
+               throw new BuildException(ex);
+       }
+        saveCurrent();
+    }
+
+    public void setSeparator(String msg) {
+        this.separator = msg;
+    }
+    
+    public void setFile(String msg) {
+        this.file = msg;
+    }
+    
+    public void setCurrentFilename(String msg) {
+        this.currentFilename = msg;
+    }
+    public void setCurrentProperties(String msg) {
+        this.currentProperties = msg;
+    }
+}
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner