1 # $Id: physical.rb,v 1.1 2011/12/02 01:46:54 machan Exp $
2
3 require 'stringio'
4
5 require 'tmdoc/tmstd'
6 require 'tmdoc/tmstd/treeable'
7 require 'tmdoc/constant'
8 require 'tmdoc/model/abstraction'
9
10
11 module TmDoc
12
13 module Model::Core
14
15 module Physical
16
17 module Abstraction
18
19 class Source < Model::Abstraction::Subject::PhysicalSubject; end
20
21
22
23 class SetOfSource < Model::Abstraction::Subject::SetOfPhysicalSubject
24 LSM_ELEMENT_CLASS = Source
25 end
26
27 end # TmDoc::Model::Core::Physical::Abstraction
28
29
30
31 class File < Abstraction::Source
32 attr_reader :a_toplevel_module
33
34
35 def initialize(name, seq_num, a_toplevel_module)
36 ASSERT.kind_of name, String
37 ASSERT.kind_of seq_num, Integer
38 ASSERT.kind_of a_toplevel_module, MCLN::ToplevelModule
39
40 super(name, seq_num)
41
42 @a_toplevel_module = a_toplevel_module
43 end
44
45
46 def to_s
47 str = super('file')
48
49 ASSERT.kind_of str, String
50 end
51
52
53 def print(indent)
54 ASSERT.kind_of indent, Integer
55
56 super(indent)
57
58 str_io = StringIO.new
59 self.a_toplevel_module.print_tree str_io
60 LOG::Debug.log str_io.string
61 LOG::Debug.log
62
63 nil
64 end
65 end
66
67
68
69 class SetOfFile < Abstraction::SetOfSource
70 LSM_ELEMENT_CLASS = File
71 end
72
73 end # TmDoc::Model::Core::Physical
74
75 end # TmDoc::Model::Core
76
77 end # TmDoc