Copyright (c) 2000, 2008 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) 2000, 2008 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.core.expressions; import org.eclipse.core.runtime.CoreException;
A property tester can be used to add additional properties to test to an existing type.

This interface is not intended to be implemented by clients. Clients should subclass type PropertyTester.

Since:3.0
@noimplementThis interface is not intended to be implemented by clients.
@noextendThis interface is not intended to be extended by clients.
/** * A property tester can be used to add additional properties to test to an * existing type. * <p> * This interface is not intended to be implemented by clients. Clients * should subclass type <code>PropertyTester</code>. * </p> * * @since 3.0 * * @noimplement This interface is not intended to be implemented by clients. * @noextend This interface is not intended to be extended by clients. */
public interface IPropertyTester {
Returns whether the property tester can handle the given property or not.
Params:
  • namespace – the name space to be considered
  • property – the property to test
Returns:true if the tester provides an implementation for the given property; otherwise false is returned
/** * Returns whether the property tester can handle the given * property or not. * * @param namespace the name space to be considered * @param property the property to test * @return <code>true</code> if the tester provides an implementation * for the given property; otherwise <code>false</code> is returned */
boolean handles(String namespace, String property);
Returns whether the implementation class for this property tester is loaded or not.
Returns:trueif the implementation class is loaded; false otherwise
/** * Returns whether the implementation class for this property tester is * loaded or not. * * @return <code>true</code>if the implementation class is loaded; * <code>false</code> otherwise */
boolean isInstantiated();
Returns true if the implementation class of this property tester can be loaded. This is the case if the plug-in providing the implementation class is active. Returns false otherwise.
Returns:whether the implementation class can be loaded or not
/** * Returns <code>true</code> if the implementation class of this property * tester can be loaded. This is the case if the plug-in providing * the implementation class is active. Returns <code>false</code> otherwise. * * @return whether the implementation class can be loaded or not */
boolean isDeclaringPluginActive();
Loads the implementation class for this property tester and returns an instance of this class.
Throws:
Returns:an instance of the implementation class for this property tester
/** * Loads the implementation class for this property tester and returns an * instance of this class. * * @return an instance of the implementation class for this property tester * * @throws CoreException if the implementation class cannot be loaded */
IPropertyTester instantiate() throws CoreException;
Executes the property test determined by the parameter property.
Params:
  • receiver – the receiver of the property test
  • property – the property to test
  • args – additional arguments to evaluate the property. If no arguments are specified in the test expression an array of length 0 is passed
  • expectedValue – the expected value of the property. The value is either of type java.lang.String or a boxed base type. If no value was specified in the test expressions then null is passed
Returns:returns true if the property is equal to the expected value; otherwise false is returned
/** * Executes the property test determined by the parameter <code>property</code>. * * @param receiver the receiver of the property test * @param property the property to test * @param args additional arguments to evaluate the property. If no arguments are specified in * the <code>test</code> expression an array of length 0 is passed * @param expectedValue the expected value of the property. The value is either of type * <code>java.lang.String</code> or a boxed base type. If no value was specified in * the <code>test</code> expressions then <code>null</code> is passed * * @return returns <code>true</code> if the property is equal to the expected value; otherwise * <code>false</code> is returned */
boolean test(Object receiver, String property, Object[] args, Object expectedValue); }