/** * PUBLIC: * Returns the integrityChecker.IntegrityChecker holds all the ClassDescriptor Exceptions. */ @Override public IntegrityChecker getIntegrityChecker() { // BUG# 2700595 - Lazily create an IntegrityChecker if one has not already been created. if (integrityChecker == null) { integrityChecker = new IntegrityChecker(); } return integrityChecker; }
/** * INTERNAL: * This method handles all the Descriptor Exceptions. * This method will throw the exception or add the exceptions into a vector depending on the value of shouldCatchExceptions. */ public void handleError(RuntimeException runtimeException) { if (!shouldCatchExceptions()) { throw runtimeException; } getCaughtExceptions().addElement(runtimeException); }
/** * INTERNAL: * This method checks that tables are present in the database. */ public boolean checkTable(DatabaseTable table, AbstractSession session) { if (getTables().size() == 0) { // load the tables from the session initializeTables(session); } boolean tableExists = getTables().contains(table.getName()); //Some DBs (e.g. some versions of MySQL) convert all the table names to lower case. if (!tableExists && session.getPlatform().isMySQL()) { return getTables().contains(table.getName().toLowerCase()); } return tableExists; }
/** * INTERNAL: * Return if any runtime errors occurred. */ public boolean hasRuntimeExceptions() { if (hasErrors()) { for (Enumeration exceptionsEnum = getCaughtExceptions().elements(); exceptionsEnum.hasMoreElements();) { if (exceptionsEnum.nextElement() instanceof RuntimeException) { return true; } } } return false; }
/** * INTERNAL: * initialize the Policy */ public void initialize(AbstractSession session, ClassDescriptor descriptor) { //3934266 If changePolicy is ObjectChangeTrackingPolicy or AttributeChangeTrackingPolicy, the class represented //by the descriptor must implement ChangeTracker interface. Otherwise throw an exception. Class javaClass = descriptor.getJavaClass(); if (!ChangeTracker.class.isAssignableFrom(javaClass)) { session.getIntegrityChecker().handleError(DescriptorException.needToImplementChangeTracker(descriptor)); } }
getIntegrityChecker().handleError(exception); getIntegrityChecker().handleError(exception); getIntegrityChecker().handleError(exception); getCommitManager().initializeCommitOrder(); } catch (RuntimeException exception) { getIntegrityChecker().handleError(exception); if (getIntegrityChecker().hasErrors()) {
if (session.getIntegrityChecker().shouldCheckDatabase()) { for (Iterator iterator = getTables().iterator(); iterator.hasNext();) { DatabaseTable table = (DatabaseTable)iterator.next(); if (session.getIntegrityChecker().checkTable(table, session)) { session.getIntegrityChecker().handleError(DescriptorException.fieldIsNotPresentInDatabase(this, table.getName(), field.getName())); session.getIntegrityChecker().handleError(DescriptorException.tableIsNotPresentInDatabase(this));
writer.println(cr + ExceptionMessageGenerator.getHeader("DescriptorExceptionsHeader")); writer.println("---------------------------------------------------------"); for (Enumeration enumtr = getIntegrityChecker().getCaughtExceptions().elements(); enumtr.hasMoreElements();) { Exception e = (Exception)enumtr.nextElement(); if (getIntegrityChecker().hasRuntimeExceptions()) { writer.println(cr + ExceptionMessageGenerator.getHeader("RuntimeExceptionsHeader")); writer.println("---------------------------------------------------------"); for (Enumeration enumtr = getIntegrityChecker().getCaughtExceptions().elements(); enumtr.hasMoreElements();) { Exception e = (Exception)enumtr.nextElement();
/** * PUBLIC: * This method is used for catching all the Descriptor Exceptions */ public void catchExceptions() { setShouldCatchExceptions(true); }
/** * PUBLIC: * This method is used to check the database tables. */ public void checkDatabase() { setShouldCheckDatabase(true); }
if (session.getIntegrityChecker().hasErrors()){ session.handleException(new IntegrityException(session.getIntegrityChecker()));
/** * INTERNAL: * initialize the Policy */ public void initialize(AbstractSession session, ClassDescriptor descriptor) { //3934266 If changePolicy is ObjectChangeTrackingPolicy or AttributeChangeTrackingPolicy, the class represented //by the descriptor must implement ChangeTracker interface. Otherwise throw an exception. Class javaClass = descriptor.getJavaClass(); if (!ChangeTracker.class.isAssignableFrom(javaClass)) { session.getIntegrityChecker().handleError(DescriptorException.needToImplementChangeTracker(descriptor)); } }
getIntegrityChecker().handleError(exception); getIntegrityChecker().handleError(exception); getIntegrityChecker().handleError(exception); getCommitManager().initializeCommitOrder(); } catch (RuntimeException exception) { getIntegrityChecker().handleError(exception); if (getIntegrityChecker().hasErrors()) {
if (session.getIntegrityChecker().shouldCheckDatabase()) { for (Iterator iterator = getTables().iterator(); iterator.hasNext();) { DatabaseTable table = (DatabaseTable)iterator.next(); if (session.getIntegrityChecker().checkTable(table, session)) { session.getIntegrityChecker().handleError(DescriptorException.fieldIsNotPresentInDatabase(this, table.getName(), field.getName())); session.getIntegrityChecker().handleError(DescriptorException.tableIsNotPresentInDatabase(this));
writer.println(cr + ExceptionMessageGenerator.getHeader("DescriptorExceptionsHeader")); writer.println("---------------------------------------------------------"); for (Enumeration enumtr = getIntegrityChecker().getCaughtExceptions().elements(); enumtr.hasMoreElements();) { Exception e = (Exception)enumtr.nextElement(); if (getIntegrityChecker().hasRuntimeExceptions()) { writer.println(cr + ExceptionMessageGenerator.getHeader("RuntimeExceptionsHeader")); writer.println("---------------------------------------------------------"); for (Enumeration enumtr = getIntegrityChecker().getCaughtExceptions().elements(); enumtr.hasMoreElements();) { Exception e = (Exception)enumtr.nextElement();
/** * INTERNAL: * Return if any runtime errors occurred. */ public boolean hasRuntimeExceptions() { if (hasErrors()) { for (Enumeration exceptionsEnum = getCaughtExceptions().elements(); exceptionsEnum.hasMoreElements();) { if (exceptionsEnum.nextElement() instanceof RuntimeException) { return true; } } } return false; }
/** * PUBLIC: * This method is used for don't catching all the Descriptor Exceptions */ public void dontCatchExceptions() { setShouldCatchExceptions(false); }
/** * PUBLIC: * This method is used for don't checking the database tables and fields. */ public void dontCheckDatabase() { setShouldCheckDatabase(false); }
if (getIntegrityChecker().hasErrors()) { handleSevere(new IntegrityException(getIntegrityChecker()));
/** * INTERNAL: * initialize the Policy */ public void initialize(AbstractSession session, ClassDescriptor descriptor) { //3934266 If changePolicy is ObjectChangeTrackingPolicy or AttributeChangeTrackingPolicy, the class represented //by the descriptor must implement ChangeTracker interface. Otherwise throw an exception. Class javaClass = descriptor.getJavaClass(); if (!ChangeTracker.class.isAssignableFrom(javaClass)) { session.getIntegrityChecker().handleError(DescriptorException.needToImplementChangeTracker(descriptor)); } }