com.epam.jdi.light.elements.init.rules.InitRule Maven / Gradle / Ivy
package com.epam.jdi.light.elements.init.rules;
import com.epam.jdi.light.elements.init.SiteInfo;
import com.epam.jdi.tools.func.JFunc1;
import java.lang.reflect.Field;
import java.util.List;
import static com.epam.jdi.tools.LinqUtils.any;
/**
* Created by Roman Iovlev on 26.09.2019
* Email: [email protected]; Skype: roman.iovlev
*/
public class InitRule {
public JFunc1 condition;
public JFunc1 func;
public InitRule(JFunc1 condition, JFunc1 func) {
this.condition = condition;
this.func = func;
}
public static InitRule iRule(JFunc1 condition, JFunc1 func) {
return new InitRule(condition, func);
}
public static InitRule iRule(Class interfaceClass, JFunc1 func) {
return new InitRule(f -> f.getType() == interfaceClass, func);
}
public static InitRule iRule(List interfaces, JFunc1 func) {
return new InitRule(f -> any(interfaces, i -> f.getType() == i), func);
}
}