1 16 17 package org.pentaho.core.connection; 18 19 public abstract class AbstractPentahoMetaData implements IPentahoMetaData { 20 25 public int getColumnIndex(String value) { 26 Object [][] columnHeaders = getColumnHeaders(); 27 if (columnHeaders == null || columnHeaders.length != 1) { 28 return -1; 29 } 30 for (int idx = 0; idx < columnHeaders[0].length; idx++) { 31 if (columnHeaders[0][idx].toString().equalsIgnoreCase(value)) { 32 return idx; 33 } 34 } 35 return -1; 36 } 37 38 43 public int getColumnIndex(String [] values) { 44 Object [][] columnHeaders = getColumnHeaders(); 45 if (columnHeaders == null || columnHeaders.length != values.length) { 46 return -1; 47 } 48 for (int columnIdx = 0; columnIdx < columnHeaders[0].length; columnIdx++) { 49 boolean match = true; 50 for (int rowIdx = 0; rowIdx < columnHeaders.length && match; rowIdx++) { 51 match = columnHeaders[rowIdx][columnIdx].toString().equalsIgnoreCase(values[rowIdx]); 52 } 53 if (match) { 54 return columnIdx; 55 } 56 } 57 return -1; 58 } 59 60 65 public int getRowIndex(String value) { 66 Object [][] rowHeaders = getRowHeaders(); 67 if (rowHeaders == null || rowHeaders[0].length != 1) { 68 return -1; 69 } 70 for (int rowIdx = 0; rowIdx < rowHeaders.length; rowIdx++) { 71 if (rowHeaders[rowIdx][0].toString().equalsIgnoreCase(value)) { 72 return rowIdx; 73 } 74 } 75 return -1; 76 } 77 78 83 public int getRowIndex(String [] values) { 84 Object [][] rowHeaders = getRowHeaders(); 85 if (rowHeaders == null || rowHeaders[0].length != values.length) { 86 return -1; 87 } 88 for (int rowIdx = 0; rowIdx < rowHeaders.length; rowIdx++) { 89 boolean match = true; 90 for (int columnIdx = 0; columnIdx < rowHeaders[rowIdx].length && match; columnIdx++) { 91 match = rowHeaders[rowIdx][columnIdx].toString().equalsIgnoreCase(values[columnIdx]); 92 } 93 if (match) { 94 return rowIdx; 95 } 96 } 97 return -1; 98 } 99 100 105 public abstract Object [][] getColumnHeaders(); 106 107 112 public abstract Object [][] getRowHeaders(); 113 114 119 public int getColumnCount() { 120 Object [][] columnHeaders = getColumnHeaders(); 121 if (columnHeaders == null || columnHeaders.length <= 0) { 122 return 0; 123 } 124 return columnHeaders[0].length; 125 } 126 } 127 | Popular Tags |