mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-12 16:35:45 +01:00
Refactor trailers
Trailes are no persons, they have a person.
This commit is contained in:
@@ -28,6 +28,7 @@ import com.google.common.collect.ImmutableSet;
|
||||
import sonia.scm.plugin.Extension;
|
||||
import sonia.scm.repository.Changeset;
|
||||
import sonia.scm.repository.ChangesetTrailers;
|
||||
import sonia.scm.repository.Person;
|
||||
import sonia.scm.repository.Repository;
|
||||
import sonia.scm.repository.Trailer;
|
||||
|
||||
@@ -79,7 +80,7 @@ public class ChangesetDescriptionTrailers implements ChangesetTrailers {
|
||||
Matcher matcher = PERSON_PATTERN.matcher(person.trim());
|
||||
if (matcher.matches()) {
|
||||
MatchResult matchResult = matcher.toMatchResult();
|
||||
return of(new Trailer(type, matchResult.group(2), matchResult.group(1)));
|
||||
return of(new Trailer(type, new Person(matchResult.group(1), matchResult.group(2))));
|
||||
} else {
|
||||
return empty();
|
||||
}
|
||||
|
||||
@@ -29,12 +29,12 @@ import de.otto.edison.hal.Links;
|
||||
import org.mapstruct.AfterMapping;
|
||||
import org.mapstruct.Context;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mapping;
|
||||
import org.mapstruct.MappingTarget;
|
||||
import org.mapstruct.ObjectFactory;
|
||||
import sonia.scm.repository.Branch;
|
||||
import sonia.scm.repository.Changeset;
|
||||
import sonia.scm.repository.ChangesetTrailers;
|
||||
import sonia.scm.repository.Person;
|
||||
import sonia.scm.repository.Repository;
|
||||
import sonia.scm.repository.Tag;
|
||||
import sonia.scm.repository.Trailer;
|
||||
@@ -77,19 +77,18 @@ public abstract class DefaultChangesetToChangesetDtoMapper extends HalAppenderMa
|
||||
@Inject
|
||||
private Set<ChangesetTrailers> changesetTrailersSet;
|
||||
|
||||
// @Mapping(target = "attributes", ignore = true) // We do not map HAL attributes
|
||||
// public abstract ChangesetDto map(Changeset changeset, @Context Repository repository);
|
||||
abstract TrailerDto map(Trailer trailer);
|
||||
|
||||
abstract TrailerPersonDto map(Trailer trailer);
|
||||
abstract PersonDto map(Person person);
|
||||
|
||||
@AfterMapping
|
||||
void appendTrailerPersons(Changeset changeset, @MappingTarget ChangesetDto target, @Context Repository repository) {
|
||||
List<TrailerPersonDto> collectedTrailers = new ArrayList<>();
|
||||
List<TrailerDto> collectedTrailers = new ArrayList<>();
|
||||
changesetTrailersSet.stream()
|
||||
.flatMap(changesetTrailers -> changesetTrailers.getTrailers(repository, changeset).stream())
|
||||
.map(this::map)
|
||||
.forEach(collectedTrailers::add);
|
||||
target.setTrailerPersons(collectedTrailers);
|
||||
target.setTrailers(collectedTrailers);
|
||||
}
|
||||
|
||||
@AfterMapping
|
||||
|
||||
Reference in New Issue
Block a user