GNU Classpath (0.20) | |
Frames | No Frames |
1: /* SizeSequence.java -- 2: Copyright (C) 2002 Free Software Foundation, Inc. 3: 4: This file is part of GNU Classpath. 5: 6: GNU Classpath is free software; you can redistribute it and/or modify 7: it under the terms of the GNU General Public License as published by 8: the Free Software Foundation; either version 2, or (at your option) 9: any later version. 10: 11: GNU Classpath is distributed in the hope that it will be useful, but 12: WITHOUT ANY WARRANTY; without even the implied warranty of 13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14: General Public License for more details. 15: 16: You should have received a copy of the GNU General Public License 17: along with GNU Classpath; see the file COPYING. If not, write to the 18: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 19: 02110-1301 USA. 20: 21: Linking this library statically or dynamically with other modules is 22: making a combined work based on this library. Thus, the terms and 23: conditions of the GNU General Public License cover the whole 24: combination. 25: 26: As a special exception, the copyright holders of this library give you 27: permission to link this library with independent modules to produce an 28: executable, regardless of the license terms of these independent 29: modules, and to copy and distribute the resulting executable under 30: terms of your choice, provided that you also meet, for each linked 31: independent module, the terms and conditions of the license of that 32: module. An independent module is a module which is not derived from 33: or based on this library. If you modify this library, you may extend 34: this exception to your version of the library, but you are not 35: obligated to do so. If you do not wish to do so, delete this 36: exception statement from your version. */ 37: 38: package javax.swing; 39: 40: /** 41: * SizeSequence 42: * @author Andrew Selkirk 43: * @version 1.0 44: */ 45: public class SizeSequence 46: { 47: 48: /** 49: * sizes 50: */ 51: private int[] sizes = new int[0]; 52: 53: /** 54: * Constructor SizeSequence 55: */ 56: public SizeSequence() 57: { 58: sizes = new int[0]; 59: } 60: 61: /** 62: * Constructor SizeSequence 63: * @param numEntries TODO 64: */ 65: public SizeSequence(int numEntries) 66: { 67: this(numEntries, 0); 68: } 69: 70: /** 71: * Constructor SizeSequence 72: * @param numEntries TODO 73: * @param value TODO 74: */ 75: public SizeSequence(int numEntries, int value) 76: { 77: insertEntries(0, numEntries, value); 78: } 79: 80: /** 81: * Constructor SizeSequence 82: * @param sizes TODO 83: */ 84: public SizeSequence(int[] sizes) 85: { 86: setSizes(sizes); 87: } 88: 89: /** 90: * setSize 91: * @param index TODO 92: * @param size TODO 93: */ 94: public void setSize(int index, int size) 95: { 96: sizes[index] = size; 97: } 98: 99: /** 100: * getIndex 101: * @param position TODO 102: * @returns int 103: */ 104: public int getIndex(int position) 105: { 106: return 0; // TODO 107: } 108: 109: /** 110: * getSize 111: * @param index TODO 112: * @returns int 113: */ 114: public int getSize(int index) 115: { 116: return sizes[index]; 117: } 118: 119: /** 120: * setSizes 121: * @param sizes TODO 122: */ 123: public void setSizes(int[] sizes) 124: { 125: int index; 126: // Initialize sizes. 127: this.sizes = new int[sizes.length]; 128: for (index = 0; index < sizes.length; index++) 129: this.sizes[index] = sizes[index]; 130: 131: } 132: 133: /** 134: * getSizes 135: * @returns int[] 136: */ 137: public int[] getSizes() 138: { 139: int[] array; 140: int index; 141: 142: // Create new array. 143: array = new int[sizes.length]; 144: for (index = 0; index < sizes.length; index++) 145: array[index] = sizes[index]; 146: 147: // Return newly created array. 148: return array; 149: 150: } 151: 152: /** 153: * getPosition 154: * @param index TODO 155: * @returns int 156: */ 157: public int getPosition(int index) 158: { 159: int position; 160: int loop; 161: 162: // Process sizes. 163: position = 0; 164: for (loop = 0; loop < index; loop++) 165: position += sizes[loop]; 166: 167: // Return position. 168: return position; 169: 170: } 171: 172: /** 173: * insertEntries 174: * @param start TODO 175: * @param length TODO 176: * @param value TODO 177: */ 178: public void insertEntries(int start, int length, int value) 179: { 180: int[] array; 181: int index; 182: int arrayIndex; 183: int loop; 184: 185: // Create new array. 186: array = new int[sizes.length + length]; 187: arrayIndex = 0; 188: for (index = 0; index < sizes.length; index++) 189: { 190: if (index == start) 191: { 192: for (loop = 0; loop < length; loop++) 193: { 194: array[arrayIndex] = value; 195: arrayIndex++; 196: } 197: } 198: else 199: { 200: array[arrayIndex] = sizes[index]; 201: arrayIndex++; 202: } 203: } 204: 205: } 206: 207: /** 208: * removeEntries 209: * @param start TODO 210: * @param length TODO 211: */ 212: public void removeEntries(int start, int length) 213: { 214: int[] array; 215: int index; 216: int arrayIndex; 217: 218: // Sanity check. 219: if ((start + length) > sizes.length) 220: throw new IllegalArgumentException("Specified start/length that " 221: + "is greater than available sizes"); 222: 223: // Create new array. 224: array = new int[sizes.length - length]; 225: arrayIndex = 0; 226: for (index = 0; index < sizes.length; index++) 227: { 228: if (index == start) 229: index += length - 1; 230: else 231: { 232: array[arrayIndex] = sizes[index]; 233: arrayIndex++; 234: } 235: } 236: } 237: 238: }
GNU Classpath (0.20) |