All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.yahoo.document.json.JsonReaderException Maven / Gradle / Ivy

// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.document.json;

import com.yahoo.document.DocumentId;
import com.yahoo.document.Field;

/**
 * @author bjorncs
 */
public class JsonReaderException extends IllegalArgumentException {

    public final DocumentId docId;
    public final Field field;
    public final Throwable cause;

    public JsonReaderException(DocumentId docId, Field field, Throwable cause) {
        super(createErrorMessage(docId, field, cause), cause);
        this.docId = docId;
        this.field = field;
        this.cause = cause;
    }

    public JsonReaderException(Field field, Throwable cause) {
        super(createErrorMessage(null, field, cause), cause);
        this.docId = null;
        this.field = field;
        this.cause = cause;
    }

    public static JsonReaderException addDocId(JsonReaderException oldException, DocumentId docId) {
        return new JsonReaderException(docId, oldException.field, oldException.cause);
    }

    private static String createErrorMessage(DocumentId docId, Field field, Throwable cause) {
        return String.format("Error in document '%s' - could not parse field '%s' of type '%s': %s",
                             docId, field.getName(), field.getDataType().getName(), cause.getMessage());
    }

    public DocumentId getDocId() {
        return docId;
    }

    public Field getField() {
        return field;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy