Skip to content

Instantly share code, notes, and snippets.

View mikebrock's full-sized avatar

mikebrock

  • Square
  • Toronto, Ontario, Canada
View GitHub Profile
public void testNarrowToWideCompare() {
Serializable s = MVEL.compileExpression("new String('foo') == new Object()",
ParserContext.create().stronglyTyped());
assertFalse((Boolean) MVEL.executeExpression(s));
}
String cls = ClassBuilder.define("org.foo.Foo")
.publicScope()
.body()
.privateField("name", String.class)
.initializesWith(Stmt.create().load("Mike Brock"))
.finish()
.publicMethod(String.class, "getName")
.append(Stmt.create().loadVariable("name").returnValue())
.finish().toJavaString();
String cls = ClassBuilder.implement(Bootstrapper.class)
.publicMethod(InterfaceInjectionContext.class, "bootstrapContainer")
.append(Stmt.create().addVariable("ctx", Stmt.create().newObject(InterfaceInjectionContext.class)))
.append(Stmt.create().loadVariable("ctx").returnValue())
.finish().toJavaString();
---[output]----
package org.jboss.errai.ioc.client.api;
String s = StatementBuilder.create()
.addVariable("n", Integer.class)
.loadVariable("n")
.do_()
.append(StatementBuilder.create().loadVariable("n").assignValue(1))
.finish()
.while_(BooleanOperator.GreaterThanOrEqual, 1)
.toJavaString();
---[output]---
@mikebrock
mikebrock / gist:1046873
Created June 25, 2011 20:37
Functional Quicksort in MVEL 2.1
/**
* Sample MVEL 2.1 Script
* "Functional QuickSort"
* by: Christopher Michael Brock, Inspired by: Dhanji Prasanna
*/
def quicksort(list) {
list.size() <= 1 ? list :
(pivot = list[0]; (quicksort(($ in list if $ < pivot)) + pivot)
+ quicksort(($ in list if $ > pivot)))
@mikebrock
mikebrock / gist:1046874
Created June 25, 2011 20:37
Functional Quicksort in MVEL 2.1
/**
* Sample MVEL 2.1 Script
* "Functional QuickSort"
* by: Mike Brock, Inspired by: Dhanji Prasanna
*/
def quicksort(list) {
list.size() <= 1 ? list :
(pivot = list[0]; (quicksort(($ in list if $ < pivot)) + pivot)
+ quicksort(($ in list if $ > pivot)))
@mikebrock
mikebrock / gist:1076291
Created July 11, 2011 17:07
Generated code by the ErraiCDI container
package org.jboss.errai.ioc.client.api;
import org.jboss.errai.ioc.client.api.Bootstrapper;
import org.jboss.errai.cdi.client.EventProducerTestModule;
import org.jboss.errai.cdi.client.api.Event;
import org.jboss.errai.cdi.client.EventObserverTestModule;
import org.jboss.errai.ioc.client.InterfaceInjectionContext;
import org.jboss.errai.cdi.client.ProducerTestModule;
import org.jboss.errai.cdi.client.EventProvider;
public boolean processAll() {
int start;
// brute force FTW
do {
start = processingEntries.size();
List<ProcessingEntry> toRun = new ArrayList<ProcessingEntry>(processingEntries);
public boolean processAll() {
int start;
// brute force FTW
do {
start = processingEntries.size();
List<ProcessingEntry> toRun = new ArrayList<ProcessingEntry>(processingEntries);
package org.jboss.errai.ioc.client.api;
import org.jboss.errai.ioc.client.api.Bootstrapper;
import org.jboss.errai.cdi.client.ProducerTestModule;
import org.jboss.errai.cdi.client.ProducerDependentTestBean;
import org.jboss.errai.cdi.client.EventProducerTestModule;
import org.jboss.errai.cdi.client.api.Event;
import org.jboss.errai.cdi.client.EventObserverTestModule;
import org.jboss.errai.ioc.client.InterfaceInjectionContext;