Copyright (c) 2006, 2015 IBM Corporation and others. 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: IBM Corporation - initial API and implementation
/******************************************************************************* * Copyright (c) 2006, 2015 IBM Corporation and others. * * 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: * IBM Corporation - initial API and implementation *******************************************************************************/
package org.eclipse.jdt.internal.launching.environments; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IConfigurationElement; import org.eclipse.jdt.core.IAccessRule; import org.eclipse.jdt.core.IJavaProject; import org.eclipse.jdt.internal.launching.LaunchingPlugin; import org.eclipse.jdt.launching.IVMInstall; import org.eclipse.jdt.launching.LibraryLocation; import org.eclipse.jdt.launching.environments.IAccessRuleParticipant; import org.eclipse.jdt.launching.environments.IExecutionEnvironment;
Proxy to an access rule participant for an execution environment.
Since:3.3
/** * Proxy to an access rule participant for an execution environment. * * @since 3.3 */
class AccessRuleParticipant implements IAccessRuleParticipant { private IConfigurationElement fElement; private IAccessRuleParticipant fDelegate;
Constructs a proxy to a rule participant contributed with the given configuration element. The element may be an executionEnvironment element or a ruleParticipant extension.
Params:
  • element – the configuration element
/** * Constructs a proxy to a rule participant contributed with the * given configuration element. The element may be an * <code>executionEnvironment</code> element or a <code>ruleParticipant</code> * extension. * * @param element the configuration element */
AccessRuleParticipant(IConfigurationElement element) { fElement = element; } /* (non-Javadoc) * @see org.eclipse.jdt.launching.environments.IAccessRuleParticipant#getAccessRules(org.eclipse.jdt.launching.environments.IExecutionEnvironment, org.eclipse.jdt.launching.IVMInstall, org.eclipse.jdt.launching.LibraryLocation[], org.eclipse.jdt.core.IJavaProject) */ @Override public IAccessRule[][] getAccessRules(IExecutionEnvironment environment, IVMInstall vm, LibraryLocation[] libraries, IJavaProject project) { try { return getDelegate().getAccessRules(environment, vm, libraries, project); } catch (CoreException e) { LaunchingPlugin.log(e.getStatus()); } IAccessRule[][] rules = new IAccessRule[libraries.length][]; for (int i = 0; i < rules.length; i++) { rules[i] = new IAccessRule[0]; } return rules; } private IAccessRuleParticipant getDelegate() throws CoreException { if (fDelegate == null) { if (fElement.getName().equals(EnvironmentsManager.ENVIRONMENT_ELEMENT)) { fDelegate = (IAccessRuleParticipant) fElement.createExecutableExtension(EnvironmentsManager.RULE_PARTICIPANT_ELEMENT); } else { fDelegate = (IAccessRuleParticipant) fElement.createExecutableExtension("class"); //$NON-NLS-1$ } } return fDelegate; }
Returns the id of this participant.
Returns:participant id
/** * Returns the id of this participant. * * @return participant id */
String getId() { if (fElement.getName().equals(EnvironmentsManager.ENVIRONMENT_ELEMENT)) { return fElement.getAttribute(EnvironmentsManager.RULE_PARTICIPANT_ELEMENT); } return fElement.getAttribute("id"); //$NON-NLS-1$ } private String getDelegateClassName() { if (fElement.getName().equals(EnvironmentsManager.ENVIRONMENT_ELEMENT)) { return fElement.getAttribute(EnvironmentsManager.RULE_PARTICIPANT_ELEMENT); } return fElement.getAttribute("class"); //$NON-NLS-1$ } /* (non-Javadoc) * @see java.lang.Object#equals(java.lang.Object) */ @Override public boolean equals(Object obj) { if (obj instanceof AccessRuleParticipant) { AccessRuleParticipant participant = (AccessRuleParticipant) obj; return participant.getDelegateClassName().equals(getDelegateClassName()); } return false; } /* (non-Javadoc) * @see java.lang.Object#hashCode() */ @Override public int hashCode() { return getDelegateClassName().hashCode(); } /* (non-Javadoc) * @see java.lang.Object#toString() */ @Override public String toString() { return getDelegateClassName(); } }