cayenne-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Laurentiu Cocanu (JIRA)" <j...@apache.org>
Subject [jira] Commented: (CAY-1241) Add method to ExpressionFactory to match against the primary key of an object or list of objects
Date Fri, 19 Jun 2009 11:17:08 GMT

    [ https://issues.apache.org/jira/browse/CAY-1241?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12721741#action_12721741
] 

Laurentiu Cocanu commented on CAY-1241:
---------------------------------------

What about this new version?

 /**
     * Creates an expression that matches the primary key of object in <code>ObjectId</code>'s
<code>IdSnapshot</code> for the argument <code>object</code>.    

     */
    public static Expression matchObject(Persistent object) {    	
    	ObjectId obid = object.getObjectId(); 		
 		Map<String, ?> map = obid.getIdSnapshot();
 		
 		List<Expression> pairs = new ArrayList<Expression>(map.size());

 	    for (Map.Entry<String, ?> entry : map.entrySet()) {

 	            Expression exp = expressionOfType(Expression.AND);
 	            exp.setOperand(0, new ASTObjPath(entry.getKey()));
 	            exp.setOperand(1, wrapPathOperand(entry.getValue()));
 	            pairs.add(exp);
 	        }
 	    
 	   return joinExp(Expression.AND, pairs);
    }
    
    /**
     * Creates an expression that matches any of the objects contained in the list <code>objects</code>
     */   
    public static Expression matchObjects(List<Persistent> objects) {    	
    	
 		List<Expression> pairs = new ArrayList<Expression>(objects.size());

 	    for (Persistent object : objects) {
 	            
 	            pairs.add(matchObject(object));
 	        }
 	    
 	   return joinExp(Expression.OR, pairs);
    }


Soon I'll come with some unit tests too.

> Add method to ExpressionFactory to match against the primary key of an object or list
of objects
> ------------------------------------------------------------------------------------------------
>
>                 Key: CAY-1241
>                 URL: https://issues.apache.org/jira/browse/CAY-1241
>             Project: Cayenne
>          Issue Type: Improvement
>          Components: Cayenne Core Library
>    Affects Versions: 3.0M6
>            Reporter: √ėyvind Harboe
>         Attachments: patch.txt
>
>
> It would be helpful to have a method in ExpressionFactory that build an expression using
matchDbExp() to match an object's primary keys.
> This can be helpful in excluding a single or list of known objects from the result of
a query.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message