diff options
Diffstat (limited to 'plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/internal/db/ddl/DBField.java')
-rw-r--r-- | plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/internal/db/ddl/DBField.java | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/internal/db/ddl/DBField.java b/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/internal/db/ddl/DBField.java index ea0b2d927f..21c44b100d 100644 --- a/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/internal/db/ddl/DBField.java +++ b/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/internal/db/ddl/DBField.java @@ -243,6 +243,31 @@ public class DBField extends DBSchemaElement implements InternalDBField ((InternalDBTable)table).removeField(this); } + public boolean isAssignableFrom(IDBField other) + { + if (!getType().isAssignableFrom(other.getType())) + { + return false; + } + + if (getPrecision() < other.getPrecision()) + { + return false; + } + + if (getScale() < other.getScale()) + { + return false; + } + + if (isNotNull() && !other.isNotNull()) + { + return false; + } + + return true; + } + public String formatPrecision() { int precision = getPrecision(); |