You go boy, awesome! I like the name too, ColumnBasedCatalog...

Cheers,
Chris

On Mar 26, 2011, at 1:59 AM, <[email protected]> <[email protected]> wrote:

> 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 {
> 
> 


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Chris Mattmann, Ph.D.
Senior Computer Scientist
NASA Jet Propulsion Laboratory Pasadena, CA 91109 USA
Office: 171-266B, Mailstop: 171-246
Email: [email protected]
WWW:   http://sunset.usc.edu/~mattmann/
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adjunct Assistant Professor, Computer Science Department
University of Southern California, Los Angeles, CA 90089 USA
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Reply via email to