From: <zep...@us...> - 2010-10-26 18:45:03
|
Revision: 419 http://flatpack.svn.sourceforge.net/flatpack/?rev=419&view=rev Author: zepernick Date: 2010-10-26 18:44:57 +0000 (Tue, 26 Oct 2010) Log Message: ----------- Added an option to over ride the table names for DATASTRUCTURE and DATAFILE. The table names can now be changed all together, or be set to lower case if so desired. Modified Paths: -------------- trunk/flatpack/src/main/java/net/sf/flatpack/AbstractParser.java trunk/flatpack/src/main/java/net/sf/flatpack/DBDelimiterParser.java trunk/flatpack/src/main/java/net/sf/flatpack/DBFixedLengthParser.java trunk/flatpack/src/main/java/net/sf/flatpack/Parser.java trunk/flatpack/src/main/java/net/sf/flatpack/util/ParserUtils.java Modified: trunk/flatpack/src/main/java/net/sf/flatpack/AbstractParser.java =================================================================== --- trunk/flatpack/src/main/java/net/sf/flatpack/AbstractParser.java 2010-03-23 21:33:47 UTC (rev 418) +++ trunk/flatpack/src/main/java/net/sf/flatpack/AbstractParser.java 2010-10-26 18:44:57 UTC (rev 419) @@ -75,6 +75,10 @@ private boolean storeRawDataToDataError; private boolean storeRawDataToDataSet; + + private String dataFileTable = "DATAFILE"; + + private String dataStructureTable = "DATASTRUCTURE"; protected AbstractParser(final Reader dataSourceReader) { this.dataSourceReader = dataSourceReader; @@ -303,4 +307,22 @@ public void setStoreRawDataToDataSet(boolean storeRawDataToDataSet) { this.storeRawDataToDataSet = storeRawDataToDataSet; } + + public String getDataFileTable() { + return dataFileTable; + } + + public void setDataFileTable(String dataFileTable) { + this.dataFileTable = dataFileTable; + } + + public String getDataStructureTable() { + return dataStructureTable; + } + + public void setDataStructureTable(String dataStructureTable) { + this.dataStructureTable = dataStructureTable; + } + + } Modified: trunk/flatpack/src/main/java/net/sf/flatpack/DBDelimiterParser.java =================================================================== --- trunk/flatpack/src/main/java/net/sf/flatpack/DBDelimiterParser.java 2010-03-23 21:33:47 UTC (rev 418) +++ trunk/flatpack/src/main/java/net/sf/flatpack/DBDelimiterParser.java 2010-10-26 18:44:57 UTC (rev 419) @@ -75,7 +75,7 @@ addToCloseReaderList(r); } - final List cmds = ParserUtils.buildMDFromSQLTable(con, getDataDefinition()); + final List cmds = ParserUtils.buildMDFromSQLTable(con, getDataDefinition(), this); addToMetaData(cmds); // addToColumnMD(PZConstants.DETAIL_ID, cmds); // addToColumnMD(PZConstants.COL_IDX, ParserUtils.buidColumnIndexMap(cmds, this)); Modified: trunk/flatpack/src/main/java/net/sf/flatpack/DBFixedLengthParser.java =================================================================== --- trunk/flatpack/src/main/java/net/sf/flatpack/DBFixedLengthParser.java 2010-03-23 21:33:47 UTC (rev 418) +++ trunk/flatpack/src/main/java/net/sf/flatpack/DBFixedLengthParser.java 2010-10-26 18:44:57 UTC (rev 419) @@ -92,7 +92,7 @@ addToCloseReaderList(r); } - final List cmds = ParserUtils.buildMDFromSQLTable(con, getDataDefinition()); + final List cmds = ParserUtils.buildMDFromSQLTable(con, getDataDefinition(), this); addToMetaData(cmds); // addToColumnMD(PZConstants.DETAIL_ID, cmds); Modified: trunk/flatpack/src/main/java/net/sf/flatpack/Parser.java =================================================================== --- trunk/flatpack/src/main/java/net/sf/flatpack/Parser.java 2010-03-23 21:33:47 UTC (rev 418) +++ trunk/flatpack/src/main/java/net/sf/flatpack/Parser.java 2010-10-26 18:44:57 UTC (rev 419) @@ -185,5 +185,55 @@ */ void setStoreRawDataToDataSet(final boolean storeRawDataToDataError); + /** + * Returns the table name that will be used to read the MetaData from the db. The + * default table name is DATAFILE. This may be problimatic for some who are using case + * sensistive db table names or who wish to provide a different table name in the db. + * + * This is only applicable when using a database for file mappings. + * + * @return the DATAFILE table name + */ + String getDataFileTable(); + + /** + * Sets the table name that will be used to read the MetaData from the db. The + * default table name is DATAFILE. This may be problimatic for some who are using case + * sensistive db table names or who wish to provide a different table name in the db. + * + * This is only applicable when using a database for file mappings. + * + * @param dataFileTable + * Name of the table name to use in place of "DATAFILE" + */ + void setDataFileTable(final String dataFileTable); + + /** + * Returns the table name that will be used to read the MetaData from the db. The + * default table name is DATASTRUCTURE. This may be problimatic for some who are using case + * sensistive db table names or who wish to provide a different table name in the db. + * + * This is only applicable when using a database for file mappings. + * + * @return the DATASTRUCTURE table name + */ + String getDataStructureTable(); + + + + /** + * Sets the table name that will be used to read the MetaData from the db. The + * default table name is DATASTRUCTURE. This may be problimatic for some who are using case + * sensistive db table names or who wish to provide a different table name in the db. + * + * This is only applicable when using a database for file mappings. + * + * @param dataStructureTable + * Name of the table name to us in placfe of "DATASTRUCTURE" + * + */ + void setDataStructureTable(String dataStructureTable); + + } Modified: trunk/flatpack/src/main/java/net/sf/flatpack/util/ParserUtils.java =================================================================== --- trunk/flatpack/src/main/java/net/sf/flatpack/util/ParserUtils.java 2010-03-23 21:33:47 UTC (rev 418) +++ trunk/flatpack/src/main/java/net/sf/flatpack/util/ParserUtils.java 2010-10-26 18:44:57 UTC (rev 419) @@ -1082,6 +1082,7 @@ } } + /** * Returns a definition of pz column metadata from a given * pz datastructure held in an SQL database @@ -1095,14 +1096,38 @@ * @return List */ public static List buildMDFromSQLTable(final Connection con, final String dataDefinition) throws SQLException { + return buildMDFromSQLTable(con, dataDefinition, null); + } + + + /** + * Returns a definition of pz column metadata from a given + * pz datastructure held in an SQL database + * + * @param con + * Database connection containing the Datafile and Datastructure + * tables + * @param dataDefinition + * Name of the data definition stored in the Datafile table + * @param parser + * Instance of the parser being used for the file. It will be checked to get the table names + * for the DATASTRUCTURE table and DATAFILE table. + * @throws SQLException + * @return List + */ + public static List buildMDFromSQLTable(final Connection con, final String dataDefinition, final Parser parser) throws SQLException { PreparedStatement stmt = null; ResultSet rs = null; final List cmds = new ArrayList(); + String dfTbl = parser != null ? parser.getDataFileTable() : "DATAFILE"; + String dsTbl = parser != null ? parser.getDataStructureTable() : "DATASTRUCTURE"; try { - final String sql = "SELECT * FROM DATAFILE INNER JOIN DATASTRUCTURE ON " + "DATAFILE.DATAFILE_NO = DATASTRUCTURE.DATAFILE_NO " - + "WHERE DATAFILE.DATAFILE_DESC = ? " + "ORDER BY DATASTRUCTURE_COL_ORDER"; + final StringBuffer sqlSb = new StringBuffer(); + + sqlSb.append("SELECT * FROM ").append(dfTbl).append(" INNER JOIN ").append(dsTbl).append(" ON ").append(dfTbl).append(".DATAFILE_NO = ").append(dsTbl).append(".DATAFILE_NO " + + "WHERE DATAFILE_DESC = ? ORDER BY DATASTRUCTURE_COL_ORDER"); - stmt = con.prepareStatement(sql); // always use PreparedStatement + stmt = con.prepareStatement(sqlSb.toString()); // always use PreparedStatement // as the DB can do clever things. stmt.setString(1, dataDefinition); rs = stmt.executeQuery(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |