Skip to content

Commit

Permalink
MONDRIAN
Browse files Browse the repository at this point in the history
 fix for bug 1614438:  CalculatedMember.formatString attribute ignored

Also checked in updated intellij ipr file referencing java 1.5 and containing needed libs

[git-p4: depot-paths = "//open/mondrian/": change = 8629]
  • Loading branch information
Matt Campbell authored and Matt Campbell committed Jan 31, 2007
1 parent 6d22f4f commit 9600583
Show file tree
Hide file tree
Showing 3 changed files with 70 additions and 1 deletion.
20 changes: 19 additions & 1 deletion intellij/mondrian.ipr
Expand Up @@ -182,14 +182,29 @@
<module fileurl="file://$PROJECT_DIR$/mondrianTest.iml" filepath="$PROJECT_DIR$/mondrianTest.iml" />
</modules>
</component>
<component name="ProjectRootManager" version="2" assert-keyword="true" jdk-15="false" project-jdk-name="JDK 1.4.2_02" />
<component name="ProjectRootManager" version="2" assert-keyword="true" jdk-15="true" project-jdk-name="1.5" />
<component name="RmicSettings">
<option name="IS_EANABLED" value="false" />
<option name="DEBUGGING_INFO" value="true" />
<option name="GENERATE_NO_WARNINGS" value="false" />
<option name="GENERATE_IIOP_STUBS" value="false" />
<option name="ADDITIONAL_OPTIONS_STRING" value="" />
</component>
<component name="TestDox.ConfigurationController">
<option name="allowCustomPackages" value="false" />
<option name="testNameTemplate" value="&lt;classname&gt;Test" />
<option name="alphabeticalSorting" value="false" />
<option name="createTestIfMissing" value="true" />
<option name="underscoreMode" value="false" />
<option name="showFullyQualifiedClassName" value="false" />
<option name="autoscrolling" value="false" />
<option name="autoApplyChangesToTests" value="true" />
<option name="deletePackageOccurrences" value="true" />
<option name="testMethodPrefix" value="test" />
<option name="testMethodAnnotation" />
<option name="usingAnnotations" value="false" />
<custom-packaging allow="false" />
</component>
<component name="libraryTable">
<library name="all">
<CLASSES>
Expand All @@ -209,6 +224,9 @@
<root url="jar://$PROJECT_DIR$/../lib/eigenbase-xom.jar!/" />
<root url="jar://$PROJECT_DIR$/../lib/eigenbase-resgen.jar!/" />
<root url="jar://$PROJECT_DIR$/../lib/servlet.jar!/" />
<root url="jar://$PROJECT_DIR$/../lib/commons-vfs.jar!/" />
<root url="jar://$PROJECT_DIR$/../lib/commons-math-1.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../lib/commons-logging.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
Expand Down
8 changes: 8 additions & 0 deletions src/main/mondrian/rolap/RolapCube.java
Expand Up @@ -879,6 +879,7 @@ private void preCalcMember(
Util.singleQuoteString(xmlCalcMember.getFormula(), buf);

assert propNames.size() == propExprs.size();
processFormatStringAttribute(xmlCalcMember, buf);

for (int i = 0; i < propNames.size(); i++) {
String name = propNames.get(i);
Expand All @@ -901,6 +902,13 @@ private void preCalcMember(
buf.append(Util.nl);
}

void processFormatStringAttribute(MondrianDef.CalculatedMember xmlCalcMember, StringBuilder buf) {
if (xmlCalcMember.formatString != null) {
buf.append(",").append(Util.nl)
.append(Property.FORMAT_STRING.name).append(" = ").append(Util.quoteForMdx(xmlCalcMember.formatString));
}
}

/**
* Validates an array of member properties, and populates a list of names
* and expressions, one for each property.
Expand Down
43 changes: 43 additions & 0 deletions testsrc/main/mondrian/rolap/RolapCubeTest.java
@@ -0,0 +1,43 @@
/*
// $Id$
// This software is subject to the terms of the Common Public License
// Agreement, available at the following URL:
// http://www.opensource.org/licenses/cpl.html.
// Copyright (C) 2001-2002 Kana Software, Inc.
// Copyright (C) 2001-2005 Julian Hyde and others
// All Rights Reserved.
// You must accept the terms of that agreement to use this software.
//
// mkambol, 25 January, 2007
*/
package mondrian.rolap;

import mondrian.test.FoodMartTestCase;
import mondrian.olap.*;

/**
* Unit test for {@link RolapCubeTest}.
*
* @author mkambol
* @since 25 January, 2007
* @version $Id$
*/
public class RolapCubeTest extends FoodMartTestCase {

public void testProcessFormatStringAttributeToIgnoreNullFormatString(){
RolapCube cube = (RolapCube) getConnection().getSchema().lookupCube("Sales", false);
StringBuilder builder = new StringBuilder();
cube.processFormatStringAttribute(new MondrianDef.CalculatedMember(), builder);
assertEquals(0, builder.length());
}

public void testProcessFormatStringAttribute(){
RolapCube cube = (RolapCube) getConnection().getSchema().lookupCube("Sales", false);
StringBuilder builder = new StringBuilder();
MondrianDef.CalculatedMember xmlCalcMember = new MondrianDef.CalculatedMember();
String format = "FORMAT";
xmlCalcMember.formatString = format;
cube.processFormatStringAttribute(xmlCalcMember, builder);
assertEquals(","+ Util.nl+"FORMAT_STRING = \""+format+"\"", builder.toString());
}
}

0 comments on commit 9600583

Please sign in to comment.