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

com.vaadin.data.PropertyDefinition Maven / Gradle / Ivy

There is a newer version: 8.27.3
Show newest version
/*
 * Copyright (C) 2000-2024 Vaadin Ltd
 *
 * This program is available under Vaadin Commercial License and Service Terms.
 *
 * See  for the full
 * license.
 */
package com.vaadin.data;

import java.io.Serializable;
import java.util.Optional;

import com.vaadin.server.Setter;

/**
 * A property from a {@link PropertySet}.
 *
 * @author Vaadin Ltd
 * @since 8.0
 *
 * @param 
 *            the type of the property set
 * @param 
 *            the property type
 */
public interface PropertyDefinition extends Serializable {
    /**
     * Gets the value provider that is used for finding the value of this
     * property for a bean.
     *
     * @return the getter, not null
     */
    public ValueProvider getGetter();

    /**
     * Gets an optional setter for storing a property value in a bean.
     *
     * @return the setter, or an empty optional if this property is read-only
     */
    public Optional> getSetter();

    /**
     * Gets the type of this property.
     *
     * @return the property type. not null
     */
    public Class getType();

    /**
     * Gets the type of the class containing this property.
     *
     * @since 8.1
     *
     * @return the property type. not null
     */
    public Class getPropertyHolderType();

    /**
     * Gets the full name of this property.
     *
     * @return the property name, not null
     */
    public String getName();

    /**
     * Gets the top level name of this property.
     *
     * @return the top level property name, not null
     * @since 8.3
     */
    public default String getTopLevelName() {
        return getName();
    }

    /**
     * Gets the human readable caption to show for this property.
     *
     * @return the caption to show, not null
     */
    public String getCaption();

    /**
     * Gets the {@link PropertySet} that this property belongs to.
     *
     * @return the property set, not null
     */
    public PropertySet getPropertySet();
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy