###############################################################################
# Copyright (c) 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
###############################################################################
#
# $Source: /cvsroot/webtools/jeetools.move/webtools.javaee.git/plugins/org.eclipse.jem/mofjava/javaadapters.properties,v $
# $Revision: 1.1 $  $Date: 2003/10/27 17:12:30 $
#

Failed_reflecting_values_ERROR_=IWAE0001E Failed reflecting values.
Could_Not_Reflect_Methods_ERROR_=IWAE0002E Could not reflect methods for {0} because one of the methods references a type that could not be loaded.  Exception: {1}
Could_Not_Reflect_Constructors_ERROR_=IWAE0003E Could not reflect constructors for {0} because one of the methods references a type that could not be loaded.  Exception: {1}
Could_Not_Reflect_Fields_ERROR_=IWAE0004E Could not reflect fields for {0} because one of the fields is a type that could not be loaded. Exception: {1}
Error_Looking_Up_Type_ERROR_=IWAE0005E Error looking up type {0}.  Exception: {1}
Error_Introspecting_Flags_ERROR_=IWAE0006E Error introspecting flags on {0}.  Exception: {1}
Error_Setting_GenFlag_ERROR_=IWAE0007E Error setting the generated flag on {0}.  Exception: {1}
Java_Inh_Cycle_ERROR_=IWAE0008E Detected an inheritance cycle when {0} trys to extend {1}.



