Revision: 3709
Author: [email protected]
Date: Fri Jul  9 15:54:14 2010
Log: NEW - bug 2458: Create Critic Manager
http://trillian.sqlpower.ca/bugzilla/show_bug.cgi?id=2458

Improved the text of the duplicate name critic to be easier to find where the duplication is.
http://code.google.com/p/power-architect/source/detail?r=3709

Modified:
/trunk/src/main/java/ca/sqlpower/architect/ddl/critic/impl/DuplicateNameCritic.java

=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/ddl/critic/impl/DuplicateNameCritic.java Wed Jun 30 12:59:24 2010 +++ /trunk/src/main/java/ca/sqlpower/architect/ddl/critic/impl/DuplicateNameCritic.java Fri Jul 9 15:54:14 2010
@@ -24,6 +24,7 @@
 import java.util.Collections;
 import java.util.List;

+import ca.sqlpower.architect.ArchitectUtils;
 import ca.sqlpower.architect.ddl.critic.CriticAndSettings;
 import ca.sqlpower.architect.ddl.critic.Criticism;
 import ca.sqlpower.architect.ddl.critic.QuickFix;
@@ -99,7 +100,7 @@
final String newPhysicalName = col.getPhysicalName() + "_" + count;
                 criticisms.add(new Criticism(subject,
"Duplicate physical name \"" + col.getPhysicalName() + "\"", this, - new QuickFix("Replace physical name with " + newPhysicalName) { + new QuickFix("Replace physical name " + col.getPhysicalName() + " with " + newPhysicalName) {
                             @Override
                             public void apply() {
                                 col.setPhysicalName(newPhysicalName);
@@ -115,11 +116,15 @@
             if (obj instanceof SQLColumn) {
physicalName = ((SQLColumn) obj).getAutoIncrementSequenceName();
             }
- Collection<SQLObject> sameNameObjects = topLevelPhysicalNameMap.get(physicalName); + final Collection<SQLObject> sameNameObjects = topLevelPhysicalNameMap.get(physicalName);
             if (!sameNameObjects.isEmpty()) {
final String newPhysicalName = physicalName + "_" + sameNameObjects.size(); - criticisms.add(new Criticism(subject, "Duplicate physical name \"" + physicalName + "\"", this, - new QuickFix("Replace physical name with " + newPhysicalName) {
+                SQLObject duplicate = sameNameObjects.iterator().next();
+                criticisms.add(new Criticism(subject,
+                        "Duplicate physical name \"" + physicalName +
+ "\". There is a " + ArchitectUtils.convertClassToString(duplicate.getClass())+ " in " + + duplicate.getParent().getName() + " with this name already.", this, + new QuickFix("Replace physical name " + obj.getPhysicalName() + " with " + newPhysicalName) {
                             @Override
                             public void apply() {
                                 if (obj instanceof SQLColumn) {

Reply via email to