Login | Register
My pages Projects Community openCollabNet

Discussions > commits > svn commit: r309 - trunk/src/org/argouml: i18n language/sql language/sql/reveng

argouml-sql
Discussion topic

Back to topic list

svn commit: r309 - trunk/src/org/argouml: i18n language/sql language/sql/reveng

Author elbedd
Full name Laurent BRAUD
Date 2013-06-03 10:51:24 PDT
Message Author: elbedd Date: 2013-06-03 10:51:23-0700 New Revision: 309 Added: trunk/src/org/argouml/language/sql/reveng/ModellerC.java trunk/src/org/argouml/language/sql/reveng/ModellerLevel.java trunk/src/org/argouml/language/sql/reveng/ModellerP.java Modified: trunk/src/org/argouml/i18n/argouml-sql.properties trunk/src/org/argouml/language/sql/ColumnDefinition.java trunk/src/org/argouml/language/sql/ForeignKeyDefinition.java trunk/src/org/argouml/language/sql/reveng/Modeller.java trunk/src/org/argouml/language/sql/reveng/SqlImportSettings.java trunk/src/org/argouml/language/sql/reveng/SqlServer.g Log: Parsing of SQL DDL scripts 1- Sql Server : Datatype shouldn't have [ and ] in the model 2- In previous commit (in svn), I forgot some "2013" in licence header 3- in physical Add stereotype in the project (but not try from profil) : FK,PK, table 4- In conception : char are replace by String [Unfortunatly, not the UML element but a datatype] Modified: trunk/src/org/argouml/i18n/argouml-sql.properties Url: http://argouml-sql.tigris.org/source/browse/argouml-sql/trunk/src/org/argouml/i18n/argouml-sql.properties?view=diff&pathrev=309&r1=308&r2=309 ============================================================================== --- trunk/src/org/argouml/i18n/argouml-sql.properties (original) +++ trunk/src/org/argouml/i18n/argouml-sql.properties 2013-06-03 10:51:23-0700 @@ -1,5 +1,5 @@ #****************************************************************************** -# Copyright (c) 2010 Contributors - see below +# Copyright (c) 2010-2013 Contributors - see below # All rights reserved. This program and the accompanying materials # are made available under the terms of the Eclipse Public License v1.0 # which accompanies this distribution, and is available at Modified: trunk/src/org/argouml/language/sql/ColumnDefinition.java Url: http://argouml-sql.tigris.org/source/browse/argouml-sql/trunk/src/org/argouml/language/sql/ColumnDefinition.java?view=diff&pathrev=309&r1=308&r2=309 ============================================================================== --- trunk/src/org/argouml/language/sql/ColumnDefinition.java (original) +++ trunk/src/org/argouml/language/sql/ColumnDefinition.java 2013-06-03 10:51:23-0700 @@ -1,6 +1,6 @@ /* $Id$ ***************************************************************************** - * Copyright (c) 2009 Contributors - see below + * Copyright (c) 2009-2013 Contributors - see below * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at Modified: trunk/src/org/argouml/language/sql/ForeignKeyDefinition.java Url: http://argouml-sql.tigris.org/source/browse/argouml-sql/trunk/src/org/argouml/language/sql/ForeignKeyDefinition.java?view=diff&pathrev=309&r1=308&r2=309 ============================================================================== --- trunk/src/org/argouml/language/sql/ForeignKeyDefinition.java (original) +++ trunk/src/org/argouml/language/sql/ForeignKeyDefinition.java 2013-06-03 10:51:23-0700 @@ -1,6 +1,6 @@ /* $Id$ ***************************************************************************** - * Copyright (c) 2009 Contributors - see below + * Copyright (c) 2009-2013 Contributors - see below * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -8,6 +8,7 @@ * * Contributors: * tfmorris + * Laurent BRAUD ***************************************************************************** * * Some portions of this file was previously release using the BSD License: Modified: trunk/src/org/argouml/language/sql/reveng/Modeller.java Url: http://argouml-sql.tigris.org/source/browse/argouml-sql/trunk/src/org/argouml/language/sql/reveng/Modeller.java?view=diff&pathrev=309&r1=308&r2=309 ============================================================================== --- trunk/src/org/argouml/language/sql/reveng/Modeller.java (original) +++ trunk/src/org/argouml/language/sql/reveng/Modeller.java 2013-06-03 10:51:23-0700 @@ -14,7 +14,6 @@ package org.argouml.language.sql.reveng; -import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.HashSet; @@ -26,8 +25,6 @@ import org.argouml.application.api.Argo; import org.argouml.kernel.ProjectManager; -import org.argouml.language.sql.ColumnDefinition; -import org.argouml.language.sql.ForeignKeyDefinition; import org.argouml.language.sql.TableDefinition; import org.argouml.model.Model; @@ -35,13 +32,12 @@ import org.argouml.profile.Profile; public class Modeller { - private static final int ASSOCIATION = 1; - private static final int GENERALIZATION = 2; + public static final int ASSOCIATION = 1; + public static final int GENERALIZATION = 2; // these next const need to be in a generic class - private static final String ASSOCIATION_1 = "1"; - private static final String ASSOCIATION_01 = "0..1"; - + public static final String ASSOCIATION_1 = "1"; + public static final String ASSOCIATION_01 = "0..1"; /** * Current working model. @@ -87,7 +83,7 @@ } - private String getMappingDataTypeSQLToMCD(String typeSQL) { + public String getMappingDataTypeSQLToUML(String typeSQL) { String typeUML = "String"; if (typeSQL.toLowerCase().indexOf("char") > 0) { // char, varchar, nvarchar [oracle], ... @@ -120,139 +116,16 @@ */ public void generateModele() { - Map classes = new HashMap(); - - List foreign_keys = new ArrayList(); - // build the classes. - for(TableDefinition table : tablesByName.values()) { - Object curClass = addClass(table); - classes.put(table.getName(), curClass); - for(ColumnDefinition c : table.getColumnDefinitions()) { - String attributeName = c.getName(); - String typeSpec = c.getDatatype(); - - if (this.settingLevel.equals(SqlImportSettings.LEVEL_MCD)) { - // Set a UML type instead of a type SQL (or with a tagValue) - // getMappingDataTypeSQLToMCD(typeSpec); - - // Don't create attribute if a FK exists. - // => reset attributeName to null - for (ForeignKeyDefinition fk : table.getFkDefinitions()){ - if(fk.hasColumnInTable(attributeName)){ - attributeName = null; - break; - } - } - } else { - // Stereotype,... - } - - // TODO : profile(SQL, or match with UML standard for conception) - Object packageOfType = this.model; - Object mClassifierType = null; - if (typeSpec != null) { - mClassifierType = Model.getFacade().lookupIn(packageOfType, typeSpec); - if (mClassifierType == null) { - mClassifierType = Model.getCoreFactory().buildDataType(typeSpec, packageOfType); - newElements.add(mClassifierType); - } - } - //Object mClassifier = null; - if (attributeName != null) { - Object mAttribute = buildAttribute(curClass, mClassifierType, attributeName); - String multiplicity = ASSOCIATION_1; - if (c.getNullable() == null || c.getNullable()) { - multiplicity = ASSOCIATION_01; - } - Model.getCoreHelper().setMultiplicity(mAttribute, - multiplicity); - - if (c.getDefaultValue() != null) { - Object newInitialValue = Model.getDataTypesFactory() - .createExpression("Sql", c.getDefaultValue()); - Model.getCoreHelper().setInitialValue(mAttribute, - newInitialValue); - } - - } - } - foreign_keys.addAll(table.getFkDefinitions()); + ModellerLevel generation = null; + if (this.settingLevel.equals(SqlImportSettings.LEVEL_MCD)) { + generation =new ModellerC(this); + } else { + // default : this.settingLevel.equals(SqlImportSettings.LEVEL_MPD) + generation =new ModellerP(this); } - for(ForeignKeyDefinition fk : foreign_keys) { - String name = fk.getForeignKeyName(); - - - - int typeAsso = ASSOCIATION; - if (fk.getReferencesTable() != fk.getTable()) { - List fkTable = fk.getColumnNames(); - - List pkTable = fk.getTable().getPrimaryKeyFields(); - List pkRef = fk.getReferencesTable().getPrimaryKeyFields(); - - if (fkTable.size()>0 && pkTable.size()>0 && fkTable.containsAll(pkTable) && pkTable.containsAll(fkTable)) { - - if (pkRef.size()>0 && fkTable.containsAll(pkTable) && pkTable.containsAll(fkTable)) { - typeAsso = GENERALIZATION; - } - } - - } - - - // if at least one is column of the FK, in the Table is nullable: "0..1", otherwise "1". - String multiplicity = ASSOCIATION_1; - for (ColumnDefinition columnDefinition : fk.getColumns()) { - if (columnDefinition.getNullable() == null - || columnDefinition.getNullable()) { - multiplicity = ASSOCIATION_01; - break; - } - } - - - - // Build the good association type (association ?, composition ?, agregation ?, generalisation ?) - Object mClassifier = classes.get(fk.getReferencesTable().getName()); - Object mClassifierEnd = classes.get(fk.getTable().getName()); - - String nameAssociationEnd = name; - - if (typeAsso == GENERALIZATION) { - Object mGeneralization = getGeneralization(this.model, mClassifier, mClassifierEnd); - Model.getCoreHelper().setName(mGeneralization, nameAssociationEnd); - - } else if (typeAsso == ASSOCIATION) { - Object mAssociationEnd = getAssociationEnd(name, mClassifier, mClassifierEnd); - //setVisibility(mAssociationEnd, modifiers); - Model.getCoreHelper().setMultiplicity( - mAssociationEnd, - multiplicity); - Model.getCoreHelper().setType(mAssociationEnd, mClassifier); - - // String nameAssociationEnd = name; - if (fk.getColumns().size() == 1) { - nameAssociationEnd = fk.getColumns().get(0).getName(); - } - - Model.getCoreHelper().setName(mAssociationEnd, nameAssociationEnd); - if (!mClassifier.equals(mClassifierEnd)) { - // Because if they are equal, - // then getAssociationEnd(name, mClassifier) could return - // the wrong assoc end, on the other hand the navigability - // is already set correctly (at least in this case), so the - // next line is not necessary. (maybe never necessary?) - thn - Model.getCoreHelper().setNavigable(mAssociationEnd, true); - } - //addDocumentationTag(mAssociationEnd, javadoc);* - // else if (typeAsso == GENERALIZATION) { - //} - } - - - - } + generation.genereInModele(); + } @@ -263,7 +136,7 @@ * @param mClassifierEnd * @return */ - private Object getAssociationEnd(String name, Object mClassifier, Object mClassifierEnd) { + public Object getAssociationEnd(String name, Object mClassifier, Object mClassifierEnd) { Object mAssociationEnd = null; for (Iterator i = Model.getFacade().getAssociationEnds(mClassifier) .iterator(); i.hasNext();) { @@ -320,7 +193,11 @@ } - private Object addClass(TableDefinition table) { + public Map getTablesByName() { + return tablesByName; + } + + public Object addClass(TableDefinition table) { Object mClass = addClassifier(Model.getCoreFactory().createClass(), table.getName(), table.getComment(), null); @@ -337,6 +214,16 @@ return mClass; } + + public Object getOrAddDatatype(Object packageOfType, String typeSpec) { + Object mClassifierType = Model.getFacade().lookupIn(packageOfType, typeSpec); + if (mClassifierType == null) { + mClassifierType = Model.getCoreFactory().buildDataType(typeSpec, packageOfType); + newElements.add(mClassifierType); + } + return mClassifierType; + } + private Object addClassifier(Object newClassifier, String name, String documentation, List typeParameters) { Object mClassifier; @@ -491,7 +378,7 @@ return stereotype; } - private Object buildAttribute(Object classifier, Object type, String name) { + public Object buildAttribute(Object classifier, Object type, String name) { Object mAttribute = Model.getCoreFactory().buildAttribute2(classifier, type); @@ -505,7 +392,7 @@ this.settingLevel = level; } - private Object getGeneralization(Object mPackage, + public Object getGeneralization(Object mPackage, Object parent, Object child) { Object mGeneralization = Model.getFacade().getGeneralization(child, @@ -520,4 +407,9 @@ } return mGeneralization; } + + + public Object getModel() { + return this.model; + } } Added: trunk/src/org/argouml/language/sql/reveng/ModellerC.java Url: http://argouml-sql.tigris.org/source/browse/argouml-sql/trunk/src/org/argouml/language/sql/reveng/ModellerC.java?view=markup&pathrev=309 ============================================================================== --- (empty file) +++ trunk/src/org/argouml/language/sql/reveng/ModellerC.java 2013-06-03 10:51:23-0700 @@ -0,0 +1,171 @@ +/* $Id$ + ******************************************************************************* + * Copyright (c) 2013 Contributors - see below + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Laurent BRAUD + ******************************************************************************* + */ + +package org.argouml.language.sql.reveng; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.argouml.language.sql.ColumnDefinition; +import org.argouml.language.sql.ForeignKeyDefinition; +import org.argouml.language.sql.TableDefinition; +import org.argouml.model.Model; + +public class ModellerC implements ModellerLevel{ + + private Modeller modellerSource; + + public ModellerC(Modeller modeller) { + this.modellerSource = modeller; + } + + + public void genereInModele() { + Map classes = new HashMap(); + + List foreign_keys = new ArrayList(); + // build the classes. + for(TableDefinition table : modellerSource.getTablesByName().values()) { + // + boolean writeClass = true; + + if (writeClass) { + Object curClass = modellerSource.addClass(table); + classes.put(table.getName(), curClass); + for(ColumnDefinition c : table.getColumnDefinitions()) { + String attributeName = c.getName(); + // TODO Set a UML type instead of a type SQL (or with a tagValue) + // How to have the YML Datatype. + String typeSpec = modellerSource.getMappingDataTypeSQLToUML(c.getDatatype()); + + + // Don't create attribute if a FK exists. + // => reset attributeName to null + for (ForeignKeyDefinition fk : table.getFkDefinitions()){ + if(fk.hasColumnInTable(attributeName)){ + attributeName = null; + break; + } + } + + if(attributeName!=null) { + + // TODO : profile(SQL, or match with UML standard for conception) + Object packageOfType = modellerSource.getModel(); + Object mClassifierType = null; + if (typeSpec != null) { + mClassifierType = modellerSource.getOrAddDatatype(packageOfType, typeSpec); + } + //Object mClassifier = null; + Object mAttribute = modellerSource.buildAttribute(curClass, mClassifierType, attributeName); + String multiplicity = Modeller.ASSOCIATION_1; + if (c.getNullable() == null || c.getNullable()) { + multiplicity = Modeller.ASSOCIATION_01; + } + Model.getCoreHelper().setMultiplicity(mAttribute, + multiplicity); + + if (c.getDefaultValue() != null) { + Object newInitialValue = Model.getDataTypesFactory() + .createExpression("Sql", c.getDefaultValue()); + Model.getCoreHelper().setInitialValue(mAttribute, + newInitialValue); + } + + + } + } + foreign_keys.addAll(table.getFkDefinitions()); + } // end write class + + } + + for(ForeignKeyDefinition fk : foreign_keys) { + String name = fk.getForeignKeyName(); + + int typeAsso = Modeller.ASSOCIATION; + String multiplicity = Modeller.ASSOCIATION_1; + + if (fk.getReferencesTable() != fk.getTable()) { + List fkTable = fk.getColumnNames(); + + List pkTable = fk.getTable().getPrimaryKeyFields(); + List pkRef = fk.getReferencesTable().getPrimaryKeyFields(); + + if (fkTable.size()>0 && pkTable.size()>0 && fkTable.containsAll(pkTable) && pkTable.containsAll(fkTable)) { + + if (pkRef.size()>0 && fkTable.containsAll(pkTable) && pkTable.containsAll(fkTable)) { + typeAsso = Modeller.GENERALIZATION; + } + } + + } + + // if at least one is column of the FK, in the Table is nullable: "0..1", otherwise "1". + for (ColumnDefinition columnDefinition : fk.getColumns()) { + if (columnDefinition.getNullable() == null + || columnDefinition.getNullable()) { + multiplicity = Modeller.ASSOCIATION_01; + break; + } + } + + + + // Build the good association type (association ?, composition ?, agregation ?, generalisation ?) + Object mClassifier = classes.get(fk.getReferencesTable().getName()); + Object mClassifierEnd = classes.get(fk.getTable().getName()); + + String nameAssociationEnd = name; + + if (typeAsso == Modeller.GENERALIZATION) { + Object mGeneralization = modellerSource.getGeneralization(modellerSource.getModel(), mClassifier, mClassifierEnd); + Model.getCoreHelper().setName(mGeneralization, nameAssociationEnd); + + } else if (typeAsso == Modeller.ASSOCIATION) { + Object mAssociationEnd = modellerSource.getAssociationEnd(name, mClassifier, mClassifierEnd); + //setVisibility(mAssociationEnd, modifiers); + Model.getCoreHelper().setMultiplicity( + mAssociationEnd, + multiplicity); + Model.getCoreHelper().setType(mAssociationEnd, mClassifier); + + // String nameAssociationEnd = name; + if (fk.getColumns().size() == 1) { + nameAssociationEnd = fk.getColumns().get(0).getName(); + } + + Model.getCoreHelper().setName(mAssociationEnd, nameAssociationEnd); + if (!mClassifier.equals(mClassifierEnd)) { + // Because if they are equal, + // then getAssociationEnd(name, mClassifier) could return + // the wrong assoc end, on the other hand the navigability + // is already set correctly (at least in this case), so the + // next line is not necessary. (maybe never necessary?) - thn + Model.getCoreHelper().setNavigable(mAssociationEnd, true); + } + //addDocumentationTag(mAssociationEnd, javadoc);* + // else if (typeAsso == GENERALIZATION) { + //} + } + + + + } + + } + + +} Added: trunk/src/org/argouml/language/sql/reveng/ModellerLevel.java Url: http://argouml-sql.tigris.org/source/browse/argouml-sql/trunk/src/org/argouml/language/sql/reveng/ModellerLevel.java?view=markup&pathrev=309 ============================================================================== --- (empty file) +++ trunk/src/org/argouml/language/sql/reveng/ModellerLevel.java 2013-06-03 10:51:23-0700 @@ -0,0 +1,21 @@ +/* $Id$ + ******************************************************************************* + * Copyright (c) 2013 Contributors - see below + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Laurent BRAUD + ******************************************************************************* + */ + +package org.argouml.language.sql.reveng; + + +public interface ModellerLevel { + + public void genereInModele(); + +} Added: trunk/src/org/argouml/language/sql/reveng/ModellerP.java Url: http://argouml-sql.tigris.org/source/browse/argouml-sql/trunk/src/org/argouml/language/sql/reveng/ModellerP.java?view=markup&pathrev=309 ============================================================================== --- (empty file) +++ trunk/src/org/argouml/language/sql/reveng/ModellerP.java 2013-06-03 10:51:23-0700 @@ -0,0 +1,149 @@ +/* $Id$ + ******************************************************************************* + * Copyright (c) 2013 Contributors - see below + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Laurent BRAUD + ******************************************************************************* + */ + +package org.argouml.language.sql.reveng; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.argouml.language.sql.ColumnDefinition; +import org.argouml.language.sql.ForeignKeyDefinition; +import org.argouml.language.sql.TableDefinition; +import org.argouml.model.Model; + +public class ModellerP implements ModellerLevel { + + private Modeller modellerSource; + + public ModellerP(Modeller modeller) { + this.modellerSource = modeller; + } + + + @Override + public void genereInModele() { + Map classes = new HashMap(); + + List foreign_keys = new ArrayList(); + // TODO : in a PMD package : Stereotype <> + Object packageOfType = modellerSource.getModel(); + + + // build the classes. + for(TableDefinition table : modellerSource.getTablesByName().values()) { + // + boolean writeClass = true; + + + if (writeClass) { + Object curClass = modellerSource.addClass(table); + classes.put(table.getName(), curClass); + Object stereoTable = Model.getExtensionMechanismsFactory().buildStereotype(curClass, "table", packageOfType); + + for(ColumnDefinition c : table.getColumnDefinitions()) { + String attributeName = c.getName(); + String typeSpec = c.getDatatype(); + + // TODO : Stereotype,... + // TODO : profile(SQL, or match with UML standard for conception) + + // TODO : Allow to add a package (which can have a stereotype). + Object mClassifierType = null; + if (typeSpec != null) { + mClassifierType = modellerSource.getOrAddDatatype(packageOfType, typeSpec); + } + + + Object mAttribute = modellerSource.buildAttribute(curClass, mClassifierType, attributeName); + String multiplicity = Modeller.ASSOCIATION_1; + if (c.getNullable() == null || c.getNullable()) { + multiplicity = Modeller.ASSOCIATION_01; + } + + Model.getCoreHelper().setMultiplicity(mAttribute, + multiplicity); + + if (c.getDefaultValue() != null) { + Object newInitialValue = Model.getDataTypesFactory() + .createExpression("Sql", c.getDefaultValue()); + Model.getCoreHelper().setInitialValue(mAttribute, + newInitialValue); + } + + if(table.getPrimaryKeyFields().contains(attributeName)) { + // TODO Only build if doesn't exists + Object stereoPk = Model.getExtensionMechanismsFactory().buildStereotype(mAttribute, "PK", packageOfType); + } + + + for (ForeignKeyDefinition fk : table.getFkDefinitions()){ + if(fk.hasColumnInTable(attributeName)){ + // TODO : th "fk" stereotype isn't the same than in ForeignKey + Object stereoFk = Model.getExtensionMechanismsFactory().buildStereotype(mAttribute, "FK", packageOfType); + break; + } + } + + } + foreign_keys.addAll(table.getFkDefinitions()); + } // end write class + + } + + for(ForeignKeyDefinition fk : foreign_keys) { + String name = fk.getForeignKeyName(); + + //int typeAsso = Modeller.ASSOCIATION; + String multiplicity = Modeller.ASSOCIATION_1; + + // Build the good association type (association ?, composition ?, agregation ?, generalisation ?) + Object mClassifier = classes.get(fk.getReferencesTable().getName()); + Object mClassifierEnd = classes.get(fk.getTable().getName()); + + String nameAssociationEnd = name; + + + Object mAssociationEnd = modellerSource.getAssociationEnd(name, mClassifier, mClassifierEnd); + //setVisibility(mAssociationEnd, modifiers); + Model.getCoreHelper().setMultiplicity( + mAssociationEnd, + multiplicity); + Model.getCoreHelper().setType(mAssociationEnd, mClassifier); + + // String nameAssociationEnd = name; + if (fk.getColumns().size() == 1) { + nameAssociationEnd = fk.getColumns().get(0).getName(); + } + + Model.getCoreHelper().setName(mAssociationEnd, nameAssociationEnd); + if (!mClassifier.equals(mClassifierEnd)) { + // Because if they are equal, + // then getAssociationEnd(name, mClassifier) could return + // the wrong assoc end, on the other hand the navigability + // is already set correctly (at least in this case), so the + // next line is not necessary. (maybe never necessary?) - thn + Model.getCoreHelper().setNavigable(mAssociationEnd, true); + } + //addDocumentationTag(mAssociationEnd, javadoc);* + // else if (typeAsso == GENERALIZATION) { + //} + + // + Object stereoFK = Model.getExtensionMechanismsFactory().buildStereotype(mAssociationEnd, "FK", packageOfType); + + + } + } +} Modified: trunk/src/org/argouml/language/sql/reveng/SqlImportSettings.java Url: http://argouml-sql.tigris.org/source/browse/argouml-sql/trunk/src/org/argouml/language/sql/reveng/SqlImportSettings.java?view=diff&pathrev=309&r1=308&r2=309 ============================================================================== --- trunk/src/org/argouml/language/sql/reveng/SqlImportSettings.java (original) +++ trunk/src/org/argouml/language/sql/reveng/SqlImportSettings.java 2013-06-03 10:51:23-0700 @@ -7,7 +7,7 @@ * http://www.eclipse.org/legal/epl-v10.html * * Contributors: - * BRAUD + * Laurent BRAUD ******************************************************************************* */ Modified: trunk/src/org/argouml/language/sql/reveng/SqlServer.g Url: http://argouml-sql.tigris.org/source/browse/argouml-sql/trunk/src/org/argouml/language/sql/reveng/SqlServer.g?view=diff&pathrev=309&r1=308&r2=309 ============================================================================== --- trunk/src/org/argouml/language/sql/reveng/SqlServer.g (original) +++ trunk/src/org/argouml/language/sql/reveng/SqlServer.g 2013-06-03 10:51:23-0700 @@ -269,7 +269,7 @@ ; data_type_def [ColumnDefinition col] : - data_type {$col.setDatatype($data_type.text);} + data_type {$col.setDatatype($data_type.name);} (data_length)? { $col.setLength($data_length.len); $col.setNbDecimal($data_length.decimal);//can be null

« Previous message in topic | 1 of 1 | Next message in topic »

Messages

Show all messages in topic

svn commit: r309 - trunk/src/org/argouml: i18n language/sql language/sql/reveng elbedd Laurent BRAUD 2013-06-03 10:51:24 PDT
Messages per page: