Class: Mondrian::OLAP::Member
- Inherits:
-
Object
- Object
- Mondrian::OLAP::Member
- Includes:
- Annotated
- Defined in:
- lib/mondrian/olap/cube.rb
Instance Attribute Summary collapse
-
#raw_member ⇒ Object
readonly
Returns the value of attribute raw_member.
Instance Method Summary collapse
- #all_member? ⇒ Boolean
- #annotations ⇒ Object
- #calculated? ⇒ Boolean
- #calculated_in_query? ⇒ Boolean
- #caption ⇒ Object
- #cell_formatter_name ⇒ Object
- #children ⇒ Object
- #depth ⇒ Object
- #descendants_at_level(level) ⇒ Object
- #dimension_type ⇒ Object
- #drillable? ⇒ Boolean
- #format_string ⇒ Object
- #full_name ⇒ Object
-
#initialize(raw_member) ⇒ Member
constructor
A new instance of Member.
- #mondrian_member ⇒ Object
- #name ⇒ Object
- #property_formatted_value(name) ⇒ Object
- #property_value(name) ⇒ Object
- #visible? ⇒ Boolean
Constructor Details
#initialize(raw_member) ⇒ Member
288 289 290 |
# File 'lib/mondrian/olap/cube.rb', line 288 def initialize(raw_member) @raw_member = raw_member end |
Instance Attribute Details
#raw_member ⇒ Object (readonly)
Returns the value of attribute raw_member.
292 293 294 |
# File 'lib/mondrian/olap/cube.rb', line 292 def raw_member @raw_member end |
Instance Method Details
#all_member? ⇒ Boolean
318 319 320 |
# File 'lib/mondrian/olap/cube.rb', line 318 def all_member? @raw_member.isAll end |
#annotations ⇒ Object
388 389 390 |
# File 'lib/mondrian/olap/cube.rb', line 388 def annotations annotations_for(@raw_member) end |
#calculated? ⇒ Boolean
306 307 308 |
# File 'lib/mondrian/olap/cube.rb', line 306 def calculated? @raw_member.isCalculated end |
#calculated_in_query? ⇒ Boolean
310 311 312 |
# File 'lib/mondrian/olap/cube.rb', line 310 def calculated_in_query? @raw_member.isCalculatedInQuery end |
#caption ⇒ Object
302 303 304 |
# File 'lib/mondrian/olap/cube.rb', line 302 def caption @caption ||= @raw_member.getCaption end |
#cell_formatter_name ⇒ Object
402 403 404 405 406 407 408 409 410 411 412 |
# File 'lib/mondrian/olap/cube.rb', line 402 def cell_formatter_name if dimension_type == :measures cube_measure = raw_member.unwrap(Java::MondrianOlap::Member.java_class) if value_formatter = cube_measure.getFormatter f = value_formatter.java_class.declared_field('cf') f.accessible = true cf = f.value(value_formatter) cf.class.name.split('::').last.gsub(/Udf\z/, '') end end end |
#children ⇒ Object
346 347 348 349 350 |
# File 'lib/mondrian/olap/cube.rb', line 346 def children Error.wrap_native_exception do @raw_member.getChildMembers.map{|m| Member.new(m)} end end |
#depth ⇒ Object
331 332 333 |
# File 'lib/mondrian/olap/cube.rb', line 331 def depth @raw_member.getDepth end |
#descendants_at_level(level) ⇒ Object
352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 |
# File 'lib/mondrian/olap/cube.rb', line 352 def descendants_at_level(level) Error.wrap_native_exception do raw_level = @raw_member.getLevel raw_levels = raw_level.getHierarchy.getLevels current_level_index = raw_levels.indexOf(raw_level) descendants_level_index = raw_levels.indexOfName(level) return nil unless descendants_level_index > current_level_index members = [self] (descendants_level_index - current_level_index).times do members = members.map do |member| member.children end.flatten end members end end |
#dimension_type ⇒ Object
335 336 337 338 339 340 341 342 343 344 |
# File 'lib/mondrian/olap/cube.rb', line 335 def dimension_type case @raw_member.getDimension.getDimensionType when Java::OrgOlap4jMetadata::Dimension::Type::TIME :time when Java::OrgOlap4jMetadata::Dimension::Type::MEASURE :measures else :standard end end |
#drillable? ⇒ Boolean
322 323 324 325 326 327 328 329 |
# File 'lib/mondrian/olap/cube.rb', line 322 def drillable? return false if calculated? # @raw_member.getChildMemberCount > 0 # This hopefully is faster than counting actual child members raw_level = @raw_member.getLevel raw_levels = raw_level.getHierarchy.getLevels raw_levels.indexOf(raw_level) < raw_levels.size - 1 end |
#format_string ⇒ Object
392 393 394 395 396 397 398 399 400 |
# File 'lib/mondrian/olap/cube.rb', line 392 def format_string format_exp = property_value('FORMAT_EXP') if format_exp && format_exp =~ /\A"(.*)"\z/ format_exp = $1 end if format_exp && !format_exp.empty? format_exp end end |
#full_name ⇒ Object
298 299 300 |
# File 'lib/mondrian/olap/cube.rb', line 298 def full_name @full_name ||= @raw_member.getUniqueName end |
#mondrian_member ⇒ Object
383 384 385 |
# File 'lib/mondrian/olap/cube.rb', line 383 def mondrian_member @raw_member.unwrap(Java::MondrianOlap::Member.java_class) end |
#name ⇒ Object
294 295 296 |
# File 'lib/mondrian/olap/cube.rb', line 294 def name @name ||= @raw_member.getName end |
#property_formatted_value(name) ⇒ Object
377 378 379 380 381 |
# File 'lib/mondrian/olap/cube.rb', line 377 def property_formatted_value(name) if property = @raw_member.getProperties.get(name) @raw_member.getPropertyFormattedValue(property) end end |
#property_value(name) ⇒ Object
371 372 373 374 375 |
# File 'lib/mondrian/olap/cube.rb', line 371 def property_value(name) if property = @raw_member.getProperties.get(name) @raw_member.getPropertyValue(property) end end |
#visible? ⇒ Boolean
314 315 316 |
# File 'lib/mondrian/olap/cube.rb', line 314 def visible? @raw_member.isVisible end |