package com.opcoach.project.impl; import org.eclipse.emf.ecore.plugin.EcorePlugin; import com.opcoach.project.Person; import com.opcoach.project.Project; import com.opcoach.project.Task; import com.opcoach.project.Company; import com.opcoach.project.Folder; import com.opcoach.project.TaskFolder; import com.opcoach.project.ProjectFactory; // This factory overrides the generated factory and returns the new generated interfaces public class ProjectFactoryImpl extends MProjectFactoryImpl implements ProjectFactory { public static ProjectFactory init() { try { Object fact = MProjectFactoryImpl.init(); if ((fact != null) && (fact instanceof ProjectFactory)) return (ProjectFactory) fact; } catch (Exception exception) { EcorePlugin.INSTANCE.log(exception); } return new ProjectFactoryImpl(); } public Person createPerson() { Person result = new PersonImpl(); return result; } public Project createProject() { Project result = new ProjectImpl(); return result; } public Task createTask() { Task result = new TaskImpl(); return result; } public Company createCompany() { Company result = new CompanyImpl(); return result; } public <T> Folder<T> createFolder() { Folder<T> result = new FolderImpl<T>(); return result; } public TaskFolder createTaskFolder() { TaskFolder result = new TaskFolderImpl(); return result; } }