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.toolchain.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 PersistedToolchains
22      extends TrackableBase
23      implements Serializable, Cloneable
24  {
25  
26      public PersistedToolchains()
27      {
28          this( org.apache.maven.api.toolchain.PersistedToolchains.newInstance() );
29      }
30  
31      public PersistedToolchains( org.apache.maven.api.toolchain.PersistedToolchains delegate )
32      {
33          this( delegate, null );
34      }
35  
36      public PersistedToolchains( org.apache.maven.api.toolchain.PersistedToolchains delegate, BaseObject parent )
37      {
38          super( delegate, parent );
39      }
40  
41      public PersistedToolchains clone()
42      {
43          return new PersistedToolchains( getDelegate() );
44      }
45  
46      @Override
47      public org.apache.maven.api.toolchain.PersistedToolchains getDelegate()
48      {
49          return ( org.apache.maven.api.toolchain.PersistedToolchains ) super.getDelegate();
50      }
51  
52      @Override
53      public boolean equals( Object o )
54      {
55          if ( this == o )
56          {
57              return true;
58          }
59          if ( o == null || !( o instanceof PersistedToolchains ) )
60          {
61              return false;
62          }
63          PersistedToolchains that = ( PersistedToolchains ) o;
64          return Objects.equals( this.delegate, that.delegate );
65      }
66  
67      @Override
68      public int hashCode()
69      {
70          return getDelegate().hashCode();
71      }
72  
73      public String getModelEncoding()
74      {
75          return getDelegate().getModelEncoding();
76      }
77  
78      @Nonnull
79      public List<ToolchainModel> getToolchains()
80      {
81          return new WrapperList<ToolchainModel, org.apache.maven.api.toolchain.ToolchainModel>(
82                      () -> getDelegate().getToolchains(), l -> update( getDelegate().withToolchains( l ) ),
83                      d -> new ToolchainModel( d, this ), ToolchainModel::getDelegate );
84      }
85  
86      public void setToolchains( List<ToolchainModel> toolchains )
87      {
88          if ( !Objects.equals( toolchains, getDelegate().getToolchains() ) )
89          {
90              update( getDelegate().withToolchains(
91                      toolchains.stream().map( c -> c.getDelegate() ).collect( Collectors.toList() ) ) );
92              toolchains.forEach( e -> e.childrenTracking = this::replace );
93          }
94      }
95  
96      public void addToolchain( ToolchainModel toolchain )
97      {
98          update( getDelegate().withToolchains(
99                  Stream.concat( getDelegate().getToolchains().stream(), Stream.of( toolchain.getDelegate() ) )
100                         .collect( Collectors.toList() ) ) );
101         toolchain.childrenTracking = this::replace;
102     }
103 
104     public void removeToolchain( ToolchainModel toolchain )
105     {
106         update( getDelegate().withToolchains(
107                 getDelegate().getToolchains().stream()
108                         .filter( e -> !Objects.equals( e, toolchain ) )
109                         .collect( Collectors.toList() ) ) );
110         toolchain.childrenTracking = null;
111     }
112 
113     protected boolean replace( Object oldDelegate, Object newDelegate )
114     {
115         if ( super.replace( oldDelegate, newDelegate ) )
116         {
117             return true;
118         }
119         if ( getDelegate().getToolchains().contains( oldDelegate ) )
120         {
121             List<org.apache.maven.api.toolchain.ToolchainModel> list = new ArrayList<>( getDelegate().getToolchains() );
122             list.replaceAll( d -> d == oldDelegate ? ( org.apache.maven.api.toolchain.ToolchainModel ) newDelegate : d );
123             update( getDelegate().withToolchains( list ) );
124             return true;
125         }
126         return false;
127     }
128 
129     public static List<org.apache.maven.api.toolchain.PersistedToolchains> persistedToolchainsToApiV4( List<PersistedToolchains> list )
130     {
131         return list != null ? new WrapperList<>( list, PersistedToolchains::getDelegate, PersistedToolchains::new ) : null;
132     }
133 
134     public static List<PersistedToolchains> persistedToolchainsToApiV3( List<org.apache.maven.api.toolchain.PersistedToolchains> list )
135     {
136         return list != null ? new WrapperList<>( list, PersistedToolchains::new, PersistedToolchains::getDelegate ) : null;
137     }
138 
139 }