This class provides objects that represent PropertyTreeNode objects that were adopted (directly or indirectly) in their new parental context. Such objects are used as elements of a PropertyList which can only hold each PropertyTreeNode objects once. By using this class, we can add such objects more than once, each time with a new parental context that was created by an adoption.
# File lib/taskjuggler/PTNProxy.rb, line 71 def [](attribute, scenarioIdx) if attribute == 'index' @index elsif attribute == 'tree' @tree else @ptn[attribute, scenarioIdx] end end
# File lib/taskjuggler/PTNProxy.rb, line 61 def get(attribute) if attribute == 'index' @index elsif attribute == 'tree' @tree else @ptn.get(attribute) end end
Return the ‘index’ attributes of this property, prefixed by the ‘index’ attributes of all its parents. The result is an Array of Fixnums.
# File lib/taskjuggler/PTNProxy.rb, line 106 def getIndicies idcs = [] p = self begin parent = p.parent idcs.insert(0, p.get('index')) p = parent end while p idcs end
Find out if this property is a direct or indirect child of ancestor.
# File lib/taskjuggler/PTNProxy.rb, line 96 def isChildOf?(ancestor) parent = self while parent = parent.parent return true if (parent == ancestor) end false end
# File lib/taskjuggler/PTNProxy.rb, line 127 def is_a?(type) @ptn.is_a?(type) end
Returns the level that this property is on. Top-level properties return 0, their children 1 and so on. This value is cached internally, so it does not have to be calculated each time the function is called.
# File lib/taskjuggler/PTNProxy.rb, line 84 def level return @level if @level >= 0 t = self @level = 0 until (t = t.parent).nil? @level += 1 end @level end
Return the logical ID of this node respesting adoptions. For PropertySet objects with a flat namespace, this is just the ID. Otherwise, the logical ID is composed of all IDs from the root node to this node, separating the IDs by a dot. In contrast to PropertyTreeNode::fullId() the logicalId takes the aption path into account.
# File lib/taskjuggler/PTNProxy.rb, line 38 def logicalId if @ptn.propertySet.flatNamespace @ptn.id else if (dotPos = @ptn.id.rindex('.')) id = @ptn.id[(dotPos + 1)..-1] else id = @ptn.id end @parent.logicalId + '.' + id end end
# File lib/taskjuggler/PTNProxy.rb, line 117 def method_missing(func, *args, &block) @ptn.send(func, *args, &block) end
# File lib/taskjuggler/PTNProxy.rb, line 123 def respond_to?(method) respond_to_?(method) || @ptn.respond_to?(method) end
Generated with the Darkfish Rdoc Generator 2.