class TaskJuggler::AttributeDefinition

The AttributeDefinition describes the meta information of a PropertyTreeNode attribute. It contains various information about the attribute. Based on these bits of information, the PropertySet objects generate the attribute lists for each PropertyTreeNode upon creation of the node.

Attributes

default[R]
id[R]
inheritedFromParent[R]
inheritedFromProject[R]
name[R]
objClass[R]
scenarioSpecific[R]
userDefined[R]

Public Class Methods

new(id, name, objClass, inheritedFromParent, inheritedFromProject, scenarioSpecific, default, userDefined = false) click to toggle source

Create a new AttributeDefinition. id is the ID of the attribute. It must be unique within the PropertySet where it is used. name is a more descriptive text that will be used in report columns and the like. objClass is a reference to the class (not the object itself) of the attribute. The possible classes all have names ending in Attribute. inheritedFromParent is a boolean flag that needs to be true if the node can inherit the setting from the attribute of the parent node. inheritedFromProject is a boolen flag that needs to be true if the node can inherit the setting from an attribute in the global scope. scenarioSpecific is a boolean flag that is set to true if the attribute can have different values for each scenario. default is the default value that is set upon creation of the attribute.

# File lib/taskjuggler/AttributeDefinition.rb, line 35
def initialize(id, name, objClass, inheritedFromParent, inheritedFromProject,
               scenarioSpecific, default, userDefined = false)
  @id = id
  @name = name
  @objClass = objClass
  @inheritedFromParent = inheritedFromParent
  @inheritedFromProject = inheritedFromProject
  @scenarioSpecific = scenarioSpecific
  @default = default
  @userDefined = userDefined
  # Prevent objects from being deep copied.
  freeze
end