/******************************************************************************* * Copyright (c) 2012 BMW Car IT and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html *******************************************************************************/ package org.jnario.feature.conversion; import org.eclipse.xtext.conversion.IValueConverter; import org.eclipse.xtext.conversion.ValueConverter; import org.jnario.conversion.JnarioValueConverterService; import com.google.inject.Singleton; @Singleton public class FeatureValueConverterService extends JnarioValueConverterService { private static final String GIVEN_RULE = "GIVEN_TEXT"; private static final String WHEN_RULE = "WHEN_TEXT"; private static final String THEN_RULE = "THEN_TEXT"; private static final String AND_RULE = "AND_TEXT"; private static final String BUT_RULE = "BUT_TEXT"; private FeatureValueConverter featureValueConverter = FeatureValueConverter.create("Feature:"); private FeatureValueConverter givenValueConverter = FeatureValueConverter.create("Given "); private FeatureValueConverter whenValueConverter = FeatureValueConverter.create("When "); private FeatureValueConverter thenValueConverter = FeatureValueConverter.create("Then "); private FeatureValueConverter andValueConverter = FeatureValueConverter.create("And "); private FeatureValueConverter butValueConverter = FeatureValueConverter.create("But "); // public String toString(Object value, String lexerRule) { if(lexerRule.startsWith(GIVEN_RULE)){ return "Given " + value.toString(); } if(lexerRule.startsWith(WHEN_RULE)){ return "When " + value.toString(); } if(lexerRule.startsWith(THEN_RULE)){ return "Then " + value.toString(); } if(lexerRule.startsWith(AND_RULE)){ return "And " + value.toString(); } if(lexerRule.startsWith(BUT_RULE)){ return "But " + value.toString(); } return super.toString(value, lexerRule); } @ValueConverter(rule = "FEATURE_TEXT") public IValueConverter<String> getFeatureConverter() { return featureValueConverter; } // @ValueConverter(rule = "BACKGROUND_TEXT") // public IValueConverter<String> geBackgroundConverter() { // return backgroundValueConverter; // } // // @ValueConverter(rule = "SCENARIO_TEXT") // public IValueConverter<String> getScenarioConverter() { // return scenarioValueConverter; // } // @ValueConverter(rule = GIVEN_RULE) public IValueConverter<String> getGivenConverter() { return givenValueConverter; } @ValueConverter(rule = WHEN_RULE) public IValueConverter<String> getWhenConverter() { return whenValueConverter; } @ValueConverter(rule = THEN_RULE) public IValueConverter<String> getThenConverter() { return thenValueConverter; } @ValueConverter(rule = AND_RULE) public IValueConverter<String> getAndConverter() { return andValueConverter; } @ValueConverter(rule = BUT_RULE) public IValueConverter<String> getButConverter() { return butValueConverter; } }