Revision: 3630
Author: [email protected]
Date: Wed Jun 16 13:54:30 2010
Log: Check for empty phyiscal name and show a proper error message.
http://code.google.com/p/power-architect/source/detail?r=3630
Modified:
/trunk/src/main/java/ca/sqlpower/architect/ddl/critic/impl/PhysicalNameCritic.java
=======================================
---
/trunk/src/main/java/ca/sqlpower/architect/ddl/critic/impl/PhysicalNameCritic.java
Mon Jun 14 12:45:10 2010
+++
/trunk/src/main/java/ca/sqlpower/architect/ddl/critic/impl/PhysicalNameCritic.java
Wed Jun 16 13:54:30 2010
@@ -24,14 +24,15 @@
import java.util.List;
import java.util.regex.Pattern;
-import ca.sqlpower.architect.ddl.critic.Critic;
import ca.sqlpower.architect.ddl.critic.CriticAndSettings;
import ca.sqlpower.architect.ddl.critic.Criticism;
import ca.sqlpower.architect.ddl.critic.QuickFix;
import ca.sqlpower.object.annotation.Accessor;
import ca.sqlpower.object.annotation.Constructor;
import ca.sqlpower.object.annotation.ConstructorParameter;
+import ca.sqlpower.sqlobject.SQLColumn;
import ca.sqlpower.sqlobject.SQLObject;
+import ca.sqlpower.sqlobject.SQLTable;
/**
* Criticizes the physical name of all SQLObjects based on the parameters
given
@@ -74,10 +75,22 @@
final SQLObject so = (SQLObject) subject;
String physName = so.getPhysicalName();
-
- if (physName == null) return Collections.emptyList();
-
+
List<Criticism> criticisms = new ArrayList<Criticism>();
+
+ if (physName == null || physName.trim().length() == 0){
+ criticisms.add(new Criticism(
+ so,
+ "No physical name for " + so.getName(),
+ this,
+ new QuickFix("Copy logical name to physical name") {
+ public void apply() {
+ so.setPhysicalName(so.getName());
+ }
+ }));
+ return criticisms;
+ }
+
if (physName.length() > getMaxNameLength()) {
criticisms.add(new Criticism(
so,
@@ -91,6 +104,7 @@
}
}));
}
+
if (!getLegalNamePattern().matcher(physName).matches()) {
criticisms.add(new Criticism(
so,