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

ru.d_shap.assertions.converter.ValueConverterProvider Maven / Gradle / Ivy

There is a newer version: 2.2
Show newest version
///////////////////////////////////////////////////////////////////////////////////////////////////
// Assertions library provides facilities for the unit testing.
// Copyright (C) 2017 Dmitry Shapovalov.
//
// This file is part of assertions library.
//
// Assertions library is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Assertions library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with this program. If not, see .
///////////////////////////////////////////////////////////////////////////////////////////////////
package ru.d_shap.assertions.converter;

/**
 * Service provider interface for the value to the value with the target class converter.
 *
 * @author Dmitry Shapovalov
 */
public interface ValueConverterProvider {

    /**
     * Get the value class.
     *
     * @return the value class.
     */
    Class getValueClass();

    /**
     * Get the target class.
     *
     * @return the target class.
     */
    Class getTargetClass();

    /**
     * Get the value converted to the target class (or the same value if conversion cannot be performed).
     *
     * @param value     the value.
     * @param arguments the conversion arguments.
     *
     * @return the value converted to the target class (or the same value if conversion cannot be performed).
     */
    Object convert(Object value, Object... arguments);

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy