configurationengine/source/plugins/symbian/ConeImagePlugin/imageplugin/imageml.py
changeset 3 e7e0ae78773e
parent 0 2e8eeb919028
equal deleted inserted replaced
2:87cfa131b535 3:e7e0ae78773e
    15 #
    15 #
    16 '''
    16 '''
    17 A plugin implementation for image selection from ConfigurationLayers.
    17 A plugin implementation for image selection from ConfigurationLayers.
    18 '''
    18 '''
    19 
    19 
    20 
       
    21 import re
       
    22 import os
    20 import os
    23 import sys
       
    24 import logging
    21 import logging
    25 import shutil
    22 import pkg_resources
    26 import xml.parsers.expat
       
    27 
    23 
    28 try:
    24 try:
    29     from cElementTree import ElementTree
    25     from cElementTree import ElementTree
    30 except ImportError:
    26 except ImportError:
    31     try:    
    27     try:    
    34         try:
    30         try:
    35             from xml.etree import cElementTree as ElementTree
    31             from xml.etree import cElementTree as ElementTree
    36         except ImportError:
    32         except ImportError:
    37             from xml.etree import ElementTree
    33             from xml.etree import ElementTree
    38             
    34             
    39 import __init__
    35 
    40 
    36 
    41 from cone.public import exceptions,plugin,utils,api
    37 from cone.public import exceptions,plugin,utils,api
    42 from imageplugin.generators import OutputGenerator,InputFile,InputDir,InvalidInputFileException
    38 from imageplugin.generators import OutputGenerator,InputFile,InputDir,InvalidInputFileException
    43 
    39 
    44 class ImageImpl(plugin.ImplBase):
    40 class ImageImpl(plugin.ImplBase):
    87         """
    83         """
    88         self.logger.info('Generating')
    84         self.logger.info('Generating')
    89         ret = True
    85         ret = True
    90         for generator in self.generators:
    86         for generator in self.generators:
    91             self.logger.info(generator)
    87             self.logger.info(generator)
    92             generator.subpath =  self.output
    88             generator.subpath =  os.path.join(context.output,self.output)
    93             try:
    89             try:
    94                 ret = generator.generate() and ret
    90                 ret = generator.generate(context) and ret
       
    91                 outfile = generator.get_outputpath()
       
    92                 context.add_file(outfile, implementation=self)
    95             except InvalidInputFileException, e:
    93             except InvalidInputFileException, e:
    96                 self.logger.error(e)
    94                 self.logger.error(e)
    97         return ret
    95         return ret
    98     
    96     
    99     def generate_layers(self,layers):
    97     def generate_layers(self,layers):
   115 class ImageImplReader(plugin.ReaderBase):
   113 class ImageImplReader(plugin.ReaderBase):
   116     """
   114     """
   117     Parses a single imageml implml file
   115     Parses a single imageml implml file
   118     """ 
   116     """ 
   119     NAMESPACE = 'http://www.s60.com/xml/imageml/1'
   117     NAMESPACE = 'http://www.s60.com/xml/imageml/1'
       
   118     NAMESPACE_ID = 'imageml'
       
   119     ROOT_ELEMENT_NAME = 'imageml'
   120     FILE_EXTENSIONS = ['imageml']
   120     FILE_EXTENSIONS = ['imageml']
   121     
   121     
   122     INCLUDE_ATTR = ['pattern']
   122     INCLUDE_ATTR = ['pattern']
   123     EXCLUDE_ATTR = ['pattern']
   123     EXCLUDE_ATTR = ['pattern']
   124     def __init__(self):
   124     def __init__(self):
   140         impl.generators = reader.outputgenerators
   140         impl.generators = reader.outputgenerators
   141         for generator in impl.generators:
   141         for generator in impl.generators:
   142             generator.configuration = configuration
   142             generator.configuration = configuration
   143         
   143         
   144         return impl
   144         return impl
   145 
   145     
       
   146     @classmethod
       
   147     def get_schema_data(cls):
       
   148         return pkg_resources.resource_string('imageplugin', 'xsd/imageml.xsd')
       
   149     
   146     def fromstring(self, xml_as_string):
   150     def fromstring(self, xml_as_string):
   147         etree = ElementTree.fromstring(xml_as_string)
   151         etree = ElementTree.fromstring(xml_as_string)
   148         self.desc = self.parse_desc(etree)
   152         self.desc = self.parse_desc(etree)
   149         self.outputgenerators = self.parse_outputs(etree)
   153         self.outputgenerators = self.parse_outputs(etree)
   150         return
   154         return