Skip to content

Instantly share code, notes, and snippets.

@lptr
Created July 3, 2013 11:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save lptr/5917213 to your computer and use it in GitHub Desktop.
Save lptr/5917213 to your computer and use it in GitHub Desktop.
package prezi.engine;
using Lambda;
class Test
{
public static function main()
{
var doc = new Document();
// Add some objects
var transformeds:List<Object> = doc.getObjects(ClassUtils.implements(Transformed));
}
}
class Document
{
private var objects:Array<Object>;
public function getObjects(criteria:Object->Bool):List<Object>
{
if (criteria == null)
{
return objects;
}
return objects.filter(criteria);
}
}
class ClassUtils
{
public static function implements(clazz:Class):Object->Bool
{
return function(object:Object):Bool
{
/// somehow determine if object implements clazz
return ...;
}
}
}
class Object
{
}
interface Transformed
{
}
interface Styled
{
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment