// Path: app/src/main/java/it/unisannio/security/DoApp/model/Commons.java
// public class Commons {
// 
//     // public static int ABOUT = 3;
// 
//     // sono i tre stadi per il progressbar di applistactivity
//     public static final int MSG_PROCESSING = 0;
//     public static final int MSG_DONE = 1;
//     public static final int MSG_ERROR = 2;
// 
//     public static final int ACTIVITIES = 0;
//     public static final int RECEIVERS = 1;
//     public static final int SERVICES = 2;
// 
//     public static final String PKGINFO_KEY = "pkginfo";
//     public static final String APPTYPE_KEY = "apptype";
//     public static final String pkgName = "pkgname";
// 
//     public static final String path = Environment.getExternalStorageDirectory().getAbsolutePath()+"/DoAppReports/";
//     public static final String pathFile = "pathFile";
// 
// }
// 
// Path: app/src/main/java/it/unisannio/security/DoApp/model/ExceptionReport.java
// public class ExceptionReport {
// 
//     private String appName; //component name
//     private String processName; //package name
//     private int PID;
//     private Date time;
//     private String type;
//     private Stack<PointOfFailure> stacktrace;
//     private ArrayList<MalIntent> malIntents;
// 
//     public ExceptionReport(){
//         stacktrace = new Stack<PointOfFailure>();
//         malIntents = new ArrayList<MalIntent>();
//     }
// 
//     public String getAppName() {
//         return appName;
//     }
// 
//     public void setAppName(String appName) {
//         this.appName = appName;
//     }
// 
//     public String getProcessName() {
//         return processName;
//     }
// 
//     public void setProcessName(String processName) {
//         this.processName = processName;
//     }
// 
//     public int getPID() {
//         return PID;
//     }
// 
//     public void setPID(int PID) {
//         this.PID = PID;
//     }
// 
//     public Date getTime() {
//         return time;
//     }
// 
//     public void setTime(Date time) {
//         this.time = time;
//     }
// 
//     public String getType() {
//         return type;
//     }
// 
//     public void setType(String type) {
//         this.type = type;
//     }
// 
//     public Stack<PointOfFailure> getStacktrace() {
//         return stacktrace;
//     }
// 
//     public void addPointOfFailure(PointOfFailure pof){
//         stacktrace.push(pof);
//     }
// 
//     public ArrayList<MalIntent> getMalIntents() {
//         return malIntents;
//     }
// 
//     public void addMalIntent(MalIntent malIntent) {
//         if(malIntent!=null)
//             malIntents.add(malIntent);
//     }
// 
//     @Override
//     public boolean equals(Object o) {
//         if (this == o) return true;
//         if (o == null || getClass() != o.getClass()) return false;
// 
//         ExceptionReport that = (ExceptionReport) o;
// 
//         if (appName != null ? !appName.equals(that.appName) : that.appName != null) return false;
//         if (processName != null ? !processName.equals(that.processName) : that.processName != null)
//             return false;
//         if (type != null ? !type.equals(that.type) : that.type != null) return false;
//         if (stacktrace.size()!=that.stacktrace.size()) return false;
// 
//         for(int i = 0; i<stacktrace.size(); i++){
//             if(!stacktrace.get(i).equals(that.stacktrace.get(i)))
//                 return false;
//         }
//         return true;
// 
//     }
// 
// 
//     public String toString(){
//         String stack_string="";
//         Iterator<PointOfFailure> iterator = stacktrace.iterator();
//         while(iterator.hasNext()){
//             PointOfFailure pof = iterator.next();
//             stack_string = stack_string+"\t"+pof.getClassName()+":"+pof.getLineNumber()+"\n";
//         }
// 
//         String malintent_string="";
//         for(MalIntent m : malIntents)
//             malintent_string+= "\n "+m.toString();
// 
//         return "ExceptionReport: "+
//                 "\n\t Package Name: "+processName+
//                 "\n\t Component Name: "+appName+
//                 "\n\t Crash PID: "+PID+
//                 "\n\t"+ ((malintent_string.isEmpty())?"MalIntent Unknown" : malintent_string) +
//                 "\n\t" + "ExceptionType: "+type+"" +
//                 "\n\t Stacktrace: \n"+stack_string;
//     }
// }


import android.util.Log;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.util.Date;
import java.util.List;
import it.unisannio.security.DoApp.model.Commons;
import it.unisannio.security.DoApp.model.ExceptionReport;
package it.unisannio.security.DoApp.util;


/**
 * Created by Luigi on 15/01/2017.
 */

public class ReportWriter {

