Author: bfoster
Date: Sat Mar 26 00:59:33 2011
New Revision: 1085621

URL: http://svn.apache.org/viewvc?rev=1085621&view=rev
Log:

- continued updates to column-based datasource catalog

---------------------

Removed:
    
oodt/branches/wengine-branch/filemgr/src/main/java/gov/nasa/jpl/oodt/cas/filemgr/catalog/
    
oodt/branches/wengine-branch/filemgr/src/main/java/gov/nasa/jpl/oodt/cas/filemgr/metadata/extractors/
    
oodt/branches/wengine-branch/filemgr/src/main/java/gov/nasa/jpl/oodt/cas/filemgr/structs/query/
    
oodt/branches/wengine-branch/filemgr/src/main/java/gov/nasa/jpl/oodt/cas/filemgr/structs/type/
    
oodt/branches/wengine-branch/filemgr/src/main/java/gov/nasa/jpl/oodt/cas/filemgr/system/
    
oodt/branches/wengine-branch/filemgr/src/main/java/gov/nasa/jpl/oodt/cas/filemgr/versioning/
Modified:
    
oodt/branches/wengine-branch/filemgr/src/main/java/org/apache/oodt/cas/filemgr/catalog/ColumnBasedDataSourceCatalog.java
    
oodt/branches/wengine-branch/filemgr/src/main/java/org/apache/oodt/cas/filemgr/system/XmlRpcFileManager.java

Modified: 
oodt/branches/wengine-branch/filemgr/src/main/java/org/apache/oodt/cas/filemgr/catalog/ColumnBasedDataSourceCatalog.java
URL: 
http://svn.apache.org/viewvc/oodt/branches/wengine-branch/filemgr/src/main/java/org/apache/oodt/cas/filemgr/catalog/ColumnBasedDataSourceCatalog.java?rev=1085621&r1=1085620&r2=1085621&view=diff
==============================================================================
--- 
oodt/branches/wengine-branch/filemgr/src/main/java/org/apache/oodt/cas/filemgr/catalog/ColumnBasedDataSourceCatalog.java
 (original)
+++ 
oodt/branches/wengine-branch/filemgr/src/main/java/org/apache/oodt/cas/filemgr/catalog/ColumnBasedDataSourceCatalog.java
 Sat Mar 26 00:59:33 2011
@@ -85,6 +85,23 @@ public class ColumnBasedDataSourceCatalo
         this.pageSize = pageSize;
         this.dbIntegerTypes = dbIntegerTypes;
         this.dbVectorElements = dbVectorElements;
