| /******************************************************************************* |
| * Copyright (c) 2009-2010 Thales Corporate Services S.A.S. |
| * This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v2.0 |
| * which accompanies this distribution, and is available at |
| * https://www.eclipse.org/legal/epl-v2.0 |
| * |
| * SPDX-License-Identifier: EPL-2.0 |
| * |
| * Contributors: |
| * Thales Corporate Services S.A.S - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.egf.core.pde.internal; |
| |
| import org.eclipse.core.resources.IFile; |
| import org.eclipse.core.resources.IProject; |
| import org.eclipse.core.runtime.CoreException; |
| import org.eclipse.pde.core.build.IBuild; |
| import org.eclipse.pde.core.build.IBuildEntry; |
| import org.eclipse.pde.core.build.IBuildModel; |
| import org.eclipse.pde.internal.core.ICoreConstants; |
| import org.eclipse.pde.internal.core.build.WorkspaceBuildModel; |
| |
| /** |
| * Provides services when creating fcore or converting existing |
| * plug-ins in fcore projects. |
| * |
| * @author Guillaume Brocard |
| */ |
| public class FcoreGeneratorHelper { |
| |
| /** |
| * Add an entry in the binary entry of the build.properties i.e bin.include.<br> |
| * Caller is responsible to save the modified build model. |
| * |
| * @param buildModel |
| */ |
| public static void addEntryInBinaryBuild(IBuildModel buildModel, String entry) throws CoreException { |
| IBuild build = buildModel.getBuild(); |
| // Update the bin.includes property |
| IBuildEntry binEntry = build.getEntry(IBuildEntry.BIN_INCLUDES); |
| if (binEntry != null) { |
| if (binEntry.contains(entry) == false) { |
| binEntry.addToken(entry); |
| } |
| } |
| } |
| |
| /** |
| * Get the build model for given project. |
| * |
| * @param project |
| * @return WorkspaceBuildModel |
| */ |
| public static WorkspaceBuildModel getBuildModel(IProject project) { |
| // Precondition. |
| if (project == null) { |
| return null; |
| } |
| WorkspaceBuildModel buildModel = null; |
| IFile buildFile = project.getFile(ICoreConstants.BUILD_FILENAME_DESCRIPTOR); |
| buildModel = new WorkspaceBuildModel(buildFile); |
| if (buildFile.exists()) { |
| buildModel.load(); |
| } |
| return buildModel; |
| } |
| |
| } |