    public static String scriviSuFile(List<ExceptionReport> reports, String pkgname){
        try {
            String fil=".txt";
// Path: app/src/main/java/it/unisannio/security/DoApp/model/Commons.java
// public class Commons {
// 
//     // public static int ABOUT = 3;
// 
//     // sono i tre stadi per il progressbar di applistactivity
//     public static final int MSG_PROCESSING = 0;
//     public static final int MSG_DONE = 1;
//     public static final int MSG_ERROR = 2;
// 
//     public static final int ACTIVITIES = 0;
//     public static final int RECEIVERS = 1;
//     public static final int SERVICES = 2;
// 
//     public static final String PKGINFO_KEY = "pkginfo";
//     public static final String APPTYPE_KEY = "apptype";
//     public static final String pkgName = "pkgname";
// 
//     public static final String path = Environment.getExternalStorageDirectory().getAbsolutePath()+"/DoAppReports/";
//     public static final String pathFile = "pathFile";
// 
// }
// 
// Path: app/src/main/java/it/unisannio/security/DoApp/model/ExceptionReport.java
// public class ExceptionReport {
// 
//     private String appName; //component name
//     private String processName; //package name
//     private int PID;
//     private Date time;
//     private String type;
//     private Stack<PointOfFailure> stacktrace;
//     private ArrayList<MalIntent> malIntents;
// 
//     public ExceptionReport(){
//         stacktrace = new Stack<PointOfFailure>();
//         malIntents = new ArrayList<MalIntent>();
//     }
// 
//     public String getAppName() {
//         return appName;
//     }
// 
//     public void setAppName(String appName) {
//         this.appName = appName;
//     }
// 
//     public String getProcessName() {
//         return processName;
//     }
// 
//     public void setProcessName(String processName) {
//         this.processName = processName;
//     }
// 
//     public int getPID() {
//         return PID;
//     }
// 
//     public void setPID(int PID) {
//         this.PID = PID;
//     }
// 
//     public Date getTime() {
//         return time;
//     }
// 
//     public void setTime(Date time) {
//         this.time = time;
//     }
// 
//     public String getType() {
//         return type;
//     }
// 
//     public void setType(String type) {
//         this.type = type;
//     }
// 
//     public Stack<PointOfFailure> getStacktrace() {
//         return stacktrace;
//     }
// 
//     public void addPointOfFailure(PointOfFailure pof){
//         stacktrace.push(pof);
//     }
// 
//     public ArrayList<MalIntent> getMalIntents() {
//         return malIntents;
//     }
// 
//     public void addMalIntent(MalIntent malIntent) {
//         if(malIntent!=null)
//             malIntents.add(malIntent);
//     }
// 
//     @Override
//     public boolean equals(Object o) {
//         if (this == o) return true;
//         if (o == null || getClass() != o.getClass()) return false;
// 
//         ExceptionReport that = (ExceptionReport) o;
// 
//         if (appName != null ? !appName.equals(that.appName) : that.appName != null) return false;
//         if (processName != null ? !processName.equals(that.processName) : that.processName != null)
//             return false;
//         if (type != null ? !type.equals(that.type) : that.type != null) return false;
//         if (stacktrace.size()!=that.stacktrace.size()) return false;
// 
//         for(int i = 0; i<stacktrace.size(); i++){
//             if(!stacktrace.get(i).equals(that.stacktrace.get(i)))
//                 return false;
//         }
//         return true;
// 
//     }
// 
// 
//     public String toString(){
//         String stack_string="";
//         Iterator<PointOfFailure> iterator = stacktrace.iterator();
//         while(iterator.hasNext()){
//             PointOfFailure pof = iterator.next();
//             stack_string = stack_string+"\t"+pof.getClassName()+":"+pof.getLineNumber()+"\n";
//         }
// 
//         String malintent_string="";
//         for(MalIntent m : malIntents)
//             malintent_string+= "\n "+m.toString();
// 
//         return "ExceptionReport: "+
//                 "\n\t Package Name: "+processName+
//                 "\n\t Component Name: "+appName+
//                 "\n\t Crash PID: "+PID+
//                 "\n\t"+ ((malintent_string.isEmpty())?"MalIntent Unknown" : malintent_string) +
//                 "\n\t" + "ExceptionType: "+type+"" +
//                 "\n\t Stacktrace: \n"+stack_string;
//     }
// }


// Path: app/src/main/java/it/unisannio/security/DoApp/util/ReportWriter.java
import android.util.Log;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.util.Date;
import java.util.List;
import it.unisannio.security.DoApp.model.Commons;
import it.unisannio.security.DoApp.model.ExceptionReport;

package it.unisannio.security.DoApp.util;


/**
 * Created by Luigi on 15/01/2017.
 */

public class ReportWriter {

    public static String scriviSuFile(List<ExceptionReport> reports, String pkgname){
        try {
            String fil=".txt";
            File fa = new File(Commons.path);