From jdo-commits-return-257-apmail-db-jdo-commits-archive=www.apache.org@db.apache.org Sat Mar 19 05:32:42 2005 Return-Path: Delivered-To: apmail-db-jdo-commits-archive@www.apache.org Received: (qmail 91839 invoked from network); 19 Mar 2005 05:32:42 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 19 Mar 2005 05:32:42 -0000 Received: (qmail 5867 invoked by uid 500); 19 Mar 2005 05:32:41 -0000 Mailing-List: contact jdo-commits-help@db.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: jdo-dev@db.apache.org Delivered-To: mailing list jdo-commits@db.apache.org Delivered-To: moderator for jdo-commits@db.apache.org Received: (qmail 90243 invoked by uid 99); 19 Mar 2005 01:12:47 -0000 X-ASF-Spam-Status: No, hits=-9.8 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Message-ID: <20050319010604.28126.qmail@minotaur.apache.org> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Mailer: svnmailer-1.0.0-dev Date: Sat, 19 Mar 2005 01:06:04 -0000 Subject: svn commit: r158176 [27/79] - in incubator/jdo/trunk/ri11: ./ src/ src/conf/ src/java/ src/java/org/ src/java/org/apache/ src/java/org/apache/jdo/ src/java/org/apache/jdo/ejb/ src/java/org/apache/jdo/enhancer/ src/java/org/apache/jdo/impl/ src/java/org/apache/jdo/impl/enhancer/ src/java/org/apache/jdo/impl/enhancer/classfile/ src/java/org/apache/jdo/impl/enhancer/core/ src/java/org/apache/jdo/impl/enhancer/generator/ src/java/org/apache/jdo/impl/enhancer/meta/ src/java/org/apache/jdo/impl/enhancer/meta/model/ src/java/org/apache/jdo/impl/enhancer/meta/prop/ src/java/org/apache/jdo/impl/enhancer/meta/util/ src/java/org/apache/jdo/impl/enhancer/util/ src/java/org/apache/jdo/impl/fostore/ src/java/org/apache/jdo/impl/jdoql/ src/java/org/apache/jdo/impl/jdoql/jdoqlc/ src/java/org/apache/jdo/impl/jdoql/scope/ src/java/org/apache/jdo/impl/jdoql/tree/ src/java/org/apache/jdo/impl/model/ src/java/org/apache/jdo/impl/model/java/ src/java/org/apache/jdo/impl/model/java/runtime/ src/java/org/apache/jdo/impl/model/jdo/ src/java/org/apache/jdo/impl/model/jdo/caching/ src/java/org/apache/jdo/impl/model/jdo/util/ src/java/org/apache/jdo/impl/model/jdo/xml/ src/java/org/apache/jdo/impl/pm/ src/java/org/apache/jdo/impl/sco/ src/java/org/apache/jdo/impl/state/ src/java/org/apache/jdo/jdoql/ src/java/org/apache/jdo/jdoql/tree/ src/java/org/apache/jdo/model/ src/java/org/apache/jdo/model/java/ src/java/org/apache/jdo/model/jdo/ src/java/org/apache/jdo/pm/ src/java/org/apache/jdo/sco/ src/java/org/apache/jdo/state/ src/java/org/apache/jdo/store/ src/java/org/apache/jdo/util/ test/ test/conf/ test/enhancer/ test/enhancer/sempdept/ test/enhancer/sempdept/src/ test/enhancer/sempdept/src/empdept/ test/fsuid2/ test/fsuid2/org/ test/fsuid2/org/apache/ test/fsuid2/org/apache/jdo/ test/fsuid2/org/apache/jdo/pc/ test/java/ test/java/org/ test/java/org/apache/ test/java/org/apache/jdo/ test/java/org/apache/jdo/impl/ test/java/org/apache/jdo/impl/fostore/ test/java/org/apache/jdo/pc/ test/java/org/apache/jdo/pc/appid/ test/java/org/apache/jdo/pc/empdept/ test/java/org/apache/jdo/pc/serializable/ test/java/org/apache/jdo/pc/xempdept/ test/java/org/apache/jdo/test/ test/java/org/apache/jdo/test/query/ test/java/org/apache/jdo/test/util/ test/jdo/ test/jdo/org/ test/jdo/org/apache/ test/jdo/org/apache/jdo/ test/jdo/org/apache/jdo/pc/ test/jdo/org/apache/jdo/pc/appid/ test/jdo/org/apache/jdo/pc/empdept/ test/jdo/org/apache/jdo/pc/serializable/ test/jdo/org/apache/jdo/pc/xempdept/ xdocs/ To: jdo-commits@db.apache.org From: mbo@apache.org X-Virus-Checked: Checked X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Added: incubator/jdo/trunk/ri11/src/java/org/apache/jdo/impl/fostore/Verify= Request.java URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/ri11/src/java/org/ap= ache/jdo/impl/fostore/VerifyRequest.java?view=3Dauto&rev=3D158176 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- incubator/jdo/trunk/ri11/src/java/org/apache/jdo/impl/fostore/VerifyReq= uest.java (added) +++ incubator/jdo/trunk/ri11/src/java/org/apache/jdo/impl/fostore/VerifyReq= uest.java Fri Mar 18 17:02:29 2005 @@ -0,0 +1,132 @@ +/* + * Copyright 2005 The Apache Software Foundation. + *=20 + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at=20 + *=20 + * http://www.apache.org/licenses/LICENSE-2.0 + *=20 + * Unless required by applicable law or agreed to in writing, software=20 + * distributed under the License is distributed on an "AS IS" BASIS,=20 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied= .=20 + * See the License for the specific language governing permissions and=20 + * limitations under the License. + */ + +package org.apache.jdo.impl.fostore; + +import java.io.DataInput; +import java.io.IOException; +import java.util.BitSet; + +import javax.jdo.PersistenceManager; +import javax.jdo.Transaction; + +import org.apache.jdo.model.jdo.PersistenceModifier; +import org.apache.jdo.state.StateManagerInternal; +import org.apache.jdo.util.I18NHelper; + + +/** + * Represents a request to verify that in-memory data is the same as that = in + * the database. + * + * @author Dave Bristor + */ +// +// This is client-side code. It does not need to live in the server. +// + +// +// XXX About VerifyRequest's current implementation +// For now, VerifyRequest ignores the given array which indicates which +// fields should be checked. +// +class VerifyRequest extends InsertRequest { + /** If true, verify values of object, otherwise verify only existence = (and + * ignore remaining parameters). */ + private final boolean verifyFields; + + /** Fields to verify in database. */ + private final BitSet fieldsToVerify; + + /** Result of executing request. */ + private boolean verified; + + VerifyRequest(StateManagerInternal sm, Message m, FOStorePMF pmf, + boolean verifyFields, BitSet fieldsToVerify) { + + super(sm, m, pmf); + this.verifyFields =3D verifyFields; + this.fieldsToVerify =3D fieldsToVerify; + } + + // + // Methods from AbstractRequest + // + + /** + * Provides the information necessary for a VerifyRequest. + * The format of this request is (aside from the request header): + *
+     * oid: OID
+     * boolean: verifyFields
+     * data block (optional; only if verifyFields is true)
+     * 
+ * @see AbstractRequest#doRequestBody + */ + protected void doRequestBody() throws IOException { + OID oid =3D (OID)sm.getInternalObjectId(); + if (oid.isProvisional()) { + throw new FOStoreFatalInternalException( + this.getClass(), "doRequestBody", // NOI18N + msg.msg("ERR_OidIsProvisional", oid)); // NOI18N + } + + if (logger.isDebugEnabled()) { + logger.debug("VerifyRequest.dRB: begin, "+ oid + // NOI18N + ", verifyFields=3D" + verifyFields); // NOI18N + } + + oid.write(out); + out.writeBoolean(verifyFields); + + if (verifyFields) { + // XXX For now, verify the values of all the fields. + int fieldNumbers[] =3D jdoClass.getPersistentFieldNumbers(); + writeBlock(fieldNumbers, true); + } + =20 + if (logger.isDebugEnabled()) { + logger.debug("VerifyRequest.dRB: end"); // NOI18N + } + } + + // + // Methods from Request + // + + /** + * Handles reply data from a VerifyReply. + * The format of this reply is + *
+     * boolean: true =3D> object exists in database, and (if verifyFields =
is
+     * true) values match those in request.
+     * 
+ */ + public void handleReply(Status status, DataInput in, int length) + throws IOException { + + verified =3D in.readBoolean(); + + if (logger.isDebugEnabled()) { + logger.debug("VerifyRequest.hR: " + getOID() + // NOI18N + ", verified=3D" + verified + ", status=3D" + status); // N= OI18N + } + } + + boolean getVerified() { + return verified; + } +} Added: incubator/jdo/trunk/ri11/src/java/org/apache/jdo/impl/fostore/packag= e=2Ehtml URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/ri11/src/java/org/ap= ache/jdo/impl/fostore/package.html?view=3Dauto&rev=3D158176 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- incubator/jdo/trunk/ri11/src/java/org/apache/jdo/impl/fostore/package.h= tml (added) +++ incubator/jdo/trunk/ri11/src/java/org/apache/jdo/impl/fostore/package.h= tml Fri Mar 18 17:02:29 2005 @@ -0,0 +1,84 @@ + + + + +Package javax.jdo + + + +

This package contains the implementation of the File/Object Store JDO R= eference + Implementation (FOStore, pronounced "foster").

+

This file provides information for implementors and maintainers of the = package.

+

Identity in FOStore and provisional ID's

+

All objects created by the client have a datastore-provided ID, called = an Object + Id (OID.java). Part of the OID represents the class of the object; these= id's + are called Class Id's and are separately managed (CLID.java). When an ob= ject + is made persistent:

+
+
Employee emp =3D new Employee("John Doe", 12345);
+
PersistenceManager pm =3D PersistenceManagerFactory.getPersistenceM=
anager();
+
pm.makePersistent(emp);
+
+

the object is assigned a "provisional" OID, assigned by the c= lient, + not by the datastore. When a real OID is required (getObjectId) or the t= ransaction + commits, the user's object is then flushed to the store, and a real ID i= s provided. + The datastore provides a datastore ID corresponding to the provisional I= D=2E

+

The mapping from provisional to real id's is maintained by both the cli= ent + and the store. The client maintains it on a per-PMF basis (in FOStorePMF= .java). + The store maintains it for all clients (currently a single map, which is= incorrect + as it should be per-client; see FOStoreDatabase.java).

+

Similar tables are kept, separately, for CLIDs. These tables are in FOS= toreModel.java + on the client side, and in FOStoreDatabase.java on the store side. Recal= l that + the OID of an object contains the CLID of the class of the object. If no= instances + of that class have yet been stored, then the OID contains a provisional = CLID. + The process of storing the object also stores a representation of the ob= ject's + class, and creates a datastore-provided CLID.

+

The need for each of the tables is as follows:

+

OID, client: Assume a persistent object is created, and put into a pers= istent + graph structure. Assume further that the object is comitted, but not the= graph + structure. At that point, the graph still refers to the object by its pr= ovisional + OID. Having this table allows us to find the real object ID.

+

OID, store: Assume a graph structure of new objects is to be stored, in= which + a single object is referenced more than once. Each time it is referenced= , it + is with the provisional ID assigned by the client. The store must ensure= that + an object is only assigned a single datastore ID, and this table ensures= that.

+

CLID, client: StoreManager implementations are required to be able to p= rovide + a java.lang.Class given an OID. When assigning OIDs, FOStore will never = use + a provisional CLID if the datastore-provided CLID is available. However,= it + is possible that two objects of the same class are created, and one is s= tored. + The CLID table in FOStoreMetaData will, after the store, only the datast= ore-provided + ID. If one then asks the store manager for the class of the unstored obj= ect + by it's OID, we still have to provide the right answer. By keeping a map= ping + of provisional IDs to datastore IDs in this table, we can do so.

+

CLID, store: Exactly the same reasoning as for the OID table in the sto= re: + ensuring that a given class is only ever assigned a single CLID.

+

Storing and Fetching Objects

+

Objects are stored in the database by way of InsertRequest, and fetched= by +way of FetchRequest. Each contains several methods to store and fetch Java +types. If in the unlikely event that more primitive types are added to Ja= va, +they will have to be added here. Also, support will have to be added to +FieldManager, which is outside of FOStore in the common package, and to it= 's +implementation in the fostore package, in AbstractFieldManager

+

More likely, however, is the need to extend the set of non-primitive ty= pes, + such as Collection types, that FOStore supports. Support for these lies = in 2 + files: CLID.java and the various XXXTranscriber.java files. The f= irst + keeps a table of "known" CLID's, which maps between a java.lan= g=2EClass + and a compiletime-fixed CLID. The latter has a Transcriber class for eac= h of + the known CLID's, for instance LocaleTranscriber writes and reads java.u= til.Locale + objects to/from I/O streams.

+ + Added: incubator/jdo/trunk/ri11/src/java/org/apache/jdo/impl/jdoql/Bundle.p= roperties URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/ri11/src/java/org/ap= ache/jdo/impl/jdoql/Bundle.properties?view=3Dauto&rev=3D158176 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- incubator/jdo/trunk/ri11/src/java/org/apache/jdo/impl/jdoql/Bundle.prop= erties (added) +++ incubator/jdo/trunk/ri11/src/java/org/apache/jdo/impl/jdoql/Bundle.prop= erties Fri Mar 18 17:02:29 2005 @@ -0,0 +1,225 @@ +# +# Copyright 2005 The Apache Software Foundation. +#=20 +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at=20 +#=20 +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software=20 +# distributed under the License is distributed on an "AS IS" BASIS,=20 +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.=20 +# See the License for the specific language governing permissions and=20 +# limitations under the License. + +# This file should conform to netbeans standards +# (http://www.netbeans.org/i18n) + +# resource bundle for the messages +# key consists of: +# - any valid prefix like MSG_, EXC_, etc. +# - short description started with the upper case letter and= used +# upper case to represent each next word. + +# +# resource bundle for query messages +# + +# +# generic +# +EXC_MissingCandidateClass=3DMissing candidate class specification. + +# +# QueryImpl +# +EXC_NullQueryInstance=3DSpecified query is null. +EXC_InvalidCompiledQuery=3DInvalid compiled query of type ''{0}''. +EXC_UnboundQuery=3DQuery is not bound to a PersistenceManager. +EXC_UnknownCandidateClass=3DUnknown candidate class ''{0}'' +EXC_NoTransaction=3DNo transaction and NontransactionalRead is false. + +# +# main jdoqlc compiler class +# +#NOI18N +ERR_UnexpectedExceptionSemantic=3DJDOQLC.semanticCheck unexpected exception +#NOI18N +ERR_UnexpectedExceptionOptimizer=3DJDOQLC.optimize unexpected exception + +# +# jdoqlc error message helper class +# +EXC_PositionInfoMsg=3D{0}: {1} +EXC_PositionInfoMsgColumn=3D{0} column({1}): {2} +EXC_PositionInfoMsgLineColumn=3D{0} line({1}) column({2}): {3} + +# +# jdoqlc syntax error messages +# +EXC_SyntaxError=3DSyntax error. +EXC_SyntaxErrorAt=3DSyntax error at ''{0}''. +EXC_UnexpectedToken=3DSyntax error unexpected token ''{0}''. +EXC_UnexpectedChar=3DSyntax error unexpected char ''{0}''. +EXC_ExpectedCharFound=3DSyntax error expected char ''{0}'', found ''{1}''. +EXC_UnexpectedEOF=3DUnexpected end of text. +#NOI18N +ERR_UnexpectedExceptionUnicode=3DJDOQLLexer.UNICODE_STR unexpected excepti= on + +# +# jdoqlc semantic error messages (unsupported operations) +# + +# +# jdoqlc semantic error messages (user errors) +# +EXC_CollectionElementTypeMismatch=3DCollection element type ''{0}'' and ar= gument type ''{1}'' not compatible. +EXC_ClassTypeExpressionExpected=3DExpression of class type expected. +EXC_InvalidStaticReference=3DCannot make a static reference to non-static = variable ''{0}'' of class ''{1}''. +EXC_NotSortableType=3DOperand type ''{0}'' of {1} is not sortable. +EXC_UndefinedExpression=3DUndefined expression ''{0}''. +EXC_BooleanFilterExpected=3DBoolean expression expected, filter expression= has type ''{0}''. +EXC_CollectionTypeExpected=3DCollection expression expected, expression ha= s type ''{0}''. +EXC_StringTypeExpected=3DString expression expected, expression has type '= '{0}''. +EXC_MultipleDeclaration=3DMultiple declaration of ''{0}''. +EXC_MultipleImport=3DMultiple import of ''{0}''. +EXC_WrongNumberOfArgs=3DWrong number of arguments. +EXC_ArgumentTypeMismatch=3DIncompatible type of argument. Cannot convert '= '{0}'' to ''{1}''. +EXC_InvalidArguments=3DInvalid argument(s) for ''{0}''. +EXC_InvalidMethodCall=3DInvalid method call. +EXC_UnknownField=3DField ''{0}'' not defined for class ''{1}''. +EXC_UnknownType=3DUnknown type ''{0}''. +EXC_UndefinedIdentifier=3DUndefined identifier ''{0}''. +EXC_InvalidCast=3DCannot cast expression of type ''{0}'' to type ''{1}''. +EXC_NotSortableInOrdering=3DType ''{0}'' of ordering expression is not sor= table. +EXC_InvalidParameterAccess=3DIdentifier ''{0}'' used in parameter access n= ode is not declared as parameter +EXC_InvalidVariableAccess=3DIdentifier ''{0}'' used in variable access nod= e is not declared as variable +#NOI18N +ERR_SemanticError=3DSemantic error: +#NOI18N +ERR_MissingChildren=3DIvalid node (missing children): ''{0}'' + +# +# jdoqlc variable checker +# +EXC_UnsupportedMultipleConstraints=3DMultiple constraints for variable ''{= 0}''. +EXC_UnconstraintVariable=3DVariable ''{0}'' is not constrained by contains= call - unconstrained variables not supported. +EXC_UnusedVariable=3DVariable ''{0}'' defined but not used. +EXC_UnsupportedCyclicConstaint=3DUnsupported cyclic constraint definition = for variable ''{0}''. +EXC_DifferentConstraints=3DDifferent constraints for the same variable ''{= 0}''. +#NOI18N +ERR_VariableCheckerUndefinedVariable=3DVariableChecker.{0}: undefined vari= able ''{1}'' +#NOI18N +ERR_VariableCheckerMultipleDependencies=3DVariableChecker.markUsed: multip= le dependencies for variable ''{0}'' old ''{1}'' new ''{2}'' + +# +# jdoqlc optimizer messages +# +EXC_InvalidLiteral=3DInvalid {0} literal ''{1}''. +#NOI18N +ERR_OptimizerError=3DOptimizer error: +#NOI18N +ERR_OptmizerInvalidType=3DOptimizer.{0}: invalid type ''{1}'' +#NOI18N +ERR_OptmizerNumberExpected=3DOptimizer.{0}: expected number value ''{1}'' +#NOI18N +ERR_OptmizerCollectionExpected=3DOptimizer.{0}: expected collection ''{1}'' + +# +# jdoqlc JDOQLASTFactory +# +#NOI18N +ERR_UnexpectedExceptionClone=3DUnexpected exception during clone + +# +# scope.AbstractValueTable +# +#NOI18N +ERR_InvalidTableForExecution=3DInvalid table ''{0}'' for query execution, = value map not initialized. +#NOI18N +ERR_UnexpectedCloneProblems=3DUnexpected problems during clone + +# +# scope.ParameterTable +# +EXC_UnboundQueryParameter=3DUnbound query parameter ''{0}''. +EXC_UndefinedQueryParameter=3DUndefined query parameter ''{0}''. +EXC_WrongNumberOfQueryParameters=3DWrong number of query parameter values. +EXC_IncompatibleTypeOfQueryParameter=3DIncompatible type of actual query p= arameter. Cannot convert ''{0}'' to ''{1}''. + +# +# scope.VariableTable +# +EXC_UndefinedQueryVariable=3DUndefined query variable ''{0}''. + +# +# TypeSupport +# +EXC_CannotFindField=3DCannot find field ''{0}'' of class ''{1}''. +EXC_CannotAccessField=3DCannot access field ''{0}'' of class ''{1}''. +# {0} - field name +# {1} - class name +EXC_CannotChangeAccessibility=3DA SecurityException was thrown when trying= to \ +make field ''{0}'' in class ''{1}'' accessible in order to access its valu= e \ +while executing a query. In order to execute queries on transient instanc= es, \ +you must grant java.lang.reflect.ReflectPermission("suppressAccessChecks")= to \ +the codeBase containing the JDO Reference Implementation (jdori.jar). +EXC_InstanceBoundToDifferentPM=3DInstance ''{0}'' not bound to the Persist= enceManager of the query +#NOI18N +ERR_CollectionFieldExpected=3DCollection field expected; field ''{0}'' of = class ''{1}'' has type ''{2}''. + +# +# tree.BinaryExpr +# +EXC_IncompatibleTypes=3DThe operands ''{0}'', ''{1}'' for binary expressio= n ''{2}'' have incompatible types. Change one of the operands. + +# +# tree.CastExpr +# +EXC_IllegalCast=3DCannot cast ''{0}'' to ''{1}''. Change one of the operan= ds for cast expression ''{2}''. + +# +# tree.MethodCallExpr +# +EXC_IllegalNumberOfParameters=3DIllegal number of parameters supplied for = method call ''{0}''. + +# +# tree.ContainsCallExpr +# tree.IsEmptyCallExpr +# +EXC_NoCollectionType=3DThe target expression ''{0}'' must have a collectio= n type for method call expression ''{1}''. Change the target expression. + +# +# tree.EndsWithCallExpr +# tree.StartsWithCallExpr +# +EXC_NoStringType=3DThe target expression ''{0}'' must have a string type f= or method call expression ''{1}''. Change the target expression. + +# +# tree.FieldAccessExpr +# +EXC_NoSuchField=3DThe identifier ''{0}'' does neither correspond with a de= clared parameter/variable nor with a field in class ''{1}''. + +# +# tree.Node +# +EXC_CannotProcessNullNodes=3DCannot construct node ''{0}'' for children wh= ich equal null. Do not use null arguments in any expression factory methods. +EXC_CannotReuseNodes=3DThe node ''{0}'' is already used in expression ''{1= }''. Cannot reuse this node in another expression. + +# +# tree.Tree +# +EXC_ParameterVariableCollision=3DYou try to declare a parameter having nam= e ''{0}''. This name is already used by a declared variable. +EXC_VariableParameterCollision=3DYou try to declare a variable having name= ''{0}''. This name is already used by a declared parameter. +EXC_IllegalTypeForFilterExpression=3DCannot set filter expression ''{0}'' = as it returns a non boolean type. +EXC_IllegalIdentifier=3DYou cannot create an identifier expression for Jav= a key word. Do not use ''{0}'' for an identifier. +EXC_NonSupportedMethodCall=3DCannot construct a method call expression for= method ''{0}''. This method is not supported. +EXC_CannotResolveTokenType=3DCannot resolve token type ''{0}''. + +# +# MemoryQuery +# +EXC_IllegalResultTypeForExpression=3DCannot apply operator ''{0}'' for ope= rands of type ''{1}''. +EXC_CannotAccessUnboundVariables=3DCannot access unbound variable ''{0}''.= Unbound variables do not have a corresponding contains clause. +EXC_CannotProcessMultipleContainsClauses=3DCannot process two contains cla= uses for the same binary expression.