Skip to content

Commit

Permalink
Implement clearWarnings() as no-op (needed by apache-commons-dbcp); M…
Browse files Browse the repository at this point in the history
…ake sure Level.getMembers() returns objects that implement Measure if applied to level in [Measures] dimension; Minor changes to web home page.

git-svn-id: https://olap4j.svn.sourceforge.net/svnroot/olap4j/trunk@95 c6a108a4-781c-0410-a6c6-c2d559e19af0
  • Loading branch information
julianhyde committed May 27, 2008
1 parent babc6b2 commit e201c97
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 4 deletions.
12 changes: 9 additions & 3 deletions doc/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
== 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) 2006-2007 Julian Hyde and others.
== Copyright (C) 2006-2008 Julian Hyde and others.
== All Rights Reserved.
== You must accept the terms of that agreement to use this software.
-->
Expand Down Expand Up @@ -188,7 +188,8 @@ <h4>Resources</h4>
<h4>Get involved!</h4>
<p>Join the <a href="http://sourceforge.net/forum/forum.php?forum_id=577988">forum</a>, download the specification, and give us your feedback. If you are developing an OLAP server, component or
application, let's work together to make your project olap4j-compliant.</p><br/>
<p>Drivers for mondrian and XML/A are under development; we're looking for committers to work on these drivers and drivers for other servers.</p></td>
<p>Drivers for mondrian and XML/A are under development; we're looking for committers to work on these drivers and drivers for other servers.</p>
</td>
<td rowspan="5" class="col_spacer" style="padding-bottom: 10px;"><img src="images/spacer.png" class="col_spacer"/></td>
<td rowspan="4" valign="top" style="padding-bottom: 10px;"><div class="participation_bg"><h4 style="margin: 0px;">Participation</h4>
olap4j is an open specification, being developed by a consortium of companies and open source projects, including:
Expand All @@ -214,7 +215,12 @@ <h5>Companies</h5>
</table></td>
</tr>
<tr>
<td colspan="2" class="copyright">&copy; 2007</td></td>
<td colspan="2" class="copyright">&copy; 2007-2008</td>
</tr>
<tr>
<td colspan="2" align="right">
<a href="http://sourceforge.net/projects/olap4j"><img src="http://sourceforge.net/sflogo.php?group_id=168953&type=1" width="88" height="31" border="0" alt="SourceForge.net_Logo"></a>
</td>
</tr>
</table>
</td>
Expand Down
2 changes: 1 addition & 1 deletion src/org/olap4j/driver/xmla/XmlaOlap4jConnection.java
Original file line number Diff line number Diff line change
Expand Up @@ -342,7 +342,7 @@ public SQLWarning getWarnings() throws SQLException {
}

public void clearWarnings() throws SQLException {
throw new UnsupportedOperationException();
// this driver does not support warnings, so nothing to do
}

public Statement createStatement(
Expand Down
45 changes: 45 additions & 0 deletions src/org/olap4j/driver/xmla/XmlaOlap4jCube.java
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,13 @@ class XmlaOlap4jCube implements Cube, Named
new NamedListImpl<XmlaOlap4jNamedSet>();
private final MetadataReader metadataReader;

/**
* Creates an XmlaOlap4jCube.
*
* @param olap4jSchema Schema
* @param name Name
* @param description Description
*/
XmlaOlap4jCube(
XmlaOlap4jSchema olap4jSchema,
String name,
Expand Down Expand Up @@ -120,6 +127,27 @@ class XmlaOlap4jCube implements Cube, Named
measure.getUniqueName(),
new SoftReference<XmlaOlap4jMember>(measure));
}
if (!measures.isEmpty()) {
final XmlaOlap4jHierarchy measuresHierarchy =
measures.get(0).getHierarchy();
for (XmlaOlap4jLevel level : measuresHierarchy.levels) {
final List<Member> memberList = level.getMembers();
final List<Measure> measureList =
new ArrayList<Measure>(memberList.size());
for (Member member : memberList) {
final SoftReference<XmlaOlap4jMember> measureRef =
((CachingMetadataReader) metadataReader).memberMap.get(
member.getUniqueName());
// gc not possible - we hold all members in 'measures' field.
assert measureRef.get() != null;
measureList.add((Measure) measureRef.get());
}
((CachingMetadataReader) metadataReader).levelMemberListMap.put(
level,
new SoftReference<List<XmlaOlap4jMember>>(
Olap4jUtil.<XmlaOlap4jMember>cast(measureList)));
}
}
// populate named sets
olap4jConnection.populateList(
namedSets, context,
Expand Down Expand Up @@ -177,6 +205,13 @@ public Member lookupMember(String... nameParts) throws OlapException {
return lookupMember(segmentList);
}

/**
* Finds a member, given its fully qualfieid name.
*
* @param segmentList List of the segments of the name
* @return Member, or null if not found
* @throws OlapException on error
*/
private Member lookupMember(
List<IdentifierNode.Segment> segmentList) throws OlapException
{
Expand Down Expand Up @@ -230,6 +265,11 @@ private static abstract class DelegatingMetadataReader
{
private final MetadataReader metadataReader;

/**
* Creates a DelegatingMetadataReader.
*
* @param metadataReader Underlying metadata reader
*/
DelegatingMetadataReader(MetadataReader metadataReader) {
this.metadataReader = metadataReader;
}
Expand Down Expand Up @@ -283,6 +323,11 @@ private static class CachingMetadataReader
levelMemberListMap =
new HashMap<XmlaOlap4jLevel, SoftReference<List<XmlaOlap4jMember>>>();

/**
* Creates a CachingMetadataReader.
*
* @param metadataReader Underlying metadata reader
*/
CachingMetadataReader(MetadataReader metadataReader) {
super(metadataReader);
}
Expand Down

0 comments on commit e201c97

Please sign in to comment.