Class: Parser::XMLOutputFormat

Inherits:
OutputFormat show all
Defined in:
lib/kuniri/parser/xml_output_format.rb

Instance Attribute Summary

Attributes inherited from OutputFormat

#extension, #outputEngine, #parserPath

Instance Method Summary collapse

Methods inherited from OutputFormat

#create_all_data, #set_path

Constructor Details

#initialize(pPath = "outputKuniri/") ⇒ XMLOutputFormat

Returns a new instance of XMLOutputFormat.



10
11
12
13
# File 'lib/kuniri/parser/xml_output_format.rb', line 10

def initialize(pPath = "outputKuniri/")
  @outputEngine = XMLBuilderEngine.new
  set_path(pPath)
end

Instance Method Details

#aggregation_generate(pAggregation) ⇒ Object



133
134
135
136
137
# File 'lib/kuniri/parser/xml_output_format.rb', line 133

def aggregation_generate(pAggregation)
  pAggregation.each do |aggregation|
    @outputEngine.aggregationData :name => aggregation.name
  end
end

#attribute_generate(pAttribute) ⇒ Object

See Also:



80
81
82
83
84
85
# File 'lib/kuniri/parser/xml_output_format.rb', line 80

def attribute_generate(pAttribute)
  pAttribute.each do |singleAttribute|
    @outputEngine.attributeData :name => singleAttribute.name,
                                :visibility => singleAttribute.visibility
  end
end

#basic_structure_generate(pBasicStructure) ⇒ Object

See Also:



110
111
112
# File 'lib/kuniri/parser/xml_output_format.rb', line 110

def basic_structure_generate(pBasicStructure)
  simple_element(pBasicStructure)
end

#class_generate(pClass) ⇒ Object

See Also:



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/kuniri/parser/xml_output_format.rb', line 16

def class_generate(pClass)
  # We use it because of the block below.
  wrapper = self
  pClass.each do |singleClass|
    @outputEngine.classData :name => singleClass.name,
                            :visibility => singleClass.visibility do
      wrapper.comment_generate(singleClass)

      unless singleClass.aggregations.empty?
        wrapper.aggregation_generate(singleClass.aggregations)
      end
      singleClass.inheritances.each do |singleInheritance|
        wrapper.inheritance_generate(singleInheritance)
      end
      unless singleClass.attributes.empty?
        wrapper.attribute_generate(singleClass.attributes)
      end
      singleClass.constructors.each do |singleConstructor|
        wrapper.function_behaviour_generate("constructorData",
                                            singleConstructor)
      end
      singleClass.methods.each do |singleMethod|
        wrapper.function_behaviour_generate("methodData" , singleMethod)
      end
    end
  end
end

#comment_generate(pElement) ⇒ Object



127
128
129
130
131
# File 'lib/kuniri/parser/xml_output_format.rb', line 127

def comment_generate(pElement)
  if pElement.comments != ""
    @outputEngine.commentData :text => pElement.comments.gsub('"', "'")
  end
end

#extern_requirement_generate(pRequirement) ⇒ Object

See Also:



95
96
97
98
99
100
# File 'lib/kuniri/parser/xml_output_format.rb', line 95

def extern_requirement_generate(pRequirement)
  pRequirement.each do |externRequirement|
    @outputEngine.externRequirementData :name =>
        externRequirement.library
  end
end

#function_behaviour_generate(pElementName, pFunction) ⇒ Object

See Also:



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/kuniri/parser/xml_output_format.rb', line 45

def function_behaviour_generate(pElementName, pFunction)
  wrapper = self
  @outputEngine.send(pElementName, {:name => pFunction.name,
                                :visibility => pFunction.visibility}) do
    wrapper.comment_generate(pFunction)

    pFunction.parameters.each do |parameter|
      wrapper.parameters_generate(parameter)
    end
    unless pFunction.managerCondAndLoop.basicStructure.empty?
      wrapper.basic_structure_generate(
                            pFunction.managerCondAndLoop.basicStructure)
    end
  end
end

#global_variable_generate(pGlobalVariable) ⇒ Object

See Also:



73
74
75
76
77
# File 'lib/kuniri/parser/xml_output_format.rb', line 73

def global_variable_generate(pGlobalVariable)
  pGlobalVariable.each do |globalVar|
    @outputEngine.globalVariableData :name => globalVar.name
  end
end

#inheritance_generate(pInheritances) ⇒ Object

See Also:



88
89
90
91
92
# File 'lib/kuniri/parser/xml_output_format.rb', line 88

def inheritance_generate(pInheritances)
  pInheritances.each do |singleInheritance|
    @outputEngine.inheritanceData :name => singleInheritance
  end
end

#module_generate(pModule) ⇒ Object

See Also:



103
104
105
106
107
# File 'lib/kuniri/parser/xml_output_format.rb', line 103

def module_generate(pModule)
  pModule.each do |singleModule|
    @outputEngine.moduleData :name => singleModule.name
  end
end

#parameters_generate(pParameters) ⇒ Object

See Also:



62
63
64
65
66
67
68
69
70
# File 'lib/kuniri/parser/xml_output_format.rb', line 62

def parameters_generate(pParameters)
  if pParameters.is_a?Hash
    pParameters.each do |nameParam, value|
      @outputEngine.parameterData :name => "#{nameParam}=#{value}"
    end
  elsif pParameters.is_a?String
    @outputEngine.parameterData :name => pParameters
  end
end

#simple_element(pElement) ⇒ Object



114
115
116
117
118
119
120
121
122
123
124
125
# File 'lib/kuniri/parser/xml_output_format.rb', line 114

def simple_element(pElement)
  pElement.each do |element|
    if element.type == Languages::ELSE_LABEL
      @outputEngine.send(element.type.downcase,
                        {:level => element.level})
    else
      @outputEngine.send(element.type.downcase,
                        {:expression => element.expression,
                         :level => element.level})
    end
  end
end