Buckets:
NaTo1000/termux-app-bucket / termux-shared /src /main /java /com /termux /shared /errors /Errno.java
| package com.termux.shared.errors; | |
| import android.app.Activity; | |
| import androidx.annotation.NonNull; | |
| import com.termux.shared.logger.Logger; | |
| import java.util.Arrays; | |
| import java.util.Collections; | |
| import java.util.HashMap; | |
| import java.util.List; | |
| /** The {@link Class} that defines error messages and codes. */ | |
| public class Errno { | |
| private static final HashMap<String, Errno> map = new HashMap<>(); | |
| public static final String TYPE = "Error"; | |
| public static final Errno ERRNO_SUCCESS = new Errno(TYPE, Activity.RESULT_OK, "Success"); | |
| public static final Errno ERRNO_CANCELLED = new Errno(TYPE, Activity.RESULT_CANCELED, "Cancelled"); | |
| public static final Errno ERRNO_MINOR_FAILURES = new Errno(TYPE, Activity.RESULT_FIRST_USER, "Minor failure"); | |
| public static final Errno ERRNO_FAILED = new Errno(TYPE, Activity.RESULT_FIRST_USER + 1, "Failed"); | |
| /** The errno type. */ | |
| protected final String type; | |
| /** The errno code. */ | |
| protected final int code; | |
| /** The errno message. */ | |
| protected final String message; | |
| private static final String LOG_TAG = "Errno"; | |
| public Errno( final String type, final int code, final String message) { | |
| this.type = type; | |
| this.code = code; | |
| this.message = message; | |
| map.put(type + ":" + code, this); | |
| } | |
| public String toString() { | |
| return "type=" + type + ", code=" + code + ", message=\"" + message + "\""; | |
| } | |
| public String getType() { | |
| return type; | |
| } | |
| public int getCode() { | |
| return code; | |
| } | |
| public String getMessage() { | |
| return message; | |
| } | |
| /** | |
| * Get the {@link Errno} of a specific type and code. | |
| * | |
| * @param type The unique type of the {@link Errno}. | |
| * @param code The unique code of the {@link Errno}. | |
| */ | |
| public static Errno valueOf(String type, Integer code) { | |
| if (type == null || type.isEmpty() || code == null) return null; | |
| return map.get(type + ":" + code); | |
| } | |
| public Error getError() { | |
| return new Error(getType(), getCode(), getMessage()); | |
| } | |
| public Error getError(Object... args) { | |
| try { | |
| return new Error(getType(), getCode(), String.format(getMessage(), args)); | |
| } catch (Exception e) { | |
| Logger.logWarn(LOG_TAG, "Exception raised while calling String.format() for error message of errno " + this + " with args" + Arrays.toString(args) + "\n" + e.getMessage()); | |
| // Return unformatted message as a backup | |
| return new Error(getType(), getCode(), getMessage() + ": " + Arrays.toString(args)); | |
| } | |
| } | |
| public Error getError(Throwable throwable, Object... args) { | |
| if (throwable == null) | |
| return getError(args); | |
| else | |
| return getError(Collections.singletonList(throwable), args); | |
| } | |
| public Error getError(List<Throwable> throwablesList, Object... args) { | |
| try { | |
| if (throwablesList == null) | |
| return new Error(getType(), getCode(), String.format(getMessage(), args)); | |
| else | |
| return new Error(getType(), getCode(), String.format(getMessage(), args), throwablesList); | |
| } catch (Exception e) { | |
| Logger.logWarn(LOG_TAG, "Exception raised while calling String.format() for error message of errno " + this + " with args" + Arrays.toString(args) + "\n" + e.getMessage()); | |
| // Return unformatted message as a backup | |
| return new Error(getType(), getCode(), getMessage() + ": " + Arrays.toString(args), throwablesList); | |
| } | |
| } | |
| public boolean equalsErrorTypeAndCode(Error error) { | |
| if (error == null) return false; | |
| return type.equals(error.getType()) && code == error.getCode(); | |
| } | |
| } | |
Xet Storage Details
- Size:
- 3.85 kB
- Xet hash:
- 64824b61c5e062cf72c6e88afe57bd564e510901a728c4920cb38c9575833d83
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.