org.diirt.util.array.ArrayBoolean Maven / Gradle / Ivy
/**
* Copyright (C) 2010-14 diirt developers. See COPYRIGHT.TXT
* All rights reserved. Use is subject to license terms. See LICENSE.TXT
*/
package org.diirt.util.array;
import java.io.Serializable;
import java.util.Arrays;
/**
* Wraps a {@code boolean[]} into a {@link ListBoolean}.
*
* @author Gabriele Carcassi
*/
public final class ArrayBoolean extends ListBoolean implements Serializable {
private static final long serialVersionUID = 7493025761455302915L;
private final boolean[] array;
private final boolean readOnly;
/**
* A new read-only {@code ArrayBoolean} that wraps around the given array.
*
* @param array an array
*/
public ArrayBoolean(boolean... array) {
this(array, true);
}
/**
* A new {@code ArrayBoolean} that wraps around the given array.
*
* @param array an array
* @param readOnly if false the wrapper allows writes to the array
*/
public ArrayBoolean(boolean[] array, boolean readOnly) {
this.array = array;
this.readOnly = readOnly;
}
@Override
public final int size() {
return array.length;
}
@Override
public boolean getBoolean(int index) {
return array[index];
}
@Override
public void setBoolean(int index, boolean value) {
if (!readOnly) {
array[index] = value;
} else {
throw new UnsupportedOperationException("Read only list.");
}
}
@Override
public boolean equals(Object obj) {
if (obj instanceof ArrayBoolean) {
return Arrays.equals(array, ((ArrayBoolean) obj).array);
}
return super.equals(obj);
}
boolean[] wrappedArray() {
return array;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy