blob: c821adad7673e545e065c7a0e8735a1ad5f9777e [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2013 IBM Corporation 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
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.stem.model.ctdl.functions;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
public class STEMDSLUtils
{
private static final Map<String, Class<?>> GLOBAL_USER_VARS = new HashMap<String, Class<?>>();
private static final Map<String, Class<?>> GLOBAL_SYSTEM_VARS = new HashMap<String, Class<?>>();
static
{
GLOBAL_USER_VARS.put("timeDelta", long.class);
GLOBAL_USER_VARS.put("t", double.class);
GLOBAL_SYSTEM_VARS
.put("time", org.eclipse.stem.core.model.STEMTime.class);
GLOBAL_SYSTEM_VARS.put("label",
org.eclipse.stem.core.graph.Label.class);
GLOBAL_SYSTEM_VARS.put("labelValue",
org.eclipse.stem.core.graph.LabelValue.class);
GLOBAL_SYSTEM_VARS.put("node",
org.eclipse.stem.core.graph.Node.class);
GLOBAL_SYSTEM_VARS.put("model",
org.eclipse.stem.core.model.IntegrationDecorator.class);
}
public static Class<?> getTypeForGlobalVariable(String name)
{
Class<?> type = GLOBAL_USER_VARS.get(name);
if (type == null) {
type = GLOBAL_SYSTEM_VARS.get(name);
}
return type;
}
public static Map<String, Class<?>> getGlobalUserVariables()
{
return Collections.unmodifiableMap(GLOBAL_USER_VARS);
}
public static Map<String, Class<?>> getGlobalSystemVariables()
{
return Collections.unmodifiableMap(GLOBAL_SYSTEM_VARS);
}
//
// public static String getNormalizedTypeNameForClass(Class<?> clazz)
// {
// if (clazz == null) {
// return null;
// }
//
// if (isNumber(clazz)) {
// return "number";
// } else if (clazz == String.class) {
// return "string";
// } else {
// return clazz.getName();
// }
// }
//
// public static String getNormalizedTypeNameForClass(String className)
// {
// if (className == null) {
// return null;
// }
//
// if (isNumber(className)) {
// return "number";
// } else if (String.class.getName().equals(className)) {
// return "string";
// } else {
// return className;
// }
// }
//
// public static List<String> classTypeNames = Arrays.asList(new String[] {
// "double", "int", "float", "long", "short",
// "java.lang.Double", "java.lang.Integer", "java.lang.Float", "java.lang.Long",
// "java.lang.Short"
// });
//
// public static boolean isNumber(String className)
// {
// return classTypeNames.contains(className);
// }
//
// public static boolean isNumber(Class<?> clazz)
// {
// return (clazz == double.class || clazz == Double.class ||
// clazz == int.class || clazz == Integer.class ||
// clazz == float.class || clazz == Float.class ||
// clazz == long.class || clazz == Long.class ||
// clazz == short.class || clazz == Short.class);
//
// }
//
// public static List<Compartment> getAllCompartmentsForGroup(
// CompartmentGroup cg) {
// List<Compartment> compartments = new ArrayList<Compartment>();
// if (cg != null) {
// compartments.addAll(getAllCompartmentsForGroup(cg.getParentGroup()));
// compartments.addAll(cg.getCompartments());
//
// }
// return compartments;
// }
//
// public static List<Compartment> getAllCompartmentsForModel(Model model) {
// return getAllCompartmentsForGroup(model.getCompartments());
// }
//
// public static List<ModelParam> getAllParametersForModel(Model model) {
// List<ModelParam> params = new ArrayList<ModelParam>();
// if (model != null) {
// params.addAll(getAllParametersForModel(model.getParentModel()));
// params.addAll(model.getParameters());
// }
// return params;
// }
//
// public static String ucfirst(String str)
// {
// if (str.length() > 0 && Character.isLowerCase(str.codePointAt(0))) {
// StringBuilder sb = new StringBuilder();
// sb.appendCodePoint(Character.toUpperCase(str.codePointAt(0)));
// sb.append(str.substring(1));
// return sb.toString();
// }
//
// return str;
// }
//
// public static String lcfirst(String str)
// {
// if (str.length() > 0 && Character.isUpperCase(str.codePointAt(0))) {
// StringBuilder sb = new StringBuilder();
// sb.appendCodePoint(Character.toLowerCase(str.codePointAt(0)));
// sb.append(str.substring(1));
// return sb.toString();
// }
//
// return str;
// }
}