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