blob: 910aab1e44ba6f5a9131848d5dc33db7694cd259 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2008, 2010 Oracle. All rights reserved. This
* program and the accompanying materials are made available under the terms of
* the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors: Oracle. - initial API and implementation
******************************************************************************/
package org.eclipse.jpt.core.internal;
import org.eclipse.core.expressions.PropertyTester;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jpt.core.JptCorePlugin;
import org.eclipse.jpt.core.libprov.JpaLibraryProviderInstallOperationConfig;
import org.eclipse.jpt.core.platform.JpaPlatformDescription;
import org.eclipse.jpt.core.platform.JpaPlatformGroupDescription;
public class JpaPlatformTester extends PropertyTester {
public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
if (! (property.equals("jpaPlatform") || property.equals("jpaPlatformGroup"))
|| ! (expectedValue instanceof String)) { //$NON-NLS-1$
return false;
}
JpaPlatformDescription platform = null;
if (receiver instanceof IResource) {
platform = platform(((IResource) receiver).getProject());
}
else if (receiver instanceof IJavaElement) {
platform = platform(((IJavaElement) receiver).getResource().getProject());
}
else if (receiver instanceof JpaPlatformDescription) {
platform = (JpaPlatformDescription) receiver;
}
else if (receiver instanceof JpaLibraryProviderInstallOperationConfig) {
platform = ((JpaLibraryProviderInstallOperationConfig) receiver).getJpaPlatform();
}
if (property.equals("jpaPlatform")) {
JpaPlatformDescription otherPlatform = JptCorePlugin.getJpaPlatformManager().getJpaPlatform((String) expectedValue);
return platform == null ? false : platform.equals(otherPlatform);
}
if (property.equals("jpaPlatformGroup")) {
JpaPlatformGroupDescription group = (platform == null) ? null : platform.getGroup();
JpaPlatformGroupDescription otherGroup = JptCorePlugin.getJpaPlatformManager().getJpaPlatformGroup((String) expectedValue);
return group == null ? false : group.equals(otherGroup);
}
return false;
}
private JpaPlatformDescription platform(IProject project) {
return (project == null)
? null
: JptCorePlugin.getJpaPlatformManager().getJpaPlatform(JptCorePlugin.getJpaPlatformId(project));
}
}