+        
+        Connection conn = null;
+        Statement statement = null;
+        try {
+               conn = ds.getConnection();
+               statement = conn.createStatement();
+               statement.execute("alter session set NLS_DATE_FORMAT = 
'YYYY-MM-DD'");
+               statement.execute("alter session set NLS_TIME_FORMAT = 
'HH24:MI:SS.FF3'");
+               statement.execute("alter session set NLS_TIMESTAMP_FORMAT = 
'YYYY-MM-DD\"T\"HH24:MI:SS.FF3'");
+               statement.execute("alter session set NLS_TIME_TZ_FORMAT = 
'HH24:MI:SS.FF3TZH:TZM'");
+               statement.execute("alter session set 
NLS_TIMESTAMP_FORMAT='YYYY-MM-DD\"T\"HH24:MI:SS.FF3\"Z\"'");
+               statement.execute("alter session set 
NLS_TIMESTAMP_TZ_FORMAT='YYYY-MM-DD\"T\"HH24:MI:SS.FF3TZH:TZM'");
+        }catch (Exception e) {
+        }finally {
+               try { conn.close(); }catch (Exception e) {}
+               try { statement.close(); }catch (Exception e) {}
+        }
     }
     
     public int getPageSize() {
@@ -507,36 +524,30 @@ public class ColumnBasedDataSourceCatalo
         Connection conn = null;
         Statement statement = null;
 
-        String productRefTable = product.getProductType().getName()
-                + "_reference";
-
         try {
             conn = dataSource.getConnection();
             conn.setAutoCommit(false);
             statement = conn.createStatement();
 
-            for (Iterator<Reference> i = 
product.getProductReferences().iterator(); i
-                    .hasNext();) {
-                Reference r = i.next();
+            for (Reference reference : product.getProductReferences()) {
 
                 String addRefSql = "INSERT INTO "
-                        + productRefTable
+                        + product.getProductType().getName() + "_reference"
                         + " "
                         + "(ProductId, OriginalReference, DataStoreReference, 
FileSize, MimeType) "
                         + "VALUES ("
                         + product.getProductId()
                         + ", '"
-                        + r.getOrigReference()
+                        + reference.getOrigReference()
                         + "', '"
-                        + r.getDataStoreReference()
+                        + reference.getDataStoreReference()
                         + "', "
-                        + r.getFileSize()
+                        + reference.getFileSize()
                         + ",'"
-                        + ((r.getMimeType() == null) ? "" : r.getMimeType()
+                        + ((reference.getMimeType() == null) ? "" : 
reference.getMimeType()
                                 .getName()) + "')";
 
-                LOG.log(Level.FINE, "addProductReferences: Executing: "
-                        + addRefSql);
+                LOG.log(Level.FINE, "addProductReferences: Executing: " + 
addRefSql);
                 statement.execute(addRefSql);
             }
 
@@ -589,7 +600,7 @@ public class ColumnBasedDataSourceCatalo
                ProductType productType = new ProductType();
                productType.setName(rs.getString("ProductType"));
                product.setProductType(productType);
-               product.setTransferStatus(rs.getString("TransferStatus"));
+               
product.setTransferStatus(rs.getString("ProductTransferStatus"));
                 return product;
             }else {
                throw new Exception("Failed to load product for product id = '" 
+ productId + "'");
@@ -833,6 +844,7 @@ public class ColumnBasedDataSourceCatalo
             conn = dataSource.getConnection();
             statement = conn.createStatement();
 
+            System.out.println(product.getProductType());
             String metadataSql = "SELECT * FROM "
                     + product.getProductType().getName() + "_vw "
                     + " WHERE ProductId = " + product.getProductId();
@@ -842,10 +854,18 @@ public class ColumnBasedDataSourceCatalo
             
             Metadata metadata = new Metadata();
             List<Element> elements = 
this.validationLayer.getElements(product.getProductType());
-            if (rs.next()) 
-                for (Element element : elements) 
-                    metadata.addMetadata(element.getElementName(), 
rs.getString(element.getElementName()));
-            
+            if (rs.next()) { 
+                for (Element element : elements) {
+                       try {
+                               String value =  
rs.getString(element.getElementName());
+                               if (value == null)
+                                       throw new Exception("value null");
+                               metadata.addMetadata(element.getElementName(), 
value);
+                       }catch (Exception e) {
+                        LOG.log(Level.WARNING, "Element '" + 
element.getElementName() + "' not found : " + e.getMessage());
+                       }
+                }
+            }
             return metadata;
         } catch (Exception e) {
             LOG.log(Level.SEVERE, "Exception getting metadata. Message: "
@@ -905,7 +925,7 @@ public class ColumnBasedDataSourceCatalo
             
                String getProductSql = "SELECT * FROM " + type.getName();
                if (query.getCriteria() != null)
-                       getProductSql += " WHERE " + 
SqlParser.getInfixCriteriaString(query.getCriteria());
+                       getProductSql += " WHERE " + 
SqlParser.getInfixCriteriaString(query.getCriteria()).replaceAll("==", "=");;
 
             rs = statement.executeQuery(getProductSql);
 
@@ -954,9 +974,10 @@ public class ColumnBasedDataSourceCatalo
                     ResultSet.CONCUR_READ_ONLY);
             
                String getProductSql = "SELECT ProductId FROM " + 
type.getName() + "_vw";
-               if (query.getCriteria() != null)
-                       getProductSql += " WHERE " + 
SqlParser.getInfixCriteriaString(query.getCriteria());
+               if (query.getCriteria() != null && query.getCriteria().size() > 
0)
+                       getProductSql += " WHERE " + 
SqlParser.getInfixCriteriaString(query.getCriteria()).replaceAll("==", "=");
 
+               LOG.log(Level.FINE, "performing getProductSql '" + 
getProductSql + "'");
             rs = statement.executeQuery(getProductSql);
 
             Vector<String> productIds = new Vector<String>();

Modified: 
oodt/branches/wengine-branch/filemgr/src/main/java/org/apache/oodt/cas/filemgr/system/XmlRpcFileManager.java
URL: 
http://svn.apache.org/viewvc/oodt/branches/wengine-branch/filemgr/src/main/java/org/apache/oodt/cas/filemgr/system/XmlRpcFileManager.java?rev=1085621&r1=1085620&r2=1085621&view=diff
==============================================================================
--- 
oodt/branches/wengine-branch/filemgr/src/main/java/org/apache/oodt/cas/filemgr/system/XmlRpcFileManager.java
 (original)
+++ 
oodt/branches/wengine-branch/filemgr/src/main/java/org/apache/oodt/cas/filemgr/system/XmlRpcFileManager.java
 Sat Mar 26 00:59:33 2011
@@ -633,7 +633,7 @@ public class XmlRpcFileManager {
                List<String> productIds = catalog.query(catalogQuery, 
productTypes);
             for (String productId : productIds) {
                 Product product = catalog.getProductById(productId);
-                
product.setProductType(this.repositoryManager.getProductTypeById(product.getProductType().getProductTypeId()));
+                this.setProductType(product);
                 QueryResult qr = new QueryResult(product, this
                         .getReducedMetadata(product, complexQuery
                                 .getReducedMetadata()));
@@ -1127,17 +1127,18 @@ public class XmlRpcFileManager {
     }
 
     private void setProductType(List<Product> products) throws Exception {
-        if (products != null && products.size() > 0) {
-            for (Iterator<Product> i = products.iterator(); i.hasNext();) {
-                Product p = i.next();
-                try {
-                    p.setProductType(repositoryManager.getProductTypeById(p
-                            .getProductType().getProductTypeId()));
-                } catch (RepositoryManagerException e) {
-                    throw new Exception(e.getMessage(), e);
-                }
-            }
-        }
+        if (products != null && products.size() > 0) 
+            for (Product product : products) 
+                this.setProductType(product);
+    }
+    
+    private void setProductType(Product product) throws Exception {
+       if (product.getProductType().getProductTypeId() != null)
+               
product.setProductType(repositoryManager.getProductTypeById(product
+                .getProductType().getProductTypeId()));
+       else
+               
product.setProductType(repositoryManager.getProductTypeByName(product
+                    .getProductType().getName()));
     }
     
     private List<Product> query(Query query, ProductType productType) throws 
CatalogException {


Reply via email to