package com.buglabs.app.bugdash2.controller.software;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.buglabs.app.bugdash2.LogManager;
import com.buglabs.app.bugdash2.Package;
import com.buglabs.app.bugdash2.controller.ApplicationController;
import com.buglabs.osgi.sewing.pub.util.RequestParameters;
import freemarker.template.SimpleHash;
import freemarker.template.SimpleList;
import freemarker.template.TemplateModelRoot;
public abstract class PackageViewerController extends ApplicationController {
public abstract String getIpkgStatus();
public String getTemplateName() {
return "software_packages_installed.fml";
}
public TemplateModelRoot get(RequestParameters params,
HttpServletRequest req, HttpServletResponse resp) {
SimpleHash root = new SimpleHash();
SimpleList packages_list = new SimpleList();
List packages = new ArrayList(); // containing Package objects
try {
FileReader input = new FileReader(getIpkgStatus());
BufferedReader br = new BufferedReader(input);
List data = new ArrayList();
String line;
while ((line = br.readLine()) != null) {
data.add(line);
if (line.equals("")) {
packages.add(Package.importData(data));
data.clear();
}
}
br.close();
} catch (FileNotFoundException e) {
LogManager.logWarning(e.getMessage());
} catch (IOException e) {
LogManager.logWarning(e.getMessage());
}
Iterator itr = packages.iterator();
Package p;
SimpleHash item;
int count = 1;
while (itr.hasNext()) {
p = (Package)itr.next();
item = new SimpleHash();
item.put("name", p.getName());
item.put("version", p.getVersion());
item.put("architecture", p.getArchitecture());
item.put("status", p.getStatus());
item.put("dependency", p.getDependency());
item.put("index", count);
packages_list.add(item);
count++;
}
root.put("packages", packages_list);
packages = null;
return root;
}
}