package com.avg.zaap.crashlibrary.core;

import com.avg.zaap.crashlibrary.ReportData;
import com.avg.zaap.crashlibrary.core.hash.HashGenerator;
import com.avg.zaap.crashlibrary.core.hash.IHashGenerator;
import com.avg.zaap.crashlibrary.core.helper.process.IProcessHelper;
import com.avg.zaap.crashlibrary.core.helper.process.ProcessHelper;
import com.avg.zaap.crashlibrary.provider.stacktrace.IStackTraceWriter;
import com.avg.zaap.crashlibrary.provider.stacktrace.StackTraceWriter;
import com.avg.zaap.crashlibrary.publish.cap.CapHelper;
import com.avg.zaap.crashlibrary.publish.cap.ICapHelper;

/**
 * Implementation of {@link ICrashUncaughtExceptionHandlerFactory}.
 * <p>
 * Created by marek.osvald on 5. 5. 2016.
 */
public class CrashUncaughtExceptionHandlerFactory implements ICrashUncaughtExceptionHandlerFactory {

    @Override
    public IStackTraceWriter getStackTraceWriter() {
        return new StackTraceWriter();
    }

    @Override
    public IHashGenerator getHashGenerator() {
        return new HashGenerator();
    }

    @Override
    public IServiceConnectionHelper getServiceConnectionHelper(ICrashReportingServiceCallback callback) {
        return new ServiceConnectionHelper(callback);
    }

    @Override
    public ICrashUncaughtExceptionHandlerHelper getHelper() {
        return new CrashUncaughtExceptionHandlerHelper();
    }

    @Override
    public IProcessHelper getProcessHelper() {
        return new ProcessHelper();
    }

    @Override
    public ICapHelper getCapHelper() {
        return new CapHelper();
    }

    @Override
    public ReportData getReportData() {
        return new ReportData();
    }

}
