blob: cbd158b8762c92133e96b43cb44e75ee8808634a [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2014 Bosch Software Innovations GmbH and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* and Eclipse Distribution License v1.0 which accompany this distribution.
*
* The Eclipse Public License is available at
* http://www.eclipse.org/legal/epl-v10.html
* The Eclipse Distribution License is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* Contributors:
* Bosch Software Innovations GmbH - Please refer to git log
*
*******************************************************************************/
package org.eclipse.vorto.api.common.project;
import java.lang.reflect.InvocationTargetException;
import org.eclipse.core.resources.IProject;
public class FunctionBlockProjectFactory implements IProjectFactory {
private static FunctionBlockProjectFactory instance = null;
private FunctionBlockProjectFactory() {
}
public static FunctionBlockProjectFactory getInstance() {
if (instance == null) {
instance = new FunctionBlockProjectFactory();
}
return instance;
}
public <T extends InfoModelProject, InfoModelProject> T getProject(
IProject project, Class<T> projectClass) {
try {
return projectClass.getConstructor(IProject.class).newInstance(
project);
} catch (InstantiationException e) {
throw new RuntimeException(
"Problem instantiating information model project", e);
} catch (IllegalAccessException e) {
throw new RuntimeException(
"Problem instantiating information model project", e);
} catch (IllegalArgumentException e) {
throw new RuntimeException(
"Problem instantiating information model project", e);
} catch (InvocationTargetException e) {
throw new RuntimeException(
"Problem instantiating information model project", e);
} catch (NoSuchMethodException e) {
throw new RuntimeException(
"Problem instantiating information model project", e);
} catch (SecurityException e) {
throw new RuntimeException(
"Problem instantiating information model project", e);
}
}
}