Skip to content

Instantly share code, notes, and snippets.

@bitstorm
Last active November 11, 2016 15:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bitstorm/03cfe9905a3f86a7160ab49f0ce23f13 to your computer and use it in GitHub Desktop.
Save bitstorm/03cfe9905a3f86a7160ab49f0ce23f13 to your computer and use it in GitHub Desktop.
Apply lambdas to ResourceReference
public static ResourceReference forResource(String name, SerializableSupplier<IResource> resourceBuilder)
{
return new LambdaResourceReference(name, resourceBuilder);
}
public static ResourceReference forResource(Key key, SerializableSupplier<IResource> resourceBuilder)
{
return new LambdaResourceReference(key, resourceBuilder);
}
public static class LambdaResourceReference extends ResourceReference
{
/**
*
*/
private static final long serialVersionUID = 1826862147241009289L;
final SerializableSupplier<IResource> resourceBuilder;
public LambdaResourceReference(String name, SerializableSupplier<IResource> resourceBuilder)
{
super(name);
this.resourceBuilder = resourceBuilder;
}
public LambdaResourceReference(Key key, SerializableSupplier<IResource> resourceBuilder)
{
super(key);
this.resourceBuilder = resourceBuilder;
}
@Override
public IResource getResource()
{
return resourceBuilder.get();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment