/* * Copyright (c) 2006, 2007 Borland Software Corporation * * 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 * * Contributors: * Michael Golubev (Borland) - initial API and implementation */ package org.eclipse.gmf.internal.graphdef.codegen.ui; import org.eclipse.gmf.graphdef.codegen.MapModeCodeGenStrategy; import org.eclipse.gmf.graphdef.codegen.StandaloneGenerator; class StandaloneGeneratorConfigAdapter implements StandaloneGenerator.Config { private final ConverterSection mySection; public StandaloneGeneratorConfigAdapter(ConverterSection section){ mySection = section; getPluginActivatorClassName(); } public String getMainPackageName() { return mySection.getStringOption(ConverterSection.OPTION_MAIN_PACKAGE_NAME); } public String getPluginActivatorClassName() { String activatorFQN = mySection.getPluginActivatorClassFQN(); if (activatorFQN == null){ activatorFQN = ""; } return extractClassName(activatorFQN); } public String getPluginActivatorPackageName() { String activatorFQN = mySection.getPluginActivatorClassFQN(); if (activatorFQN == null){ activatorFQN = ""; } return extractPackageName(activatorFQN); } public String getPluginFriendlyName() { return notNull(mySection.getPluginFriendlyName()); } public String getPluginID() { return notNull(mySection.getPluginID()); } public String getPluginProviderName() { return notNull(mySection.getPluginProviderName()); } public MapModeCodeGenStrategy getMapMode() { return mySection.getBooleanOption(ConverterSection.OPTION_NEEDS_MAP_MODE) ? MapModeCodeGenStrategy.DYNAMIC : MapModeCodeGenStrategy.STATIC; } public String getRuntimeToken() { // TODO Auto-generated method stub return mySection.getBooleanOption(ConverterSection.OPTION_USE_RUNTIME_FIGURES) ? null : "lite"; } /** * FIXME: this does not work if fqn is inner class * However, default PDE plugin generator treats any input string this way */ private static String extractPackageName(String fqn){ int lastDot = fqn.lastIndexOf('.'); return lastDot < 0 ? "" : fqn.substring(0, lastDot); } /** * @see StandaloneGeneratorConfigAdapter#extractPackageName(String) */ private static String extractClassName(String fqn){ int lastDot = fqn.lastIndexOf('.'); return lastDot < 0 ? fqn : fqn.substring(lastDot + ".".length()); } private static String notNull(String text){ return text == null ? "" : text; } }