All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.mustachejava.reflect.guards.WrappedGuard Maven / Gradle / Ivy

There is a newer version: 0.9.14
Show newest version
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