com.github.mustachejava.reflect.guards.WrappedGuard Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of compiler Show documentation
Show all versions of compiler Show documentation
Implementation of mustache.js for Java
package com.github.mustachejava.reflect.guards;
import com.github.mustachejava.ObjectHandler;
import com.github.mustachejava.reflect.Guard;
import com.github.mustachejava.util.Wrapper;
import javax.annotation.Nullable;
import java.util.List;
import static com.github.mustachejava.reflect.ReflectionObjectHandler.unwrap;
/**
* Dig into the dot notation to guard it from changing.
*
* User: sam
* Date: 6/26/12
* Time: 9:09 PM
*/
public class WrappedGuard implements Guard {
protected final ObjectHandler oh;
protected final int index;
protected final Wrapper[] wrappers;
private final List wrapperGuard;
public WrappedGuard(ObjectHandler oh, int index, List wrappers, List wrapperGuard) {
this.oh = oh;
this.index = index;
this.wrappers = wrappers.toArray(new Wrapper[wrappers.size()]);
this.wrapperGuard = wrapperGuard;
}
@Override
public boolean apply(@Nullable Object[] objects) {
Object scope = unwrap(oh, index, wrappers, objects);
for (Guard predicate : wrapperGuard) {
if (!predicate.apply(new Object[]{scope})) {
return false;
}
}
return true;
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy