/*license*\
XBN-Java: Copyright (C) 2014, Jeff Epstein (aliteralmind __DASH__ github __AT__ yahoo __DOT__ com)
This software is dual-licensed under the:
- Lesser General Public License (LGPL) version 3.0 or, at your option, any later version;
- Apache Software License (ASL) version 2.0.
Either license may be applied at your discretion. More information may be found at
- http://en.wikipedia.org/wiki/Multi-licensing.
The text of both licenses is available in the root directory of this project, under the names "LICENSE_lgpl-3.0.txt" and "LICENSE_asl-2.0.txt". The latest copies may be downloaded at:
- LGPL 3.0: https://www.gnu.org/licenses/lgpl-3.0.txt
- ASL 2.0: http://www.apache.org/licenses/LICENSE-2.0.txt
\*license*/
package com.github.xbn.experimental.listify.primitiveable;
import com.github.xbn.experimental.listify.AddRemovable;
import com.github.xbn.experimental.listify.CopyElements;
import com.github.xbn.array.IndexableUtil;
import com.github.xbn.array.NullContainer;
import com.github.xbn.util.copyval.SimpleNullHandlerForPrimitives;
import com.github.xbn.experimental.listify.primitiveable.ListifyBoolable;
import com.github.xbn.experimental.listify.primitiveable.AbstractListifyPrimitiveable;
import com.github.xbn.array.helper.NewPrimitiveArrayHelper;
import com.github.xbn.util.copyval.OneParamCnstrValueCopier;
import com.github.xbn.util.copyval.NullHandlerForPrimitives;
/**
<p>Abstract implementation of {@code ListifyBoolable}.</p>
<!--
---iwrq input---
Must change "CopyElements copy_elements" to "booxlean copy_elements", then back after making replacements.
Boolean boolean getBool Bool
Double double getPDouble Double
Float float getPFloat Float
Long long getPLong Long
Integer int getInt Int
Short short getPShort Short
Byte byte getPByte Byte
Character char getChar Char
-->
* @since 0.1.0
* @author Copyright (C) 2014, Jeff Epstein ({@code aliteralmind __DASH__ github __AT__ yahoo __DOT__ com}), dual-licensed under the LGPL (version 3.0 or later) or the ASL (version 2.0). See source code for details. <a href="http://xbnjava.aliteralmind.com">{@code http://xbnjava.aliteralmind.com}</a>, <a href="https://github.com/aliteralmind/xbnjava">{@code https://github.com/aliteralmind/xbnjava}</a>
**/
public abstract class AbstractListifyBoolable extends AbstractListifyPrimitiveable<Boolean> implements ListifyBoolable {
//constructors...START
@SuppressWarnings("unchecked")
public AbstractListifyBoolable(Object raw_obj) {
this(raw_obj, SimpleNullHandlerForPrimitives.CRASH);
}
public AbstractListifyBoolable(Object raw_obj, NullHandlerForPrimitives<Boolean> null_handler) {
super(raw_obj, AddRemovable.NO, NewPrimitiveArrayHelper.forBoolean(), (new OneParamCnstrValueCopier<Boolean>(Boolean.class)), null_handler);
}
//constructors...END
public final boolean[] getPArrayCopyOrNull(NullContainer nnull) {
if(getRawObject() == null) {
IndexableUtil.crashIfContainerIsNullAndThatIsBad(nnull, "getRawObject()");
return null;
}
boolean[] ai = new boolean[size()];
int j = 0;
for(boolean i : this) {
ai[j++] = i;
}
return ai;
}
public final Boolean[] getEArrayCopyOrNull(NullContainer nnull, CopyElements copy_elements) {
if(getRawObject() == null) {
IndexableUtil.crashIfContainerIsNullAndThatIsBad(nnull, "getRawObject()");
return null;
}
Boolean[] ao = new Boolean[size()];
int j = 0;
for(Boolean I : this) {
ao[j++] = I;
}
return ao;
}
protected Boolean getElementRTXOkay(int index) {
return getBool(index);
}
/*stub functions for non-abstract compile...START
public final java.util.Iterator<Boolean> iterator() {
return null;
}
public final boolean getBool(int index) {
return false;
}
stub functions for non-abstract compile...END*/
}