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