package org.objectstyle.wolips.eogenerator.jdt;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IPath;
import org.eclipse.jdt.core.IClasspathEntry;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.JavaModelException;
import org.objectstyle.wolips.baseforplugins.util.ComparisonUtils;
import org.objectstyle.wolips.eogenerator.core.model.EOGeneratorModel;
import org.objectstyle.wolips.jdt.ProjectFrameworkAdapter;
public class EOGeneratorCreator {
public static EOGeneratorModel createDefaultModel(IProject project) {
EOGeneratorModel model = new EOGeneratorModel(project);
model.setJava(Boolean.TRUE);
model.setPackageDirs(Boolean.TRUE);
model.setVerbose(Boolean.TRUE);
model.setLoadModelGroup(Boolean.TRUE);
// model.setEOGeneratorPath(Preferences.getEOGeneratorPath());
// model.setJavaTemplate(Preferences.getEOGeneratorJavaTemplate());
// model.setTemplateDir(Preferences.getEOGeneratorTemplateDir());
// model.setSubclassJavaTemplate(Preferences.getEOGeneratorSubclassJavaTemplate());
try {
IJavaProject javaProject = JavaCore.create(project);
if (javaProject != null) {
IClasspathEntry[] classpathEntry = javaProject.getRawClasspath();
for (int classpathEntryNum = 0; classpathEntryNum < classpathEntry.length; classpathEntryNum++) {
IClasspathEntry entry = classpathEntry[classpathEntryNum];
if (entry.getEntryKind() == IClasspathEntry.CPE_SOURCE) {
IPath path = entry.getPath();
if (path != null) {
IFolder sourceFolder = project.getWorkspace().getRoot().getFolder(path);
IPath projectRelativePath = sourceFolder.getProjectRelativePath();
String projectRelativePathStr = projectRelativePath.toPortableString();
model.setDestination(projectRelativePathStr);
model.setSubclassDestination(projectRelativePathStr);
}
}
}
}
} catch (JavaModelException e) {
e.printStackTrace();
}
// MS: If you link to ERExtensions and you didn't set your default template names, guess that you want the Wonder versions
try {
if (ComparisonUtils.equals(model.getDefaultJavaTemplate(), null, true) && ((ProjectFrameworkAdapter)project.getAdapter(ProjectFrameworkAdapter.class)).isLinkedToFrameworkNamed("ERExtensions")) {
model.setJavaTemplate("_WonderEntity.java");
model.setSubclassJavaTemplate("WonderEntity.java");
}
}
catch (Throwable t) {
t.printStackTrace();
}
return model;
}
}