###############################################################################
# Copyright (c) 2003, 2004 IBM Corporation and others.
# 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:
#     IBM Corporation - initial API and implementation
###############################################################################
#
# $Source: /cvsroot/webtools/jeetools.move/webtools.javaee.git/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/messages.properties,v $
# $Revision: 1.8 $  $Date: 2005/05/11 19:01:12 $
#



#
# Exception Messages. All of these messages are the text of an java exception.
#
UnexpectedException_EXC_                                    = IWAV0064E Unexpected exception thrown.

# {0} and {1} are java classes (e.g. java.lang.Object)
ClassCast_EXC_.IncorrectType                                = IWAV0065E "{0}" is neither a subclass of, nor does it implement, class "{1}".

# Standard Bean Proxy Factory and Standard Bean Type Proxy Factory are terms in beaninfo. They are the 
# standard (i.e. base) factories for beans or bean types. Bean types are java classes.
ProxyFactory_EXC_.NoBeanProxyFactory                        = IWAV0066E No Standard Bean Proxy Factory has been set.
ProxyFactory_EXC_.NoBeanTypeProxyFactory                    = IWAV0067E No Standard Bean Type Proxy Factory has been set.


# {0} is the title of a project.
Not_Java_Project_WARN_                                      = IWAV0068W Project "{0}" is not a java project.
No_VM_WARN_                                                 = IWAV0069W Project "{0}" has no Java JRE defined to use to run programs within this project.
No_Implementation_WARN_                                     = IWAV0070W Cannot find a proxy implementation to use for project "{0}."

ProxyLaunch                                                 = Launching Local Proxy VM
ProxyWaitForBuild                                           = Waiting for build to complete
Expression.InInvalidStateDueTo_EXC_                         = IWAV0162E Expression is in invalid state due to "{0}"
Expression.InInvalidState_EXC_                              = IWAV0163E Expression is in invalid state
Expression.TypeSentInInvalidOrder_EXC_                      = IWAV0164E Expression type sent in invalid order, received: {0}, expected {1}.
Expression.ArrayTypeNotAnArray_EXC_                         = IWAV0165E ArrayType "{0}" is not an array.
Expression.CannotHandleNoReceiveOnFieldAccess_EXC_          = IWAV0166E Access by field name ({0}) (not by proxy) requires a receiver.
Expression.MethodsNeedReceiver_EXC_                         = IWAV0167E Access by method name ({0}) (not by proxy) requires a receiver.
Expression.InvalidMarkNesting                               = IWAV0168E Improper nesting of mark statements in Expression. Tried to pop or endMark to before current mark. Tried to go past Mark# {0}.
ProxyPlugin.CleanupDefaultProxyLaunchConfigurations         = Clean up default proxy launch configurations.
ProxyLaunchSupport.RegistryCouldNotStartForSomeReason_WARN_ = IWAV0168W Registry could not be started for some reason.
