001    /*
002    // $Id: Cell.java 229 2009-05-08 19:11:29Z jhyde $
003    // This software is subject to the terms of the Eclipse Public License v1.0
004    // Agreement, available at the following URL:
005    // http://www.eclipse.org/legal/epl-v10.html.
006    // Copyright (C) 2009-2009 Julian Hyde
007    // All Rights Reserved.
008    // You must accept the terms of that agreement to use this software.
009    */
010    package org.olap4j;
011    
012    /**
013     * Enumeration of the policies that can be used to modify the values of
014     * child cells when their parent cell is modified in a writeback operation.
015     *
016     * @see Cell#setValue
017     *
018     * @author jhyde
019     * @version $Id: Cell.java 229 2009-05-08 19:11:29Z jhyde $
020     * @since Aug 22, 2006
021     */
022    public enum AllocationPolicy {
023        /**
024         * Every atomic cell that contributes to the updated cell will be
025         * assigned an equal value that is:
026         *
027         * <blockquote>
028         * &lt;atomic cell value&gt; =
029         * &lt;value&gt; / Count(atomic cells contained in &lt;tuple&gt;)
030         * </blockquote>
031         */
032        EQUAL_ALLOCATION,
033    
034        /**
035         * Every atomic cell that contributes to the updated cell will be
036         * changed according to:
037         *
038         * <blockquote>
039         * &lt;atomic cell value&gt; = &lt;atomic cell value&gt; +
040         * (&lt;value&gt; - &lt;existing value&gt;)  /
041         * Count(atomic cells contained in &lt;tuple&gt;)
042         * </blockquote>
043         */
044        EQUAL_INCREMENT,
045    
046        /**
047         * Every atomic cell that contributes to the updated cell will be
048         * assigned an equal value that is:
049         *
050         * <blockquote>
051         * &lt;atomic cell value&gt; =
052         * &lt;value&gt; * &lt;weight value expression&gt;
053         * </blockquote>
054         *
055         * <p>Takes an optional argument, {@code weight_value_expression}.
056         * If {@code weight_value_expression} is not provided, the following
057         * expression is assigned to it by default:
058         *
059         * <blockquote>
060         * &lt;weight value expression&gt; =
061         * &lt;atomic cell value&gt; / &lt;existing value&gt;
062         * <blockquote>
063         *
064         * <p>The value of {@code weight value expression} should be expressed
065         * as a value between 0 and 1. This value specifies the ratio of the
066         * allocated value you want to assign to the atomic cells that are
067         * affected by the allocation. It is the client application programmer's
068         * responsibilffity to create expressions whose rollup aggregate values
069         * will equal the allocated value of the expression.
070         */
071        WEIGHTED_ALLOCATION,
072    
073        /**
074         * Every atomic cell that contributes to the updated cell will be
075         * changed according to:
076         *
077         * <blockquote>
078         * &lt;atomic cell value&gt; = &lt;atomic cell value&gt; +
079         * (&lt;value&gt; - &lt;existing value&gt;)  *
080         * &lt;weight value expression&gt;
081         * </blockquote>
082         *
083         * <p>Takes an optional argument, {@code weight_value_expression}.
084         * If {@code weight_value_expression} is not provided, the following
085         * expression is assigned to it by default:
086         *
087         * <blockquote>
088         * &lt;weight value expression&gt; =
089         * &lt;atomic cell value&gt; / &lt;existing value&gt;
090         * <blockquote>
091         *
092         * <p>The value of {@code weight value expression} should be expressed
093         * as a value between 0 and 1. This value specifies the ratio of the
094         * allocated value you want to assign to the atomic cells that are
095         * affected by the allocation. It is the client application programmer's
096         * responsibility to create expressions whose rollup aggregate values
097         * will equal the allocated value of the expression.
098         */
099        WEIGHTED_INCREMENT,
100    }
101    
102    // End AllocationPolicy.java