package org.eclipse.jem.internal.beaninfo.adapters;
/*******************************************************************************
 * Copyright (c)  2001, 2003 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials 
 * are made available under the terms of the Common Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/cpl-v10.html
 * 
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
/*
 *  $RCSfile: BeaninfoProperties.java,v $
 *  $Revision: 1.1 $  $Date: 2003/10/27 17:17:59 $ 
 */


 
/**
 * Interface to NLS. Contains the keys used in the plugin.properties file.
 */

public interface BeaninfoProperties {
	public static final String
		INTROSPECTFAILED = "%INTROSPECT_FAILED_EXC_ Introspection failed on class \"{0}.\""; //$NON-NLS-1$

}