[jira] [Created] (OFBIZ-10593) ‘EntityConditionVisitor’ is a confused visitor pattern

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Created] (OFBIZ-10593) ‘EntityConditionVisitor’ is a confused visitor pattern

Nicolas Malin (Jira)
Mathieu Lirzin created OFBIZ-10593:
--------------------------------------

             Summary: ‘EntityConditionVisitor’ is a confused visitor pattern
                 Key: OFBIZ-10593
                 URL: https://issues.apache.org/jira/browse/OFBIZ-10593
             Project: OFBiz
          Issue Type: Improvement
    Affects Versions: Trunk
            Reporter: Mathieu Lirzin
            Assignee: Mathieu Lirzin


{{EntityConditionVisitor}} interface is supposed to implement the visitor pattern which supposes a set of classes meant to be visited using an {{accept}} method and a visitor with multiple {{visit}} method overloads (one for each visited class).

Currently {{EntityConditionVisitor}} contains both {{accept}} and {{visit}} methods which make *no sense*

{code:java}
public interface EntityConditionVisitor {
    <T> void visit(T obj);
    <T> void accept(T obj);
    void acceptObject(Object obj);
    void acceptEntityCondition(EntityCondition condition);
    <T extends EntityCondition> void acceptEntityJoinOperator(EntityJoinOperator op, List<T> conditions);
    <L,R,T> void acceptEntityOperator(EntityOperator<L, R, T> op, L lhs, R rhs);
    <L,R> void acceptEntityComparisonOperator(EntityComparisonOperator<L, R> op, L lhs, R rhs);
    void acceptEntityConditionValue(EntityConditionValue value);
    void acceptEntityFieldValue(EntityFieldValue value);

    void acceptEntityExpr(EntityExpr expr);
    <T extends EntityCondition> void acceptEntityConditionList(EntityConditionList<T> list);
    void acceptEntityFieldMap(EntityFieldMap fieldMap);
    void acceptEntityConditionFunction(EntityConditionFunction func, EntityCondition nested);
    <T extends Comparable<?>> void acceptEntityFunction(EntityFunction<T> func);
    void acceptEntityWhereString(EntityWhereString condition);

    void acceptEntityDateFilterCondition(EntityDateFilterCondition condition);
}
{code}

this confusion is visible in the {{EntityCondition}} which has both a {{visit}} and an {{accept}} method, event it is only supposed to be visited.






--
This message was sent by Atlassian JIRA
(v7.6.3#76005)