/* * Copyright (C) 2008-2009 by Claas Wilke (claaswilke@gmx.net) This file is part * of the Java Meta Model of Dresden OCL2 for Eclipse. Dresden OCL2 for Eclipse * is free software: you can redistribute it and/or modify it under the terms of * the GNU Lesser General Public License as published by the Free Software * Foundation, either version 3 of the License, or (at your option) any later * version. Dresden OCL2 for Eclipse is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser * General Public License for more details. You should have received a copy of * the GNU Lesser General Public License along with Dresden OCL2 for Eclipse. If * not, see <http://www.gnu.org/licenses/>. */ package org.dresdenocl.metamodels.java; import java.math.BigDecimal; import java.math.BigInteger; import org.apache.log4j.Logger; import org.eclipse.core.runtime.Plugin; import org.osgi.framework.BundleContext; import org.dresdenocl.logging.LoggingPlugin; import org.dresdenocl.metamodels.java.internal.model.JavaModel; import org.dresdenocl.metamodels.java.internal.provider.JavaModelProvider; import org.dresdenocl.model.IModel; import org.dresdenocl.model.ModelAccessException; import org.dresdenocl.pivotmodel.PrimitiveTypeKind; /** * <p> * The activator class controls the plug-in life cycle. * </p> * * @author Claas Wilke */ public class JavaMetaModelPlugin extends Plugin { /** The plug-in ID. */ public static final String ID = "org.dresdenocl.metamodels.java"; //$NON-NLS-1$ /** * An array containing all Java {@link Class}es that can be mapped to the * {@link PrimitiveTypeKind#BOOLEAN}. */ public static final Class<?> BOOLEAN_CLASSES[] = new Class<?>[] { boolean.class, Boolean.class }; /** * An array containing all Java {@link Class}es that can be mapped to the * {@link PrimitiveTypeKind#INTEGER}. */ public static final Class<?> INTEGER_CLASSES[] = new Class<?>[] { BigDecimal.class, BigInteger.class, byte.class, Byte.class, int.class, Integer.class, long.class, Long.class, short.class, Short.class }; /** * An array containing all Java {@link Class}es that can be mapped to the * {@link PrimitiveTypeKind#REAL}. */ public static final Class<?> REAL_CLASSES[] = new Class<?>[] { double.class, Double.class, float.class, Float.class }; /** * An array containing all Java {@link Class}es that can be mapped to the * {@link PrimitiveTypeKind#STRING}. */ public static final Class<?> STRING_CLASSES[] = new Class<?>[] { char.class, Character.class, String.class }; /** The shared instance. */ private static JavaMetaModelPlugin plugin; /** * <p> * The constructor of the {@link JavaMetaModelPlugin}. * </p> */ public JavaMetaModelPlugin() { plugin = this; } /** * <p> * Create a new {@link JavaModel} for a given {@link Class}. * </p> * * @param modelClass * The {@link Class} which shall be imported as {@link IModel}. * @return The created {@link IModel}. * @throws ModelAccessException * Thrown if any error during model import occurs. */ public static IModel createJavaModel(Class<?> modelClass) throws ModelAccessException { IModel result; JavaModelProvider provider; provider = new JavaModelProvider(); result = provider.getModel(modelClass); return result; } /** * @return The shared instance of the {@link JavaMetaModelPlugin}. */ public static JavaMetaModelPlugin getDefault() { return plugin; } /* * (non-Javadoc) * @see * org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext * ) */ @Override public void start(BundleContext context) throws Exception { super.start(context); /* Configure custom logging properties. */ LoggingPlugin.configureDefaultLogging(plugin); } /** * <p> * Facade method for the classes in this plug-in that hides the dependency * from the <code>org.dresdenocl.logging</code> plug-in. * </p> * * @param clazz * The {@link Class} to return the {@link Logger} for. * * @return A log4j {@link Logger}> instance. * * @generated NOT */ public static Logger getLogger(Class<?> clazz) { return LoggingPlugin.getLogManager(plugin).getLogger(clazz); } /* * (non-Javadoc) * @see * org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext * ) */ @Override public void stop(BundleContext context) throws Exception { plugin = null; super.stop(context); } }