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

de.ppi.deepsampler.persistence.api.ComboMatcher Maven / Gradle / Ivy

There is a newer version: 2.1.0
Show newest version
/*
 * Copyright 2020  PPI AG (Hamburg, Germany)
 * This program is made available under the terms of the MIT License.
 */

package de.ppi.deepsampler.persistence.api;

import de.ppi.deepsampler.core.model.ParameterMatcher;

/**
 * Special matcher to apply a {@link ParameterMatcher} and a {@link PersistentMatcher} to a single argument when defining a sample.
 * 
* This class will basically behave exactly like the given {@link ParameterMatcher}, but additionally it will hold a {@link PersistentMatcher} to * retrieve it later in the loading process of persistent samples. *
* Never create {@link ComboMatcher} yourself! Always use {@link PersistentMatchers#combo(Object, PersistentMatcher)} for this. * * @param type to get matched in some sense * @author Rico Schrage */ public class ComboMatcher implements ParameterMatcher { private final PersistentMatcher persistentMatcher; private final ParameterMatcher parameterMatcher; /** * Create a ComboMatcher with the parameterMatcher to be imitated and the persistentMatcher to hold for the later creating of a real matcher * in the proces of loading persistent samples. * * @param parameterMatcher the {@link ParameterMatcher} to imitate * @param persistentMatcher the {@link PersistentMatcher} to hold */ ComboMatcher(ParameterMatcher parameterMatcher, PersistentMatcher persistentMatcher) { this.parameterMatcher = parameterMatcher; this.persistentMatcher = persistentMatcher; } /** * @return the hold {@link PersistentMatcher} */ public PersistentMatcher getPersistentMatcher() { return persistentMatcher; } /** * @return the imitated {@link ParameterMatcher} */ public ParameterMatcher getParameterMatcher() { return parameterMatcher; } @Override public boolean matches(T parameter) { return parameterMatcher.matches(parameter); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy