package fj;
import fj.data.Validation;
import fj.function.*;
/**
* Created by mperry on 29/08/2014.
*/
public final class TryEffect {
private TryEffect(){}
@SuppressWarnings("unchecked")
public static <A, Z extends Exception> P1<Validation<Z, Unit>> f(TryEffect0<Z> t) {
return P.lazy(() -> {
try {
t.f();
return Validation.success(Unit.unit());
} catch (Exception e) {
return Validation.fail((Z) e);
}
});
}
@SuppressWarnings("unchecked")
public static <A, Z extends Exception> F<A, Validation<Z, Unit>> f(TryEffect1<A, Z> t) {
return a -> {
try {
t.f(a);
return Validation.success(Unit.unit());
} catch (Exception e) {
return Validation.fail((Z) e);
}
};
}
@SuppressWarnings("unchecked")
public static <A, B, Z extends Exception> F2<A, B, Validation<Z, Unit>> f(TryEffect2<A, B, Z> t) {
return (a, b) -> {
try {
t.f(a, b);
return Validation.success(Unit.unit());
} catch (Exception e) {
return Validation.fail((Z) e);
}
};
}
@SuppressWarnings("unchecked")
public static <A, B, C, Z extends Exception> F3<A, B, C, Validation<Z, Unit>> f(TryEffect3<A, B, C, Z> t) {
return (a, b, c) -> {
try {
t.f(a, b, c);
return Validation.success(Unit.unit());
} catch (Exception e) {
return Validation.fail((Z) e);
}
};
}
@SuppressWarnings("unchecked")
public static <A, B, C, D, Z extends Exception> F4<A, B, C, D, Validation<Z, Unit>> f(TryEffect4<A, B, C, D, Z> t) {
return (a, b, c, d) -> {
try {
t.f(a, b, c, d);
return Validation.success(Unit.unit());
} catch (Exception e) {
return Validation.fail((Z) e);
}
};
}
@SuppressWarnings("unchecked")
public static <A, B, C, D, E, Z extends Exception> F5<A, B, C, D, E, Validation<Z, Unit>> f(TryEffect5<A, B, C, D, E, Z> t) {
return (a, b, c, d, e) -> {
try {
t.f(a, b, c, d, e);
return Validation.success(Unit.unit());
} catch (Exception z) {
return Validation.fail((Z) z);
}
};
}
@SuppressWarnings("unchecked")
public static <A, B, C, D, E, $F, Z extends Exception> F6<A, B, C, D, E, $F, Validation<Z, Unit>> f(TryEffect6<A, B, C, D, E, $F, Z> t) {
return (a, b, c, d, e, f) -> {
try {
t.f(a, b, c, d, e, f);
return Validation.success(Unit.unit());
} catch (Exception z) {
return Validation.fail((Z) z);
}
};
}
@SuppressWarnings("unchecked")
public static <A, B, C, D, E, $F, G, Z extends Exception> F7<A, B, C, D, E, $F, G, Validation<Z, Unit>> f(TryEffect7<A, B, C, D, E, $F, G, Z> t) {
return (a, b, c, d, e, f, g) -> {
try {
t.f(a, b, c, d, e, f, g);
return Validation.success(Unit.unit());
} catch (Exception z) {
return Validation.fail((Z) z);
}
};
}
@SuppressWarnings("unchecked")
public static <A, B, C, D, E, $F, G, H, Z extends Exception> F8<A, B, C, D, E, $F, G, H, Validation<Z, Unit>> f(TryEffect8<A, B, C, D, E, $F, G, H, Z> t) {
return (a, b, c, d, e, f, g, h) -> {
try {
t.f(a, b, c, d, e, f, g, h);
return Validation.success(Unit.unit());
} catch (Exception z) {
return Validation.fail((Z) z);
}
};
}
}