001package io.cui.tools.formatting.template;
002
003import java.io.Serializable;
004import java.util.List;
005import java.util.Map;
006
007/**
008 * Provides runtime-information about a bean without resorting to reflection.
009 *
010 * @author Eugen Fischer
011 */
012public interface FormatterSupport {
013
014    /**
015     * Allow easier access to available properties.
016     * Order of available properties and their values has no effect.
017     *
018     * @return Map<String, Serializable> of property name -> property Value for <b>non</b>
019     *         {@code null}
020     *         properties
021     */
022    Map<String, Serializable> getAvailablePropertyValues();
023
024    /**
025     * @return list of all supported properties
026     */
027    List<String> getSupportedPropertyNames();
028
029}