diff -r 87cfa131b535 -r e7e0ae78773e configurationengine/source/cone/carbon/resourcemapper.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/configurationengine/source/cone/carbon/resourcemapper.py Tue Aug 10 14:29:28 2010 +0300 @@ -0,0 +1,63 @@ +# +# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +# All rights reserved. +# This component and the accompanying materials are made available +# under the terms of "Eclipse Public License v1.0" +# which accompanies this distribution, and is available +# at the URL "http://www.eclipse.org/legal/epl-v10.html". +# +# Initial Contributors: +# Nokia Corporation - initial contribution. +# +# Contributors: +# +# Description: +# +## +# @author Teemu Rytkonen +import re +import logging + +class CarbonResourceMapper(object): + def __init__(self): + self.CARBON_RESOURCE_TYPE_MAP = {'configurationroot' : self.map_carbon_configurationroot, + 'configurationlayer' : self.map_carbon_configurationlayer, + 'featurelist' : self.map_carbon_featurelist} + self.CONFML_RESOURCE_TYPE_MAP = {'configurationroot' : self.map_confml_configurationroot, + 'configurationlayer' : self.map_confml_configurationlayer, + 'featurelist' : self.map_confml_featurelist} + + def map_carbon_resource(self, resourcepath): + for resourceext in self.CARBON_RESOURCE_TYPE_MAP: + if resourcepath.endswith(resourceext): + return self.CARBON_RESOURCE_TYPE_MAP[resourceext](resourcepath) + return resourcepath + + def map_confml_resource(self, resourcetype, resourcepath): + return self.CONFML_RESOURCE_TYPE_MAP[resourcetype](resourcepath) + + def map_carbon_configurationroot(self, resourcepath): + return resourcepath.replace('.configurationroot', '.confml') + + def map_carbon_configurationlayer(self, resourcepath): + return resourcepath.replace('.configurationlayer', '/root.confml') + + def map_carbon_featurelist(self, resourcepath): + return "featurelists/%s" % resourcepath.replace('.featurelist', '.confml') + + def map_confml_configurationroot(self, resourcepath): + return resourcepath.replace('.confml', '.configurationroot') + + def map_confml_configurationlayer(self, resourcepath): + return resourcepath.replace('/root.confml', '.configurationlayer') + + def map_confml_featurelist(self, resourcepath): + path = resourcepath.replace('featurelists/','').replace('.confml', '') + version_identifier = 'working' + m = re.match('^(.*) \((.*)\)', path) + # if the resourcepath does not have version information + # use default WORKING + if m: + path = m.group(1) + version_identifier = m.group(2) + return '%s (%s).featurelist' % (path, version_identifier)