javafx.collections.ObservableIntegerArray Maven / Gradle / Ivy
/*
* Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package javafx.collections;
/**
* {@code ObservableIntegerArray} is an {@code int[]} array that allows listeners
* to track changes when they occur. In order to track changes, the internal
* array is encapsulated and there is no direct access available from the outside.
* Bulk operations are supported but they always do a copy of the data range.
*
* @see ArrayChangeListener
* @since JavaFX 8.0
*/
public interface ObservableIntegerArray extends ObservableArray {
/**
* Copies specified portion of array into {@code dest} array. Throws
* the same exceptions as {@link System#arraycopy(java.lang.Object,
* int, java.lang.Object, int, int) System.arraycopy()} method.
* @param srcIndex starting position in the observable array
* @param dest destination array
* @param destIndex starting position in destination array
* @param length length of portion to copy
*/
public void copyTo(int srcIndex, int[] dest, int destIndex, int length);
/**
* Copies specified portion of array into {@code dest} observable array.
* Throws the same exceptions as {@link System#arraycopy(java.lang.Object,
* int, java.lang.Object, int, int) System.arraycopy()} method.
* @param srcIndex starting position in the observable array
* @param dest destination observable array
* @param destIndex starting position in destination observable array
* @param length length of portion to copy
*/
public void copyTo(int srcIndex, ObservableIntegerArray dest, int destIndex, int length);
/**
* Gets a single value of array. This is generally as fast as direct access
* to an array and eliminates necessity to make a copy of array.
* @param index index of element to get
* @return value at the given index
* @throws ArrayIndexOutOfBoundsException if {@code index} is outside
* array bounds
*/
public int get(int index);
/**
* Appends given {@code elements} to the end of this array. Capacity is increased
* if necessary to match the new size of the data.
* @param elements elements to append
*/
public void addAll(int... elements);
/**
* Appends content of a given observable array to the end of this array.
* Capacity is increased if necessary to match the new size of the data.
* @param src observable array with elements to append
*/
public void addAll(ObservableIntegerArray src);
/**
* Appends a portion of given array to the end of this array.
* Capacity is increased if necessary to match the new size of the data.
* @param src source array
* @param srcIndex starting position in source array
* @param length length of portion to append
*/
public void addAll(int[] src, int srcIndex, int length);
/**
* Appends a portion of given observable array to the end of this array.
* Capacity is increased if necessary to match the new size of the data.
* @param src source observable array
* @param srcIndex starting position in source array
* @param length length of portion to append
*/
public void addAll(ObservableIntegerArray src, int srcIndex, int length);
/**
* Replaces this observable array content with given elements.
* Capacity is increased if necessary to match the new size of the data.
* @param elements elements to put into array content
* @throws NullPointerException if {@code src} is null
*/
public void setAll(int... elements);
/**
* Replaces this observable array content with a copy of portion of
* a given array.
* Capacity is increased if necessary to match the new size of the data.
* @param src source array to copy.
* @param srcIndex starting position in source observable array
* @param length length of a portion to copy
* @throws NullPointerException if {@code src} is null
*/
public void setAll(int[] src, int srcIndex, int length);
/**
* Replaces this observable array content with a copy of given observable array.
* Capacity is increased if necessary to match the new size of the data.
* @param src source observable array to copy.
* @throws NullPointerException if {@code src} is null
*/
public void setAll(ObservableIntegerArray src);
/**
* Replaces this observable array content with a portion of a given
* observable array.
* Capacity is increased if necessary to match the new size of the data.
* @param src source observable array to copy.
* @param srcIndex starting position in source observable array
* @param length length of a portion to copy
* @throws NullPointerException if {@code src} is null
*/
public void setAll(ObservableIntegerArray src, int srcIndex, int length);
/**
* Copies a portion of specified array into this observable array. Throws
* the same exceptions as {@link System#arraycopy(java.lang.Object,
* int, java.lang.Object, int, int) System.arraycopy()} method.
* @param destIndex the starting destination position in this observable array
* @param src source array to copy
* @param srcIndex starting position in source array
* @param length length of portion to copy
*/
public void set(int destIndex, int[] src, int srcIndex, int length);
/**
* Copies a portion of specified observable array into this observable array.
* Throws the same exceptions as {@link System#arraycopy(java.lang.Object,
* int, java.lang.Object, int, int) System.arraycopy()} method.
* @param destIndex the starting destination position in this observable array
* @param src source observable array to copy
* @param srcIndex starting position in source array
* @param length length of portion to copy
*/
public void set(int destIndex, ObservableIntegerArray src, int srcIndex, int length);
/**
* Sets a single value in the array. Avoid using this method if many values
* are updated, use {@linkplain #set(int, int[], int, int)} update method
* instead with as minimum number of invocations as possible.
* @param index index of the value to set
* @param value new value for the given index
* @throws ArrayIndexOutOfBoundsException if {@code index} is outside
* array bounds
*/
public void set(int index, int value);
/**
* Returns an array containing copy of the observable array.
* If the observable array fits in the specified array, it is copied therein.
* Otherwise, a new array is allocated with the size of the observable array.
*
* @param dest the array into which the observable array to be copied,
* if it is big enough; otherwise, a new int array is allocated.
* Ignored, if null.
* @return an int array containing the copy of the observable array
*/
public int[] toArray(int[] dest);
/**
* Returns an array containing copy of specified portion of the observable array.
* If specified portion of the observable array fits in the specified array,
* it is copied therein. Otherwise, a new array of given length is allocated.
*
* @param srcIndex starting position in the observable array
* @param dest the array into which specified portion of the observable array
* to be copied, if it is big enough;
* otherwise, a new int array is allocated.
* Ignored, if null.
* @param length length of portion to copy
* @return an int array containing the copy of specified portion the observable array
*/
public int[] toArray(int srcIndex, int[] dest, int length);
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy