blob: c51265af73a934a169377d896ca0992676122aed [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2016 CEA LIST
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License 2.0 which
* accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Ansgar Radermacher - Initial API and implementation
*******************************************************************************/
package org.eclipse.papyrus.aiml.gen.keras.transformation;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.papyrus.aiml.gen.keras.GenKeras;
import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
import org.eclipse.papyrus.designer.languages.common.base.HierarchyLocationStrategy;
import org.eclipse.papyrus.designer.languages.common.base.ModelElementsCreator;
import org.eclipse.papyrus.designer.languages.common.base.file.FileSystemAccessFactory;
import org.eclipse.uml2.uml.Class;
import org.eclipse.uml2.uml.Classifier;
import org.eclipse.uml2.uml.Element;
import org.eclipse.uml2.uml.PackageableElement;
import org.eclipse.uml2.uml.util.UMLUtil;
public class KerasModelElementsCreator extends ModelElementsCreator {
private static final String PYTHON_LANG = "python"; //$NON-NLS-1$
private boolean done = false ;
public KerasModelElementsCreator(IProject project) {
this(project, PYTHON_LANG);
}
public KerasModelElementsCreator(IProject project, String language) {
super(FileSystemAccessFactory.create(project), new HierarchyLocationStrategy(), language);
this.project = project;
pythonExt = "py"; //$NON-NLS-1$
}
protected String pythonExt;
@Override
protected boolean noCodeGen(Element element) {
return false;
}
@Override
protected void createPackageableElementFile(PackageableElement pe, IProgressMonitor monitor) {
if (pe instanceof Classifier) {
Classifier classifier = (Classifier) pe;
final String fileName = locStrategy.getFileName(classifier) + "." + pythonExt; //$NON-NLS-1$
String result = ""; //$NON-NLS-1$
if (classifier instanceof Class) {
Model dc = UMLUtil.getStereotypeApplication(pe, Model.class);
if (!done && dc.getClass().getName().contains("Model") ) {
result = GenKeras.genKeras((Class) classifier).toString();
fileSystemAccess.generateFile(fileName, result);
done = true;
}else{
//System.err.print(dc);
}
}
}
}
}