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

com.blazebit.text.AbstractFormat Maven / Gradle / Ivy

/*
 * Copyright 2011 Blazebit
 */
package com.blazebit.text;

import java.io.Serializable;
import java.text.FieldPosition;
import java.text.Format;
import java.text.ParseException;
import java.text.ParsePosition;

/**
 * @param  The type that should be parsed from a string value.
 * @author Christian Beikov
 * @since 0.1.2
 */
public abstract class AbstractFormat extends Format
        implements SerializableFormat {

    private static final long serialVersionUID = 1L;

    private Class clazz;

    public AbstractFormat(Class clazz) {
        this.clazz = clazz;
    }

    @Override
    public StringBuffer format(Object obj, StringBuffer toAppendTo,
                               FieldPosition pos) {
        if (!clazz.isInstance(obj)) {
            throw new IllegalArgumentException(
                    "The given object is not of the expected type!");
        }

        return format(obj, toAppendTo);
    }

    @SuppressWarnings("unchecked")
    public StringBuffer format(Object obj, StringBuffer toAppendTo) {
        toAppendTo.append(format((T) obj, (ParserContext) null));
        return toAppendTo;
    }

    @Override
    public String format(T object, ParserContext context) {
        return object.toString();
    }

    @Override
    public Object parseObject(String source, ParsePosition pos) {
        try {
            return parse(source, null);
        } catch (ParseException e) {
            return null;
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy