Class: Mondrian::OLAP::Hierarchy

Inherits:
Object
  • Object
show all
Includes:
Annotated
Defined in:
lib/mondrian/olap/cube.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(dimension, raw_hierarchy) ⇒ Hierarchy

Returns a new instance of Hierarchy.



184
185
186
187
# File 'lib/mondrian/olap/cube.rb', line 184

def initialize(dimension, raw_hierarchy)
  @dimension = dimension
  @raw_hierarchy = raw_hierarchy
end

Instance Attribute Details

#dimensionObject (readonly)

Returns the value of attribute dimension.



189
190
191
# File 'lib/mondrian/olap/cube.rb', line 189

def dimension
  @dimension
end

#raw_hierarchyObject (readonly)

Returns the value of attribute raw_hierarchy.



189
190
191
# File 'lib/mondrian/olap/cube.rb', line 189

def raw_hierarchy
  @raw_hierarchy
end

Instance Method Details

#all_memberObject



227
228
229
# File 'lib/mondrian/olap/cube.rb', line 227

def all_member
  has_all? ? Member.new(@raw_hierarchy.getRootMembers.first) : nil
end

#all_member_nameObject



223
224
225
# File 'lib/mondrian/olap/cube.rb', line 223

def all_member_name
  has_all? ? @raw_hierarchy.getRootMembers.first.getName : nil
end

#annotationsObject



256
257
258
# File 'lib/mondrian/olap/cube.rb', line 256

def annotations
  annotations_for(@raw_hierarchy)
end

#captionObject



199
200
201
# File 'lib/mondrian/olap/cube.rb', line 199

def caption
  @caption ||= @raw_hierarchy.getCaption
end

#child_names(*parent_member_segment_names) ⇒ Object



243
244
245
246
247
248
249
250
251
252
253
# File 'lib/mondrian/olap/cube.rb', line 243

def child_names(*parent_member_segment_names)
  Error.wrap_native_exception do
    parent_member = if parent_member_segment_names.empty?
      return root_member_names unless has_all?
      all_member
    else
      @dimension.cube.member_by_segments(*parent_member_segment_names)
    end
    parent_member && parent_member.children.map{|m| m.name}
  end
end

#descriptionObject



195
196
197
# File 'lib/mondrian/olap/cube.rb', line 195

def description
  @description ||= @raw_hierarchy.getDescription
end

#dimension_nameObject



203
204
205
# File 'lib/mondrian/olap/cube.rb', line 203

def dimension_name
  @dimension.name
end

#has_all?Boolean

Returns:

  • (Boolean)


219
220
221
# File 'lib/mondrian/olap/cube.rb', line 219

def has_all?
  @raw_hierarchy.hasAll
end

#level(name) ⇒ Object



211
212
213
# File 'lib/mondrian/olap/cube.rb', line 211

def level(name)
  levels.detect{|l| l.name == name}
end

#level_namesObject



215
216
217
# File 'lib/mondrian/olap/cube.rb', line 215

def level_names
  levels.map{|l| l.name}
end

#levelsObject



207
208
209
# File 'lib/mondrian/olap/cube.rb', line 207

def levels
  @levels = @raw_hierarchy.getLevels.map{|l| Level.new(self, l)}
end

#nameObject



191
192
193
# File 'lib/mondrian/olap/cube.rb', line 191

def name
  @name ||= @raw_hierarchy.getName
end

#root_member_full_namesObject



239
240
241
# File 'lib/mondrian/olap/cube.rb', line 239

def root_member_full_names
  @raw_hierarchy.getRootMembers.map{|m| m.getUniqueName}
end

#root_member_namesObject



235
236
237
# File 'lib/mondrian/olap/cube.rb', line 235

def root_member_names
  @raw_hierarchy.getRootMembers.map{|m| m.getName}
end

#root_membersObject



231
232
233
# File 'lib/mondrian/olap/cube.rb', line 231

def root_members
  @raw_hierarchy.getRootMembers.map{|m| Member.new(m)}
end

#visible?Boolean

Returns:

  • (Boolean)


260
261
262
# File 'lib/mondrian/olap/cube.rb', line 260

def visible?
  @raw_hierarchy.isVisible
end