The following document contains the results of PMD's CPD 3.9.
| File | Line |
|---|---|
| org/musicontroller/service/McServiceImpl.java | 110 |
| org/musicontroller/service/McServiceImpl.java | 206 |
Set<AIRelation> relationsToDelete = BagAndKeywordUtils.createRelations(artistfirstname,artistlastname,null,instruments);
/*
* Construct a map of all PS contracts in the playlist sharing the same set of AI relations. We will
* use this map to retrieve the AIBag for each different set of AI relations only once and then setting
* it in all songs with that set of AI relations. This is needed because getAIBag() is implemented
* inefficiently. Songs that are not in the track list are ignored.
*/
Map<Set<AIRelation>,Set<Contract_PS>> songRelationMap = new HashMap<Set<AIRelation>,Set<Contract_PS>>();
for(Contract_PS contract : playlist.getSongs()) {
if(tracklist.contains(contract.getRowno())) {
Song song = contract.getSong();
Set<AIRelation> relations = new HashSet<AIRelation>();
if (song.getAibag()!=null) {
relations.addAll(song.getAibag().getRelations());
}
Set<Contract_PS> songSet = null;
if(songRelationMap.containsKey(relations)) {
songSet = songRelationMap.get(relations);
} else {
songSet = new HashSet<Contract_PS>();
songRelationMap.put(relations, songSet);
}
songSet.add(contract);
}
}
for(Entry<Set<AIRelation>,Set<Contract_PS>> entry : songRelationMap.entrySet()) {
Set<AIRelation> targetSet = new HashSet<AIRelation>();
targetSet.addAll(entry.getKey());
targetSet.removeAll(relationsToDelete);
| |