Last change
on this file since 405 was 405, checked in by KOBAYASHI, Shinji, 14 years ago |
start serializer implementation
|
File size:
976 bytes
|
Rev | Line | |
---|
[405] | 1 | require 'rexml/document'
|
---|
| 2 |
|
---|
[404] | 3 | module OpenEHR
|
---|
[405] | 4 | module Serializer
|
---|
| 5 | class BaseSerializer
|
---|
| 6 | def initialize(archetype)
|
---|
| 7 | @archetype = archetype
|
---|
| 8 | end
|
---|
[404] | 9 |
|
---|
[405] | 10 | def serialize
|
---|
| 11 | return self.merge
|
---|
| 12 | end
|
---|
| 13 | end
|
---|
[404] | 14 |
|
---|
[405] | 15 | class ADLSerializer < BaseSerializer
|
---|
| 16 | def description
|
---|
| 17 | return <<HERE
|
---|
| 18 | archetype (adl_version = #{@archetype.adl_version})
|
---|
| 19 | #{@archetype.archetype_id.value}
|
---|
| 20 | HERE
|
---|
| 21 | end
|
---|
| 22 |
|
---|
| 23 | def definition
|
---|
| 24 | end
|
---|
| 25 |
|
---|
| 26 | def ontology
|
---|
| 27 | end
|
---|
| 28 |
|
---|
| 29 | def envelope
|
---|
| 30 | end
|
---|
| 31 |
|
---|
| 32 | def merge
|
---|
| 33 | return description + definition + ontology
|
---|
| 34 | end
|
---|
| 35 | end
|
---|
| 36 |
|
---|
| 37 | class XMLSerializer < BaseSerializer
|
---|
| 38 | def description
|
---|
| 39 | desc = REXML::Element.new('archetype_id').
|
---|
| 40 | add_text(@archetype.archetype_id.value)
|
---|
| 41 | return desc
|
---|
| 42 | end
|
---|
| 43 | end
|
---|
[404] | 44 | end
|
---|
[405] | 45 | end
|
---|
[404] | 46 |
|
---|
[405] | 47 | class Publisher
|
---|
| 48 | def initialize(serializer)
|
---|
| 49 | @serializer = serializer
|
---|
| 50 | end
|
---|
[404] | 51 |
|
---|
[405] | 52 | def publish(writer)
|
---|
| 53 | writer.out(@serializer.serialize)
|
---|
[404] | 54 | end
|
---|
| 55 | end
|
---|
[405] | 56 |
|
---|
| 57 | class Writer
|
---|
| 58 | end
|
---|
Note:
See
TracBrowser
for help on using the repository browser.