/*
* Copyright 2015-2017 the original author or authors.
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License v1.0 which
* accompanies this distribution and is available at
*
* http://www.eclipse.org/legal/epl-v10.html
*/
package org.junit.jupiter.engine.execution;
import java.lang.reflect.Parameter;
import java.util.Optional;
import org.junit.jupiter.api.extension.ParameterContext;
import org.junit.platform.commons.util.Preconditions;
import org.junit.platform.commons.util.ToStringBuilder;
class DefaultParameterContext implements ParameterContext {
private final Parameter parameter;
private final int index;
private final Optional<Object> target;
DefaultParameterContext(Parameter parameter, int index, Optional<Object> target) {
Preconditions.condition(index >= 0, "index must be greater than or equal to zero");
this.parameter = Preconditions.notNull(parameter, "parameter must not be null");
this.index = index;
this.target = Preconditions.notNull(target, "target must not be null");
}
@Override
public Parameter getParameter() {
return parameter;
}
@Override
public int getIndex() {
return index;
}
@Override
public Optional<Object> getTarget() {
return target;
}
@Override
public String toString() {
// @formatter:off
return new ToStringBuilder(this)
.append("parameter", parameter)
.append("index", index)
.append("target", target)
.toString();
// @formatter:on
}
}