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.



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

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.



159
160
161
# File 'lib/mondrian/olap/cube.rb', line 159

def raw_hierarchy
  @raw_hierarchy
end

Instance Method Details

#all_memberObject



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

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

#all_member_nameObject



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

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

#annotationsObject



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

def annotations
  annotations_for(@raw_hierarchy)
end

#captionObject



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

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

#child_names(*parent_member_segment_names) ⇒ Object



209
210
211
212
213
214
215
216
217
218
219
# File 'lib/mondrian/olap/cube.rb', line 209

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



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

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

#has_all?Boolean

Returns:

  • (Boolean)


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

def has_all?
  @raw_hierarchy.hasAll
end

#level(name) ⇒ Object



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

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

#level_namesObject



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

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

#levelsObject



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

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

#nameObject



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

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

#root_member_full_namesObject



205
206
207
# File 'lib/mondrian/olap/cube.rb', line 205

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

#root_member_namesObject



201
202
203
# File 'lib/mondrian/olap/cube.rb', line 201

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

#root_membersObject



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

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

#visible?Boolean

Returns:

  • (Boolean)


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

def visible?
  @raw_hierarchy.isVisible
end