View Javadoc
1   // =================== DO NOT EDIT THIS FILE ====================
2   //  Generated by Modello Velocity from model-v3.vm
3   //  template, any modifications will be overwritten.
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 }