// Path: src/test/java/org/immutizer4j/test/sample/generics/ImmutableArray.java
// @Value
// public class ImmutableArray<T> {
// 
//     private T[] array;
// 
//     /**
//      * Constructor. Creates a copy of the source array
//      */
//     public ImmutableArray(T[] a){
//         array = Arrays.copyOf(a, a.length);
//     }
// 
//     public T get(int index){
//         return array[index];
//     }
// }


import lombok.Value;
import org.immutizer4j.test.sample.generics.ImmutableArray;
package org.immutizer4j.test.sample;


/**
 * A POJO that uses ImmutableArray to wrap both mutable and immutable object types
 * and ensure we correctly process both
 */
@Value
public class ImmutableArrayPojo {
    // this one is OK, as ImmutablePojo is obviously immutable
// Path: src/test/java/org/immutizer4j/test/sample/generics/ImmutableArray.java
// @Value
// public class ImmutableArray<T> {
// 
//     private T[] array;
// 
//     /**
//      * Constructor. Creates a copy of the source array
//      */
//     public ImmutableArray(T[] a){
//         array = Arrays.copyOf(a, a.length);
//     }
// 
//     public T get(int index){
//         return array[index];
//     }
// }


// Path: src/test/java/org/immutizer4j/test/sample/ImmutableArrayPojo.java
import lombok.Value;
import org.immutizer4j.test.sample.generics.ImmutableArray;

package org.immutizer4j.test.sample;


/**
 * A POJO that uses ImmutableArray to wrap both mutable and immutable object types
 * and ensure we correctly process both
 */
@Value
public class ImmutableArrayPojo {
    // this one is OK, as ImmutablePojo is obviously immutable
    private ImmutableArray<ImmutablePojo> immutablePojoArray;