package org.christiangalsterer.stash.filehooks.plugin.hook; import com.atlassian.bitbucket.content.Change; import com.atlassian.bitbucket.content.ChangeType; import com.atlassian.bitbucket.repository.RefChange; import com.atlassian.bitbucket.repository.RefChangeType; import java.util.function.Predicate; import java.util.regex.Pattern; class Predicates { private final static String TAG_REF = "refs/tags/"; /** * Predicate to check that a ref change is not a delete operation. */ static final Predicate<RefChange> isNotDeleteRefChange = refChange -> !refChange.getType().equals(RefChangeType.DELETE); /** * Predicate to check that a ref change is not a tag operation. */ static final Predicate<RefChange> isNotTagRefChange = refChange -> !refChange.getRef().getId().startsWith(TAG_REF); /** * Predicate to check that a change is not a delete operation. */ static final Predicate<Change> isNotDeleteChange = change -> !change.getType().equals(ChangeType.DELETE); /** * Predicate to check if the RefChange is matched by the @param branchesPattern */ static Predicate<RefChange> matchesBranchPattern (final Pattern branchesPattern) { return refChange -> branchesPattern.matcher(refChange.getRef().getDisplayId()).matches(); } }