OASIS eXtensible Access Control Markup Language (XACML) TC

 View Only

RE: [xacml] Proposal of Model for comparing two sequences

  • 1.  RE: [xacml] Proposal of Model for comparing two sequences

    Posted 09-12-2002 14:26
     MHonArc v2.5.2 -->
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

    xacml message

    [Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


    Subject: RE: [xacml] Proposal of Model for comparing two sequences


    On Thu, 12 Sep 2002, Daniel Engovatov wrote:
    
    >
    > >
    > > NO!!!  It will make API for extensions a living hell..
    >
    > >How so?
    >
    > Please provide an example of an API for extension functions n this
    > case, in Java or C++..
    
    Okay. To the list:
    --Forwarded--
    From polar@syr.edu Thu Sep 12 14:23:24 2002
    Date: Thu, 12 Sep 2002 14:22:01 -0400 (EDT)
    From: Polar Humenn <polar@syr.edu>
    To: Daniel Engovatov <dengovatov@crosslogix.com>
    Subject: RE: [xacml] Proposal of Model for comparing two sequences
    
    
    > Write me an example of an API in a language them more then 10 people outside
    > computer science departments are using ( I mostly mean Java, C++ and
    > friends).  Without using function pointers/methods, void*/Object etc.
    
    Well, you have to be clever in the way you design your interfaces.
    If I must, in Java:
    
    interface Function {}
    
    interface BooleanFunction
    	extends Function
    {
    	boolean eval(Object o1, Object o2)
    }
    
    interface  ListBooleanFunction
    	extends Function
    {
        boolean eval(BooleanFunction f,List a, List b);
    }
    
    class StringEqual
    	implements BooleanFunction
    {
        public boolean eval(Object o1, Object o2)
        {
             return ((String)o1).equal((String)o2);
        }
    }
    
    class AtLeastOne
    	implements ListFunction
    {
        boolean eval(BooleanFunction f, List a, List b)
        {
             Iterator ai = a.iterator();
             while(ai.hasNext())
             {
    	      Object a_item = ai.next();
                  Iterator bi = b.iterator();
                  while(bi.hasNext())
                  {
                     if (f.eval(a_item,bi.next()))
                     {
                           return true;
                     }
                  }
             }
             return false;
        }
    }
    
    Example:
    
    List a = .....;
    List b = .....;
    
    // Expression that determines if one string is common to
    // both lists of strings
    
     boolean result = new AtLeaseOne().eval(new StringEqual(),a,b);
    
    
    There!
    
    -Polar
    
    
    


    [Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


    Powered by eList eXpress LLC