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.
- #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.
282 283 284 |
# File 'lib/mondrian/olap/cube.rb', line 282 def initialize(raw_member) @raw_member = raw_member end |
Instance Attribute Details
#raw_member ⇒ Object (readonly)
Returns the value of attribute raw_member.
286 287 288 |
# File 'lib/mondrian/olap/cube.rb', line 286 def raw_member @raw_member end |
Instance Method Details
#all_member? ⇒ Boolean
312 313 314 |
# File 'lib/mondrian/olap/cube.rb', line 312 def all_member? @raw_member.isAll end |
#annotations ⇒ Object
378 379 380 |
# File 'lib/mondrian/olap/cube.rb', line 378 def annotations annotations_for(@raw_member) end |
#calculated? ⇒ Boolean
300 301 302 |
# File 'lib/mondrian/olap/cube.rb', line 300 def calculated? @raw_member.isCalculated end |
#calculated_in_query? ⇒ Boolean
304 305 306 |
# File 'lib/mondrian/olap/cube.rb', line 304 def calculated_in_query? @raw_member.isCalculatedInQuery end |
#caption ⇒ Object
296 297 298 |
# File 'lib/mondrian/olap/cube.rb', line 296 def @caption ||= @raw_member.getCaption end |
#cell_formatter_name ⇒ Object
392 393 394 395 396 397 398 399 400 401 402 |
# File 'lib/mondrian/olap/cube.rb', line 392 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
340 341 342 343 344 |
# File 'lib/mondrian/olap/cube.rb', line 340 def children Error.wrap_native_exception do @raw_member.getChildMembers.map{|m| Member.new(m)} end end |
#depth ⇒ Object
325 326 327 |
# File 'lib/mondrian/olap/cube.rb', line 325 def depth @raw_member.getDepth end |
#descendants_at_level(level) ⇒ Object
346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 |
# File 'lib/mondrian/olap/cube.rb', line 346 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
329 330 331 332 333 334 335 336 337 338 |
# File 'lib/mondrian/olap/cube.rb', line 329 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
316 317 318 319 320 321 322 323 |
# File 'lib/mondrian/olap/cube.rb', line 316 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
382 383 384 385 386 387 388 389 390 |
# File 'lib/mondrian/olap/cube.rb', line 382 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
292 293 294 |
# File 'lib/mondrian/olap/cube.rb', line 292 def full_name @full_name ||= @raw_member.getUniqueName end |
#name ⇒ Object
288 289 290 |
# File 'lib/mondrian/olap/cube.rb', line 288 def name @name ||= @raw_member.getName end |
#property_formatted_value(name) ⇒ Object
371 372 373 374 375 |
# File 'lib/mondrian/olap/cube.rb', line 371 def property_formatted_value(name) if property = @raw_member.getProperties.get(name) @raw_member.getPropertyFormattedValue(property) end end |
#property_value(name) ⇒ Object
365 366 367 368 369 |
# File 'lib/mondrian/olap/cube.rb', line 365 def property_value(name) if property = @raw_member.getProperties.get(name) @raw_member.getPropertyValue(property) end end |
#visible? ⇒ Boolean
308 309 310 |
# File 'lib/mondrian/olap/cube.rb', line 308 def visible? @raw_member.isVisible end |