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