EMMA Coverage Report (generated Wed Jun 28 19:54:35 CEST 2006)
[all classes][smallsql.database]

COVERAGE SUMMARY FOR SOURCE FILE [IndexDescriptions.java]

nameclass, %method, %block, %line, %
IndexDescriptions.java100% (1/1)75%  (6/8)46%  (68/148)45%  (15/33)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class IndexDescriptions100% (1/1)75%  (6/8)46%  (68/148)45%  (15/33)
findBestMatch (Strings): IndexDescription 0%   (0/1)0%   (0/43)0%   (0/12)
resize (int): void 0%   (0/1)0%   (0/15)0%   (0/4)
get (int): IndexDescription 100% (1/1)36%  (9/25)67%  (2/3)
add (IndexDescription): void 100% (1/1)75%  (18/24)75%  (3/4)
IndexDescriptions (): void 100% (1/1)100% (7/7)100% (3/3)
create (Database, TableView): void 100% (1/1)100% (16/16)100% (3/3)
drop (Database): void 100% (1/1)100% (15/15)100% (3/3)
size (): int 100% (1/1)100% (3/3)100% (1/1)

1/* =============================================================
2 * SmallSQL : a free Java DBMS library for the Java(tm) platform
3 * =============================================================
4 *
5 * (C) Copyright 2004-2006, by Volker Berlin.
6 *
7 * Project Info:  http://www.smallsql.de/
8 *
9 * This library is free software; you can redistribute it and/or modify it 
10 * under the terms of the GNU Lesser General Public License as published by 
11 * the Free Software Foundation; either version 2.1 of the License, or 
12 * (at your option) any later version.
13 *
14 * This library is distributed in the hope that it will be useful, but 
15 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 
16 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 
17 * License for more details.
18 *
19 * You should have received a copy of the GNU Lesser General Public
20 * License along with this library; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, 
22 * USA.  
23 *
24 * [Java is a trademark or registered trademark of Sun Microsystems, Inc. 
25 * in the United States and other countries.]
26 *
27 * ---------------
28 * IndexDescriptions.java
29 * ---------------
30 * Author: Volker Berlin
31 * 
32 * Created on 23.04.2005
33 */
34package smallsql.database;
35/**
36 * A typed implementation of Arraylist for IndexDescription.
37 * 
38 * @author Volker Berlin
39 *
40 */
41class IndexDescriptions {
42        private int size;
43        private IndexDescription[] data;
44        
45        
46        IndexDescriptions(){
47                data = new IndexDescription[4];
48        }
49        
50 
51        final int size(){
52                return size;
53        }
54        
55 
56        final IndexDescription get(int idx){
57                if (idx >= size)
58                        throw new IndexOutOfBoundsException("Column index: "+idx+", Size: "+size);
59                return data[idx];
60        }
61        
62        
63        final void add(IndexDescription descr){
64                if(size >= data.length ){
65                        resize(size << 1);
66                }
67                data[size++] = descr;
68        }
69        
70        
71        private final void resize(int newSize){
72                IndexDescription[] dataNew = new IndexDescription[newSize];
73                System.arraycopy(data, 0, dataNew, 0, size);
74                data = dataNew;                
75        }
76        
77        
78        final IndexDescription findBestMatch(Strings columns){
79                int bestFactor = Integer.MAX_VALUE;
80                int bestIdx = 0;
81                for(int i=0; i<size; i++){
82                        int factor = data[i].matchFactor(columns);
83                        if(factor == 0) 
84                                return data[i];
85                        
86                        if(factor < bestFactor){
87                                bestFactor = factor;
88                                bestIdx = i;
89                        }
90                }
91                if(bestFactor == Integer.MAX_VALUE)
92                        return null;
93                else
94                        return data[bestIdx];
95        }
96 
97 
98        /**
99         * Create all the indexes. This means a file for every index is save.
100         * @param database 
101         * @param tableView
102         * @see IndexDescription#setTableView
103         */
104        void create(Database database, TableView tableView) throws Exception{
105                for(int i=0; i<size; i++){
106                        data[i].create(database, tableView);
107                }
108        }
109 
110 
111        public void drop(Database database) throws Exception {
112                for(int i=0; i<size; i++){
113                        data[i].drop(database);
114                }
115        }
116}

[all classes][smallsql.database]
EMMA 2.1.5320 (stable) (C) Vladimir Roubtsov