/*
* This program is free software; you can redistribute it and/or modify it under the
* terms of the GNU General Public License, version 2 as published by the Free Software
* Foundation.
*
* You should have received a copy of the GNU General Public License along with this
* program; if not, you can obtain a copy at http://www.gnu.org/licenses/gpl-2.0.html
* or from the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* This program 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 General Public License for more details.
*
*
* Copyright 2006 - 2016 Pentaho Corporation. All rights reserved.
*/
package org.pentaho.aggdes.ui.model;
import java.util.List;
import org.pentaho.aggdes.model.Aggregate;
import org.pentaho.aggdes.model.Attribute;
import org.pentaho.aggdes.model.Measure;
import org.pentaho.aggdes.output.Output;
/**
* This interface extends core model Aggregates and allows for custom
* creation of aggregates.
*
* @author Will Gorman (wgorman@pentaho.com)
*
*/
public interface UIAggregate extends Aggregate {
/**
* Aggregate Name
*
* @return name
*/
public String getName();
/**
* set the Aggregate name
*
* @param name aggregate name
*/
public void setName(String name);
/**
* set the Aggregate description
*
* @param description
*/
public void setDescription(String description);
/**
* set the attributes for this aggregate
*
* @param attributes list of attributes
*/
public void setAttributes(List<Attribute> attributes);
/**
* set the measures for this aggregate
*
* @param attributes list of attributes
*/
public void setMeasures(List<Measure> measures);
/**
* set the calculated estimated row count
*
* @param estimateRowCount the estimated row count of this aggregate
*/
public void setEstimateRowCount(double estimateRowCount);
/**
* set the calculated estimated space
*
* @param estimateSpace the estimated space used by this aggregate
*/
public void setEstimateSpace(double estimateSpace);
/**
* set the list of outputs related to this aggregate
*
* @param output the output pojo object
*/
public void setOutput(Output output);
/**
* get the list of outputs related to this aggregate
*
* @return output list
*/
public Output getOutput();
/**
* return true if this is an algorithm recommended aggregate
* @return
*/
public boolean isAlgoAgg();
/**
* sets the algorithm aggregate flag
*
* @param algoAgg
*/
public void setAlgoAgg(boolean algoAgg);
/**
* set the enabled flag for this aggregate
*
* @param enabled
*/
public void setEnabled(boolean enabled);
/**
* gets the enabled state of this aggregate
*
* @return enabled state
*/
public boolean getEnabled();
}