/** * Copyright (C) 2010-14 diirt developers. See COPYRIGHT.TXT * All rights reserved. Use is subject to license terms. See LICENSE.TXT */ package org.diirt.datasource.expression; import org.diirt.datasource.ReadFunction; /** * An expression to read at the rate of the source. * <p> * Don't implement objects with this interface, use {@link SourceRateExpressionImpl}. * * @param <R> type of the read payload * @author carcassi */ public interface SourceRateExpression<R> extends SourceRateExpressionList<R> { /** * Changes the name for this expression * * @param name new name * @return this */ public SourceRateExpression<R> as(String name); /** * Name of the expression. * * @return the expression name */ public String getName(); /** * The function that calculates this expression. * * @return the expression function */ public ReadFunction<R> getFunction(); /** * The implementation of this expression. * * @return the implementation */ public SourceRateExpressionImpl<R> getSourceRateExpressionImpl(); }