| /*=============================================================================# |
| # Copyright (c) 2005, 2020 Stephan Wahlbrink and others. |
| # |
| # This program and the accompanying materials are made available under the |
| # terms of the Eclipse Public License 2.0 which is available at |
| # https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0 |
| # which is available at https://www.apache.org/licenses/LICENSE-2.0. |
| # |
| # SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 |
| # |
| # Contributors: |
| # Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation |
| #=============================================================================*/ |
| |
| package org.eclipse.statet.base.core; |
| |
| import java.util.HashSet; |
| import java.util.Set; |
| |
| import org.eclipse.core.resources.IProject; |
| import org.eclipse.core.resources.ResourcesPlugin; |
| import org.eclipse.core.runtime.CoreException; |
| import org.eclipse.core.runtime.IStatus; |
| import org.eclipse.core.runtime.Status; |
| |
| import org.eclipse.statet.ecommons.net.ssh.core.ISshSessionService; |
| |
| import org.eclipse.statet.internal.ide.core.BaseCorePlugin; |
| import org.eclipse.statet.ltk.model.core.elements.ISourceUnit; |
| import org.eclipse.statet.ltk.model.core.elements.IWorkspaceSourceUnit; |
| |
| |
| public class StatetCore { |
| |
| |
| public static final String BUNDLE_ID= "org.eclipse.statet.ide.core"; //$NON-NLS-1$ |
| |
| |
| public static Set<StatetProject> getStatetProjects() { |
| final IProject[] projects= ResourcesPlugin.getWorkspace().getRoot().getProjects(); |
| final Set<StatetProject> collected= new HashSet<>(); |
| try { |
| for (final IProject project : projects) { |
| final StatetProject sp= (StatetProject) project.getNature(StatetProject.NATURE_ID); |
| if (sp != null) { |
| collected.add(sp); |
| } |
| } |
| } catch (final CoreException e) { |
| logError(e); |
| return new HashSet<>(0); |
| } |
| return collected; |
| } |
| |
| public static StatetProject getStatetProject(final ISourceUnit su) { |
| if (su instanceof IWorkspaceSourceUnit) { |
| final IProject project= ((IWorkspaceSourceUnit) su).getResource().getProject(); |
| try { |
| if (project.hasNature(StatetProject.NATURE_ID)) { |
| return (StatetProject) project.getNature(StatetProject.NATURE_ID); |
| } |
| } |
| catch (final CoreException e) { |
| logError(e); |
| } |
| } |
| return null; |
| } |
| |
| public static ISshSessionService getSshSessionManager() { |
| return BaseCorePlugin.getInstance().getSshSessionManager(); |
| } |
| |
| private static void logError(final CoreException e) { |
| BaseCorePlugin.getInstance().getLog().log(new Status(IStatus.ERROR, BUNDLE_ID, -1, "Error catched", e)); //$NON-NLS-1$ |
| } |
| |
| |
| private StatetCore() { |
| } |
| |
| } |