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.



146
147
148
149
# File 'lib/mondrian/olap/cube.rb', line 146

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

Instance Attribute Details

#raw_hierarchyObject (readonly)

Returns the value of attribute raw_hierarchy.



151
152
153
# File 'lib/mondrian/olap/cube.rb', line 151

def raw_hierarchy
  @raw_hierarchy
end

Instance Method Details

#all_memberObject



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

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

#all_member_nameObject



181
182
183
# File 'lib/mondrian/olap/cube.rb', line 181

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

#annotationsObject



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

def annotations
  annotations_for(@raw_hierarchy)
end

#captionObject



161
162
163
# File 'lib/mondrian/olap/cube.rb', line 161

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

#child_names(*parent_member_segment_names) ⇒ Object



201
202
203
204
205
206
207
208
209
210
211
# File 'lib/mondrian/olap/cube.rb', line 201

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



157
158
159
# File 'lib/mondrian/olap/cube.rb', line 157

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

#has_all?Boolean

Returns:

  • (Boolean)


177
178
179
# File 'lib/mondrian/olap/cube.rb', line 177

def has_all?
  @raw_hierarchy.hasAll
end

#level(name) ⇒ Object



169
170
171
# File 'lib/mondrian/olap/cube.rb', line 169

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

#level_namesObject



173
174
175
# File 'lib/mondrian/olap/cube.rb', line 173

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

#levelsObject



165
166
167
# File 'lib/mondrian/olap/cube.rb', line 165

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

#nameObject



153
154
155
# File 'lib/mondrian/olap/cube.rb', line 153

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

#root_member_full_namesObject



197
198
199
# File 'lib/mondrian/olap/cube.rb', line 197

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

#root_member_namesObject



193
194
195
# File 'lib/mondrian/olap/cube.rb', line 193

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

#root_membersObject



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

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

#visible?Boolean

Returns:

  • (Boolean)


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

def visible?
  @raw_hierarchy.isVisible
end