TypeAlias.map(): added
This commit is contained in:
parent
1046b6c5ae
commit
4c85e56c80
2 changed files with 30 additions and 1 deletions
|
@ -21,6 +21,8 @@
|
||||||
|
|
||||||
package net.kemitix.mon;
|
package net.kemitix.mon;
|
||||||
|
|
||||||
|
import java.util.function.Function;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Type Alias for other types.
|
* Type Alias for other types.
|
||||||
*
|
*
|
||||||
|
@ -45,6 +47,19 @@ public abstract class TypeAlias<T> {
|
||||||
this.value = value;
|
this.value = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Map the TypeAlias into another value.
|
||||||
|
*
|
||||||
|
* @param f the function to create the new value
|
||||||
|
* @param <R> the type of the new value
|
||||||
|
*
|
||||||
|
* @return a TypeAlias
|
||||||
|
*/
|
||||||
|
public <R> R map(final Function<T, R> f) {
|
||||||
|
return f.apply(value);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public final int hashCode() {
|
public final int hashCode() {
|
||||||
return value.hashCode();
|
return value.hashCode();
|
||||||
|
@ -71,5 +86,4 @@ public abstract class TypeAlias<T> {
|
||||||
public final T getValue() {
|
public final T getValue() {
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,8 @@ package net.kemitix.mon;
|
||||||
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import java.util.function.Function;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
public class TypeAliasTest {
|
public class TypeAliasTest {
|
||||||
|
@ -59,10 +61,23 @@ public class TypeAliasTest {
|
||||||
public void shouldHaveSameToStringAsAliasedType() throws Exception {
|
public void shouldHaveSameToStringAsAliasedType() throws Exception {
|
||||||
//given
|
//given
|
||||||
final String value = "value";
|
final String value = "value";
|
||||||
|
//when
|
||||||
final AnAlias anAlias = AnAlias.of(value);
|
final AnAlias anAlias = AnAlias.of(value);
|
||||||
|
//then
|
||||||
assertThat(anAlias.toString()).isEqualTo(value);
|
assertThat(anAlias.toString()).isEqualTo(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void shouldMapTypeAlias() {
|
||||||
|
//given
|
||||||
|
final AnAlias anAlias = AnAlias.of("text");
|
||||||
|
final Function<String, String> function = v -> v;
|
||||||
|
//when
|
||||||
|
final String value = anAlias.map(function);
|
||||||
|
//then
|
||||||
|
assertThat(value).isEqualTo("text");
|
||||||
|
}
|
||||||
|
|
||||||
private static class AnAlias extends TypeAlias<String> {
|
private static class AnAlias extends TypeAlias<String> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in a new issue