package com.robotoworks.mechanoid.sharedprefs.generator; import org.eclipse.xtext.util.Strings; import com.robotoworks.mechanoid.sharedprefs.sharedPreferencesModel.BooleanLiteral; import com.robotoworks.mechanoid.sharedprefs.sharedPreferencesModel.Literal; import com.robotoworks.mechanoid.sharedprefs.sharedPreferencesModel.NumericLiteral; import com.robotoworks.mechanoid.sharedprefs.sharedPreferencesModel.Preference; import com.robotoworks.mechanoid.sharedprefs.sharedPreferencesModel.PreferenceType; import com.robotoworks.mechanoid.sharedprefs.sharedPreferencesModel.StringLiteral; public class Extensions { public static String toTypeLiteral(PreferenceType type) { switch(type) { case BOOLEAN: return "boolean"; case FLOAT: return "float"; case INTEGER: return "int"; case LONG: return "long"; case STRING: return "String"; } return ""; } public static String toDefaultValue(Preference pref) { Literal lit = pref.getDefaultValue(); if(lit != null) { if(lit instanceof StringLiteral) { return "\"" + Strings.convertToJavaString(((StringLiteral)lit).getLiteral()) + "\""; } else if(lit instanceof BooleanLiteral) { return ((BooleanLiteral)lit).getLiteral().toString(); } else if(lit instanceof NumericLiteral) { float v = ((NumericLiteral)lit).getLiteral().floatValue(); if((v - Math.floor(v)) > 0) { return String.valueOf(v) + "f"; } else { return String.valueOf((int)v); } } } return getDefaultValue(pref.getType()); } public static String getDefaultValue(PreferenceType type) { switch(type) { case STRING: return "null"; case BOOLEAN: return "false"; case FLOAT: return "0.0f"; case INTEGER: return "0"; case LONG: return "0L"; default: return ""; } } public static String toGetMethodName(PreferenceType type) { switch(type) { case BOOLEAN: return "getBoolean"; case FLOAT: return "getFloat"; case INTEGER: return "getInt"; case LONG: return "getLong"; case STRING: return "getString"; } return ""; } public static String toPutMethodName(PreferenceType type) { switch(type) { case BOOLEAN: return "putBoolean"; case FLOAT: return "putFloat"; case INTEGER: return "putInt"; case LONG: return "putLong"; case STRING: return "putString"; } return ""; } }