Skip to content

Instantly share code, notes, and snippets.

@vic
Created September 29, 2015 20:00
Show Gist options
  • Save vic/acc0dc0938978da46e70 to your computer and use it in GitHub Desktop.
Save vic/acc0dc0938978da46e70 to your computer and use it in GitHub Desktop.
Mapping a collection of interfaces
class Target {
List<TargetItem> items;
}
interface TargetItem {}
class TargetItemA implements TargetItem {}
class TargetItemB implements TargetItem {}
class Source {
List<SourceItem> items;
}
interface SourceItem {}
class SourceItemA implements SourceItem {}
class SourceItemB implements SourceItem {}
@Mapper
interface MyMapper {
public Target sourceToTarget(Source source);
// how to map a collection with polymophic items
public List<TargetItem> itemsToTarget(List<SourceItem> items);
public TargetItemA itemAToTarget(SourceItemA item);
public TargetItemB itemBToTarget(SourceItemB item);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment