List of usage examples for org.hibernate.mapping PersistentClass accept
public abstract Object accept(PersistentClassVisitor mv);
From source file:com.amalto.core.storage.hibernate.HibernateStorage.java
License:Open Source License
@Override public Set<String> findTablesToDrop(List<ComplexTypeMetadata> sortedTypesToDrop) { Set<String> tablesToDrop = new LinkedHashSet<String>(); TableClosureVisitor visitor = new TableClosureVisitor(); // Drop table order should be reversed for (int i = sortedTypesToDrop.size() - 1; i >= 0; i--) { ComplexTypeMetadata typeMetadata = sortedTypesToDrop.get(i); String typeName = typeMetadata.getName(); if (!typeMetadata.isInstantiable()) { typeName = "X_" + typeName; //$NON-NLS-1$ }//from w ww .j a v a2 s . com PersistentClass metadata = configuration.getClassMapping(ClassCreator.getClassName(typeName)); if (metadata != null) { tablesToDrop.addAll((Collection<String>) metadata.accept(visitor)); } else { LOGGER.warn("Could not find table names for type '" + typeMetadata.getName() + "'."); //$NON-NLS-1$ //$NON-NLS-2$ } } if (LOGGER.isTraceEnabled()) { StringBuilder aggregatedTableNames = new StringBuilder(); for (String table : tablesToDrop) { aggregatedTableNames.append(table).append(' '); } LOGGER.trace("Table(s) scheduled for drop: " + aggregatedTableNames); //$NON-NLS-1$ } return tablesToDrop; }