configurationengine/source/plugins/symbian/ConeImagePlugin/imageplugin/imageml.py
author m2lahtel
Tue, 10 Aug 2010 14:29:28 +0300
changeset 3 e7e0ae78773e
parent 0 2e8eeb919028
permissions -rw-r--r--
ConE 1.2.11 release
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     1
#
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     2
# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     3
# All rights reserved.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     4
# This component and the accompanying materials are made available
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     5
# under the terms of "Eclipse Public License v1.0"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     6
# which accompanies this distribution, and is available
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     7
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     8
#
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     9
# Initial Contributors:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    10
# Nokia Corporation - initial contribution.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    11
#
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    12
# Contributors:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    13
#
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    14
# Description: 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    15
#
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    16
'''
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    17
A plugin implementation for image selection from ConfigurationLayers.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    18
'''
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    19
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    20
import os
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    21
import logging
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    22
import pkg_resources
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    23
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    24
try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    25
    from cElementTree import ElementTree
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    26
except ImportError:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    27
    try:    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    28
        from elementtree import ElementTree
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    29
    except ImportError:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    30
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    31
            from xml.etree import cElementTree as ElementTree
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    32
        except ImportError:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    33
            from xml.etree import ElementTree
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    34
            
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    35
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    36
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    37
from cone.public import exceptions,plugin,utils,api
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    38
from imageplugin.generators import OutputGenerator,InputFile,InputDir,InvalidInputFileException
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    39
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    40
class ImageImpl(plugin.ImplBase):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    41
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    42
    ContentImpl plugin finds all image resources from each layer and copies
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    43
    them to the output correctly. It follows the Configuration project override
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    44
    rules, so that the topmost layer files override files on the previous layers.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    45
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    46
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    47
    IMPL_TYPE_ID = "imageml"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    48
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    49
    def __init__(self,ref,configuration):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    50
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    51
        Overloading the default constructor
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    52
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    53
        plugin.ImplBase.__init__(self,ref,configuration)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    54
        self.include = {}
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    55
        self.exclude = {}
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    56
        self.input = ""
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    57
        self.desc = ""
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    58
        self.output_file = ""
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    59
        self.logger = logging.getLogger('cone.imageml(%s)' % self.ref)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    60
        self.errors = False
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    61
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    62
    def get_include_pattern(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    63
        include_pattern = ""
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    64
        if self.include.has_key('pattern'): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    65
            include_pattern = self.include['pattern'][0] 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    66
        return include_pattern
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    67
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    68
    def get_exclude_pattern(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    69
        exclude_pattern = ""
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    70
        if self.exclude.has_key('pattern'): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    71
            exclude_pattern = self.exclude['pattern'][0] 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    72
        return exclude_pattern
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    73
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    74
    def list_output_files(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    75
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    76
        Return a list of output files as an array. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    77
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    78
        return []
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    79
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    80
    def generate(self, context=None):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    81
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    82
        Generate the given implementation.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    83
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    84
        self.logger.info('Generating')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    85
        ret = True
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    86
        for generator in self.generators:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    87
            self.logger.info(generator)
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    88
            generator.subpath =  os.path.join(context.output,self.output)
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    89
            try:
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    90
                ret = generator.generate(context) and ret
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    91
                outfile = generator.get_outputpath()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    92
                context.add_file(outfile, implementation=self)
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    93
            except InvalidInputFileException, e:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    94
                self.logger.error(e)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    95
        return ret
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    96
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    97
    def generate_layers(self,layers):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    98
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    99
        Generate the given Configuration layers.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   100
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   101
        return self.generate()
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   102
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   103
    def get_refs(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   104
        refs = []
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   105
        for generator in self.generators:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   106
            refs.extend(generator.get_refs())
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   107
        if refs:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   108
            return utils.distinct_array(refs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   109
        else:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   110
            return None
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   111
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   112
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   113
class ImageImplReader(plugin.ReaderBase):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   114
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   115
    Parses a single imageml implml file
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   116
    """ 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   117
    NAMESPACE = 'http://www.s60.com/xml/imageml/1'
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   118
    NAMESPACE_ID = 'imageml'
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   119
    ROOT_ELEMENT_NAME = 'imageml'
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   120
    FILE_EXTENSIONS = ['imageml']
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   121
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   122
    INCLUDE_ATTR = ['pattern']
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   123
    EXCLUDE_ATTR = ['pattern']
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   124
    def __init__(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   125
        self.desc = None
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   126
        self.output = None
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   127
        self.input_dir = None
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   128
        self.include = None
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   129
        self.exclude = None
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   130
        self.namespaces = [self.NAMESPACE]
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   131
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   132
    @classmethod
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   133
    def read_impl(cls, resource_ref, configuration, etree):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   134
        reader = ImageImplReader()
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   135
        reader.desc = reader.parse_desc(etree)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   136
        reader.outputgenerators = reader.parse_outputs(etree)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   137
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   138
        impl = ImageImpl(resource_ref, configuration)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   139
        impl.desc = reader.desc
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   140
        impl.generators = reader.outputgenerators
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   141
        for generator in impl.generators:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   142
            generator.configuration = configuration
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   143
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   144
        return impl
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   145
    
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   146
    @classmethod
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   147
    def get_schema_data(cls):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   148
        return pkg_resources.resource_string('imageplugin', 'xsd/imageml.xsd')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   149
    
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   150
    def fromstring(self, xml_as_string):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   151
        etree = ElementTree.fromstring(xml_as_string)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   152
        self.desc = self.parse_desc(etree)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   153
        self.outputgenerators = self.parse_outputs(etree)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   154
        return
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   155
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   156
    def parse_desc(self,etree):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   157
        desc = ""
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   158
        desc_elem = etree.find("{%s}desc" % self.namespaces[0])
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   159
        if desc_elem != None:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   160
            desc = desc_elem.text
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   161
        return desc
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   162
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   163
    def parse_input_include(self,etree):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   164
        include_elem = etree.findall("{%s}include" % self.namespaces[0])
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   165
        include = {}
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   166
        for f in include_elem:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   167
            for key in self.INCLUDE_ATTR:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   168
                # Add the attribute if it is found to include dict
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   169
                include[key] = []
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   170
                attr = f.get(key)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   171
                if attr: include[key].append((attr))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   172
        return include
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   173
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   174
    def parse_input_exclude(self,etree):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   175
        elem = etree.findall("{%s}exclude" % self.namespaces[0])
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   176
        exclude = {}
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   177
        for f in elem:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   178
            for key in self.EXCLUDE_ATTR:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   179
                # Add the attribute if it is found
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   180
                exclude[key] = []
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   181
                attr = f.get(key)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   182
                if attr: exclude[key].append((attr))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   183
        return exclude
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   184
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   185
    def parse_inputs(self,etree):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   186
        inputs = etree.findall("{%s}input" % self.namespaces[0])
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   187
        inputlist = []
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   188
        for input_elem in inputs:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   189
            if input_elem.get('dir'):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   190
                inputdir = InputDir(input_elem.get('dir'),**input_elem.attrib)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   191
                inputdir.include = self.parse_input_include(input_elem)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   192
                inputdir.exclude = self.parse_input_exclude(input_elem)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   193
                inputlist.append(inputdir)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   194
            elif input_elem.get('file'):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   195
                inputlist.append(InputFile(input_elem.get('file'),**input_elem.attrib))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   196
        return inputlist
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   197
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   198
    def parse_outputs(self,etree):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   199
        outputs = etree.findall("{%s}output" % self.namespaces[0])
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   200
        outputpath = ""
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   201
        outputgenerators = []
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   202
        for output_elem in outputs:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   203
            if output_elem.get('file'):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   204
                outputpath = output_elem.get('file')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   205
            generator = OutputGenerator(outputpath,**output_elem.attrib)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   206
            generator.inputs = self.parse_inputs(output_elem)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   207
            outputgenerators.append(generator)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   208
        return outputgenerators
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   209