1
2
3
4 package org.apache.maven.model;
5
6 import java.io.Serializable;
7 import java.util.AbstractList;
8 import java.util.ArrayList;
9 import java.util.Collections;
10 import java.util.HashMap;
11 import java.util.List;
12 import java.util.Map;
13 import java.util.Objects;
14 import java.util.stream.Collectors;
15 import java.util.stream.Stream;
16 import org.apache.maven.api.annotations.Generated;
17 import org.apache.maven.api.annotations.Nonnull;
18
19 @Generated
20 public class DependencyManagement
21 extends BaseObject
22 {
23
24 public DependencyManagement()
25 {
26 this( org.apache.maven.api.model.DependencyManagement.newInstance() );
27 }
28
29 public DependencyManagement( org.apache.maven.api.model.DependencyManagement delegate )
30 {
31 this( delegate, null );
32 }
33
34 public DependencyManagement( org.apache.maven.api.model.DependencyManagement delegate, BaseObject parent )
35 {
36 super( delegate, parent );
37 }
38
39 public DependencyManagement clone()
40 {
41 return new DependencyManagement( getDelegate() );
42 }
43
44 public org.apache.maven.api.model.DependencyManagement getDelegate()
45 {
46 return ( org.apache.maven.api.model.DependencyManagement ) super.getDelegate();
47 }
48
49 @Nonnull
50 public List<Dependency> getDependencies()
51 {
52 return new WrapperList<Dependency, org.apache.maven.api.model.Dependency>(
53 () -> getDelegate().getDependencies(), l -> update( getDelegate().withDependencies( l ) ),
54 d -> new Dependency( d, this ), Dependency::getDelegate );
55 }
56
57 public void setDependencies( List<Dependency> dependencies )
58 {
59 if ( !Objects.equals( dependencies, getDelegate().getDependencies() ) )
60 {
61 update( getDelegate().withDependencies(
62 dependencies.stream().map( c -> c.getDelegate() ).collect( Collectors.toList() ) ) );
63 dependencies.forEach( e -> e.childrenTracking = this::replace );
64 }
65 }
66
67 public void addDependency( Dependency dependency )
68 {
69 update( getDelegate().withDependencies(
70 Stream.concat( getDelegate().getDependencies().stream(), Stream.of( dependency.getDelegate() ) )
71 .collect( Collectors.toList() ) ) );
72 dependency.childrenTracking = this::replace;
73 }
74
75 public void removeDependency( Dependency dependency )
76 {
77 update( getDelegate().withDependencies(
78 getDelegate().getDependencies().stream()
79 .filter( e -> !Objects.equals( e, dependency ) )
80 .collect( Collectors.toList() ) ) );
81 dependency.childrenTracking = null;
82 }
83
84 public InputLocation getLocation( Object key )
85 {
86 org.apache.maven.api.model.InputLocation loc = getDelegate().getLocation( key );
87 return loc != null ? new InputLocation( loc ) : null;
88 }
89
90 public void setLocation( Object key, InputLocation location )
91 {
92 update( org.apache.maven.api.model.DependencyManagement.newBuilder( getDelegate(), true )
93 .location( key, location.toApiLocation() ).build() );
94 }
95
96 protected boolean replace( Object oldDelegate, Object newDelegate )
97 {
98 if ( super.replace( oldDelegate, newDelegate ) )
99 {
100 return true;
101 }
102 if ( getDelegate().getDependencies().contains( oldDelegate ) )
103 {
104 List<org.apache.maven.api.model.Dependency> list = new ArrayList<>( getDelegate().getDependencies() );
105 list.replaceAll( d -> d == oldDelegate ? ( org.apache.maven.api.model.Dependency ) newDelegate : d );
106 update( getDelegate().withDependencies( list ) );
107 return true;
108 }
109 return false;
110 }
111
112 public static List<org.apache.maven.api.model.DependencyManagement> dependencyManagementToApiV4( List<DependencyManagement> list )
113 {
114 return list != null ? new WrapperList<>( list, DependencyManagement::getDelegate, DependencyManagement::new ) : null;
115 }
116
117 public static List<DependencyManagement> dependencyManagementToApiV3( List<org.apache.maven.api.model.DependencyManagement> list )
118 {
119 return list != null ? new WrapperList<>( list, DependencyManagement::new, DependencyManagement::getDelegate ) : null;
120 }
121
122 }