public String toString() { String referenceClassString = ""; String nameString = ""; String queryString = ""; if (getReferenceClass() != null) { referenceClassString = "referenceClass=" + getReferenceClass().getSimpleName() + " "; } if ((getName() != null) && (!getName().equals(""))) { nameString = "name=\"" + getName() + "\" "; } if (isSQLCallQuery()) { queryString = "sql=\"" + getSQLString() + "\""; } else if (isJPQLCallQuery()) { queryString = "jpql=\"" + getJPQLString() + "\""; } return getClass().getSimpleName() + "(" + nameString + referenceClassString + queryString + ")"; }
public static ValidationException excusiveConnectionIsNoLongerAvailable(DatabaseQuery query, AbstractSession session) { Object[] args = { query.getReferenceClass().getName() }; ValidationException validationException = new ValidationException(ExceptionMessageGenerator.buildMessage(ValidationException.class, EXCLUSIVE_CONNECTION_NO_LONGER_AVAILABLE, args)); validationException.setErrorCode(EXCLUSIVE_CONNECTION_NO_LONGER_AVAILABLE); validationException.setSession(session); return validationException; }
public String toString() { String referenceClassString = ""; String nameString = ""; String queryString = ""; if (getReferenceClass() != null) { referenceClassString = "referenceClass=" + getReferenceClass().getSimpleName() + " "; } if ((getName() != null) && (!getName().equals(""))) { nameString = "name=\"" + getName() + "\" "; } if (isSQLCallQuery()) { queryString = "sql=\"" + getSQLString() + "\""; } else if (isJPQLCallQuery()) { queryString = "jpql=\"" + getJPQLString() + "\""; } return getClass().getSimpleName() + "(" + nameString + referenceClassString + queryString + ")"; }
public String toString() { String referenceClassString = ""; String nameString = ""; String queryString = ""; if (getReferenceClass() != null) { referenceClassString = "referenceClass=" + getReferenceClass().getSimpleName() + " "; } if ((getName() != null) && (!getName().equals(""))) { nameString = "name=\"" + getName() + "\" "; } if (isSQLCallQuery()) { queryString = "sql=\"" + getSQLString() + "\""; } else if (isJPQLCallQuery()) { queryString = "jpql=\"" + getJPQLString() + "\""; } return getClass().getSimpleName() + "(" + nameString + referenceClassString + queryString + ")"; }
public static ValidationException excusiveConnectionIsNoLongerAvailable(DatabaseQuery query, AbstractSession session) { Object[] args = { query.getReferenceClass().getName() }; ValidationException validationException = new ValidationException(ExceptionMessageGenerator.buildMessage(ValidationException.class, EXCLUSIVE_CONNECTION_NO_LONGER_AVAILABLE, args)); validationException.setErrorCode(EXCLUSIVE_CONNECTION_NO_LONGER_AVAILABLE); validationException.setSession(session); return validationException; }
public static ValidationException excusiveConnectionIsNoLongerAvailable(DatabaseQuery query, AbstractSession session) { Object[] args = { query.getReferenceClass().getName() }; ValidationException validationException = new ValidationException(ExceptionMessageGenerator.buildMessage(ValidationException.class, EXCLUSIVE_CONNECTION_NO_LONGER_AVAILABLE, args)); validationException.setErrorCode(EXCLUSIVE_CONNECTION_NO_LONGER_AVAILABLE); validationException.setSession(session); return validationException; }
/** * INTERNAL: * Return the low-level database accessors. * The database accessor is used for direct database access. * The right accessor for this broker will be returned. */ public Collection<Accessor> getAccessors(Call call, AbstractRecord translationRow, DatabaseQuery query) { if (query.getSessionName() != null) { return getSessionForName(query.getSessionName()).getAccessors(call, translationRow, query); } if (query.getReferenceClass() == null) { // CR#... this occurs if a data query is used without a session-name, needs to throw an error throw QueryException.unnamedQueryOnSessionBroker(null); } //session may be a broker too. Eventually a non session broker will be found return getSessionForClass(query.getReferenceClass()).getAccessors(call, translationRow, query); }
/** * INTERNAL: * Lookup the descriptor for this item by traversing its expression recursively. */ @Override public ClassDescriptor getLeafDescriptor(DatabaseQuery query, ClassDescriptor rootDescriptor, AbstractSession session) { // The base case // The following special case is where there is a parallel builder // which has a different reference class as the primary builder. Class queryClass = getQueryClass(); if ((queryClass != null) && ((query == null) || (queryClass != query.getReferenceClass()))) { return convertToCastDescriptor( session.getDescriptor(queryClass), session); } return convertToCastDescriptor(rootDescriptor, session);//support casting }
/** * INTERNAL: * Return the low-level database accessors. * The database accessor is used for direct database access. * The right accessor for this broker will be returned. */ public Collection<Accessor> getAccessors(Call call, AbstractRecord translationRow, DatabaseQuery query) { if (query.getSessionName() != null) { return getSessionForName(query.getSessionName()).getAccessors(call, translationRow, query); } if (query.getReferenceClass() == null) { // CR#... this occurs if a data query is used without a session-name, needs to throw an error throw QueryException.unnamedQueryOnSessionBroker(null); } //session may be a broker too. Eventually a non session broker will be found return getSessionForClass(query.getReferenceClass()).getAccessors(call, translationRow, query); }
/** * INTERNAL: * Lookup the descriptor for this item by traversing its expression recursively. */ @Override public ClassDescriptor getLeafDescriptor(DatabaseQuery query, ClassDescriptor rootDescriptor, AbstractSession session) { // The base case // The following special case is where there is a parallel builder // which has a different reference class as the primary builder. Class queryClass = getQueryClass(); if ((queryClass != null) && ((query == null) || (queryClass != query.getReferenceClass()))) { return convertToCastDescriptor( session.getDescriptor(queryClass), session); } return convertToCastDescriptor(rootDescriptor, session);//support casting }
/** * INTERNAL: * Answers the session to be used for the given query. */ protected AbstractSession getSessionForQuery(DatabaseQuery query) { if (query.hasSessionName()) { return getSessionForName(query.getSessionName()); } Class queryClass; if (query.getDescriptor() != null) { queryClass = query.getDescriptor().getJavaClass(); } else { queryClass = query.getReferenceClass(); if (queryClass == null) { throw QueryException.unnamedQueryOnSessionBroker(query); } } return getSessionForClass(queryClass); }
/** * INTERNAL: * Answers the session to be used for the given query. */ protected AbstractSession getSessionForQuery(DatabaseQuery query) { if (query.hasSessionName()) { return getSessionForName(query.getSessionName()); } Class queryClass; if (query.getDescriptor() != null) { queryClass = query.getDescriptor().getJavaClass(); } else { queryClass = query.getReferenceClass(); if (queryClass == null) { throw QueryException.unnamedQueryOnSessionBroker(query); } } return getSessionForClass(queryClass); }
/** * INTERNAL: * Answers the session to be used for the given query. */ protected AbstractSession getSessionForQuery(DatabaseQuery query) { if (query.hasSessionName()) { return getSessionForName(query.getSessionName()); } Class queryClass; if (query.getDescriptor() != null) { queryClass = query.getDescriptor().getJavaClass(); } else { queryClass = query.getReferenceClass(); if (queryClass == null) { throw QueryException.unnamedQueryOnSessionBroker(query); } } return getSessionForClass(queryClass); }
protected SQLSelectStatement createSQLSelectStatementForAssignedExpressionForUpdateAll(Expression value) { ReportQuery reportQuery = new ReportQuery(getQuery().getReferenceClass(), value.getBuilder()); reportQuery.setDescriptor(getQuery().getDescriptor()); reportQuery.setSession(getSession()); reportQuery.addAttribute("", value); SQLSelectStatement selectStatement = ((ExpressionQueryMechanism)reportQuery.getQueryMechanism()).buildReportQuerySelectStatement(false); reportQuery.setSession(null); return selectStatement; }
protected SQLSelectStatement createSQLSelectStatementForAssignedExpressionForUpdateAll(Expression value) { ReportQuery reportQuery = new ReportQuery(getQuery().getReferenceClass(), value.getBuilder()); reportQuery.setDescriptor(getQuery().getDescriptor()); reportQuery.setSession(getSession()); reportQuery.addAttribute("", value); SQLSelectStatement selectStatement = ((ExpressionQueryMechanism)reportQuery.getQueryMechanism()).buildReportQuerySelectStatement(false); reportQuery.setSession(null); return selectStatement; }
protected SQLSelectStatement createSQLSelectStatementForAssignedExpressionForUpdateAll(Expression value) { ReportQuery reportQuery = new ReportQuery(getQuery().getReferenceClass(), value.getBuilder()); reportQuery.setDescriptor(getQuery().getDescriptor()); reportQuery.setSession(getSession()); reportQuery.addAttribute("", value); SQLSelectStatement selectStatement = ((ExpressionQueryMechanism)reportQuery.getQueryMechanism()).buildReportQuerySelectStatement(false); reportQuery.setSession(null); return selectStatement; }
/** * INTERNAL * Adjust the reference class of the passed query if necessary * * Need to test this for Employee, employee.getAddress(), report query */ public void adjustReferenceClassForQuery(DatabaseQuery theQuery, GenerationContext generationContext) { Class referenceClass = getReferenceClass(theQuery, generationContext); if ((referenceClass != null) && (referenceClass != theQuery.getReferenceClass())) { if (theQuery.isObjectLevelReadQuery()) { // The referenceClass needs to be changed. // This should only happen in an ejbSelect... ((ObjectLevelReadQuery)theQuery).setReferenceClass(referenceClass); generationContext.setBaseQueryClass(referenceClass); ((ObjectLevelReadQuery)theQuery).changeDescriptor(generationContext.getSession()); } else if (theQuery.isUpdateAllQuery()) { ((UpdateAllQuery)theQuery).setReferenceClass(referenceClass); } else if (theQuery.isDeleteAllQuery()) { ((DeleteAllQuery)theQuery).setReferenceClass(referenceClass); } } }
/** * INTERNAL * Adjust the reference class of the passed query if necessary * * Need to test this for Employee, employee.getAddress(), report query */ public void adjustReferenceClassForQuery(DatabaseQuery theQuery, GenerationContext generationContext) { Class referenceClass = getReferenceClass(theQuery, generationContext); if ((referenceClass != null) && (referenceClass != theQuery.getReferenceClass())) { if (theQuery.isObjectLevelReadQuery()) { // The referenceClass needs to be changed. // This should only happen in an ejbSelect... ((ObjectLevelReadQuery)theQuery).setReferenceClass(referenceClass); generationContext.setBaseQueryClass(referenceClass); ((ObjectLevelReadQuery)theQuery).changeDescriptor(generationContext.getSession()); } else if (theQuery.isUpdateAllQuery()) { ((UpdateAllQuery)theQuery).setReferenceClass(referenceClass); } else if (theQuery.isDeleteAllQuery()) { ((DeleteAllQuery)theQuery).setReferenceClass(referenceClass); } } }
/** * INTERNAL * Adjust the reference class of the passed query if necessary * * Need to test this for Employee, employee.getAddress(), report query */ public void adjustReferenceClassForQuery(DatabaseQuery theQuery, GenerationContext generationContext) { Class referenceClass = getReferenceClass(theQuery, generationContext); if ((referenceClass != null) && (referenceClass != theQuery.getReferenceClass())) { if (theQuery.isObjectLevelReadQuery()) { // The referenceClass needs to be changed. // This should only happen in an ejbSelect... ((ObjectLevelReadQuery)theQuery).setReferenceClass(referenceClass); generationContext.setBaseQueryClass(referenceClass); ((ObjectLevelReadQuery)theQuery).changeDescriptor(generationContext.getSession()); } else if (theQuery.isUpdateAllQuery()) { ((UpdateAllQuery)theQuery).setReferenceClass(referenceClass); } else if (theQuery.isDeleteAllQuery()) { ((DeleteAllQuery)theQuery).setReferenceClass(referenceClass); } } }
/** * INTERNAL: * Override From session. Get the accessor based on the query, and execute call, * this is here for session broker. */ public Object executeCall(Call call, AbstractRecord translationRow, DatabaseQuery query) throws DatabaseException { Accessor accessor; if (query.getSessionName() == null) { accessor = query.getSession().getAccessor(query.getReferenceClass()); } else { accessor = query.getSession().getAccessor(query.getSessionName()); } query.setAccessor(accessor); try { return query.getAccessor().executeCall(call, translationRow, this); } finally { if (call.isFinished()) { query.setAccessor(null); } } }