/*****************************************************************************
 * Copyright (c) 2022 CEA LIST.
 *
 *
 * All rights reserved. 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:
 *  Saadia Dhouib (CEA LIST) saadia.dhouib@cea.fr - Initial API and implementation
 *
 *****************************************************************************/
package org.eclipse.papyrus.aas.validation.selector;

import org.eclipse.emf.validation.model.IClientSelector;
import org.eclipse.uml2.uml.Element;


public class ValidationDelegateClientSelector implements IClientSelector {

	@Override
	public boolean selects(Object object) {
		// TODO Auto-generated method stub
		
			return (object instanceof Element);
		}
	

}
