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 ⇒ 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
Returns a new instance of Member.
332 333 334 |
# File 'lib/mondrian/olap/cube.rb', line 332 def initialize(raw_member) @raw_member = raw_member end |
Instance Attribute Details
#raw_member ⇒ Object (readonly)
Returns the value of attribute raw_member.
336 337 338 |
# File 'lib/mondrian/olap/cube.rb', line 336 def raw_member @raw_member end |
Instance Method Details
#all_member? ⇒ Boolean
362 363 364 |
# File 'lib/mondrian/olap/cube.rb', line 362 def all_member? @raw_member.isAll end |
#annotations ⇒ Object
432 433 434 |
# File 'lib/mondrian/olap/cube.rb', line 432 def annotations annotations_for(@raw_member) end |
#calculated? ⇒ Boolean
350 351 352 |
# File 'lib/mondrian/olap/cube.rb', line 350 def calculated? @raw_member.isCalculated end |
#calculated_in_query? ⇒ Boolean
354 355 356 |
# File 'lib/mondrian/olap/cube.rb', line 354 def calculated_in_query? @raw_member.isCalculatedInQuery end |
#caption ⇒ Object
346 347 348 |
# File 'lib/mondrian/olap/cube.rb', line 346 def @caption ||= @raw_member.getCaption end |
#cell_formatter ⇒ Object
452 453 454 455 456 457 458 459 460 461 |
# File 'lib/mondrian/olap/cube.rb', line 452 def cell_formatter 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 f.value(value_formatter) end end end |
#cell_formatter_name ⇒ Object
446 447 448 449 450 |
# File 'lib/mondrian/olap/cube.rb', line 446 def cell_formatter_name if cf = cell_formatter cf.class.name.split('::').last.gsub(/Udf\z/, '') end end |
#children ⇒ Object
390 391 392 393 394 |
# File 'lib/mondrian/olap/cube.rb', line 390 def children Error.wrap_native_exception do @raw_member.getChildMembers.map{|m| Member.new(m)} end end |
#depth ⇒ Object
375 376 377 |
# File 'lib/mondrian/olap/cube.rb', line 375 def depth @raw_member.getDepth end |
#descendants_at_level(level) ⇒ Object
396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 |
# File 'lib/mondrian/olap/cube.rb', line 396 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
379 380 381 382 383 384 385 386 387 388 |
# File 'lib/mondrian/olap/cube.rb', line 379 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
366 367 368 369 370 371 372 373 |
# File 'lib/mondrian/olap/cube.rb', line 366 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
436 437 438 439 440 441 442 443 444 |
# File 'lib/mondrian/olap/cube.rb', line 436 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
342 343 344 |
# File 'lib/mondrian/olap/cube.rb', line 342 def full_name @full_name ||= @raw_member.getUniqueName end |
#mondrian_member ⇒ Object
427 428 429 |
# File 'lib/mondrian/olap/cube.rb', line 427 def mondrian_member @raw_member.unwrap(Java::MondrianOlap::Member.java_class) end |
#name ⇒ Object
338 339 340 |
# File 'lib/mondrian/olap/cube.rb', line 338 def name @name ||= @raw_member.getName end |
#property_formatted_value(name) ⇒ Object
421 422 423 424 425 |
# File 'lib/mondrian/olap/cube.rb', line 421 def property_formatted_value(name) if property = @raw_member.getProperties.get(name) @raw_member.getPropertyFormattedValue(property) end end |
#property_value(name) ⇒ Object
415 416 417 418 419 |
# File 'lib/mondrian/olap/cube.rb', line 415 def property_value(name) if property = @raw_member.getProperties.get(name) @raw_member.getPropertyValue(property) end end |
#visible? ⇒ Boolean
358 359 360 |
# File 'lib/mondrian/olap/cube.rb', line 358 def visible? @raw_member.isVisible end |