package com.github.vbauer.jconditions.checker;
import com.github.vbauer.jconditions.annotation.HasPackage;
import com.github.vbauer.jconditions.core.CheckerContext;
import com.github.vbauer.jconditions.core.ConditionChecker;
/**
* @author Vladislav Bauer
*/
public class HasPackageChecker implements ConditionChecker<HasPackage> {
/**
* {@inheritDoc}
*/
@Override
public boolean isSatisfied(final CheckerContext<HasPackage> context) throws Exception {
final HasPackage annotation = context.getAnnotation();
final String[] packageNames = annotation.value();
return hasAllPackages(packageNames);
}
private boolean hasAllPackages(final String... packageNames) {
for (final String packageName : packageNames) {
final boolean hasPackage = Package.getPackage(packageName) != null;
if (!hasPackage) {
return false;
}
}
return packageNames.length > 0;
}
}