/*******************************************************************************
 * Copyright (c) 2004-2008 Istvan Rath and Daniel Varro
 * 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:
 *    Istvan Rath - initial API and implementation
 *******************************************************************************/

 package org.eclipse.viatra2.treeeditor.properties.validators;

import org.eclipse.viatra2.core.IModelElement;

/**
 * Reports errors when a non-valid FQN is entered.
 * @author Istvan Rath
 *
 */
public class FQNValidator extends VPMValidator
{

	public FQNValidator(IModelElement e) {super(e);}

	public String isValid(Object value) 
	{
		if (iElement.getModelSpace().getModelManager().getElementByName(value.toString())==null)
		{
			return "Invalid FQN";
		}
		
		return null; // means valid
	}

}
