diff --git a/trunk/SIPRPSoft/src/leaf/data/OrderedMap.java b/trunk/SIPRPSoft/src/leaf/data/OrderedMap.java deleted file mode 100644 index 96b6f4d6..00000000 --- a/trunk/SIPRPSoft/src/leaf/data/OrderedMap.java +++ /dev/null @@ -1,342 +0,0 @@ -package leaf.data; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Vector; - -public class OrderedMap implements Iterable -{ - private static final long serialVersionUID = 1L; - - private Vector order = new Vector(); - - private HashMap> map = new HashMap>(); - - public OrderedMap() - { - } - - public OrderedMap(Collection allPrestadores) - { - Iterator iterator = allPrestadores.iterator(); - while( iterator.hasNext() ) - { - KeyClass value = iterator.next(); - this.putLast( value, value ); - } - } - - public List getRow( int row ) - { - return map.get( order.get( row ) ); - } - - public List getValues( KeyClass key ) - { - return map.get( key ); - } - - public int rows() - { - return order.size(); - } - - public KeyClass getKeyForValue( Object value ) - { - for( KeyClass key : map.keySet() ) - { - List values = map.get( key ); - if( value.equals( values ) ) - { - return key; - } - else - { - for( Object currentValue : values ) - { - if( currentValue.equals( value ) ) - { - return key; - } - } - } - } - return null; - } - - /** - * returns the length of the biggest line - * - * @return - */ - public int columns() - { - int result = 0; - for( KeyClass key : order ) - { - result = map.get( key ).size() > result ? map.get( key ).size() : result; - } - return result; - } - - public List getColumn( int i ) - { - List result = new ArrayList(); - if( order != null && order.size() > 0 ) - { - for( KeyClass key : order ) - { - List row = map.get( key ); - if( row != null && row.size() > 0 ) - { - result.add( row.get( 0 ) ); - } - else - { - row.add( null ); - } - } - } - return result; - } - - public KeyClass getFirst() - { - return order.isEmpty() ? null : order.get( 0 ); - } - - public Iterator iterator() - { - return order.iterator(); - } - - public boolean containsKey( KeyClass key ) - { - return map.containsKey( key ); - } - - public Object getValueAt( int row, int column ) - { - Object result = null; - if( row < order.size() ) - { - List line = map.get( order.get( row ) ); - if( column < line.size() ) - { - result = line.get( column ); - } - } - return result; - } - - /** - * Adds arguments to the end of the row (on given order) - * - * @param key - * @param values - */ - public void putLast( KeyClass key, Object... values ) - { - if( values != null ) - { - for( Object currentValue : values ) - { - putLast( key, currentValue ); - } - } - } - - /** - * Adds argument to the end of the row - * - * @param key - * @param value - */ - public void putLast( KeyClass key, Object value ) - { - List list; - if( map.containsKey( key ) ) - { - list = map.get( key ); - } - else - { - list = new ArrayList(); - order.add( key ); - } - list.add( value ); - map.put( key, list ); - } - - public List remove( Object key ) - { - order.remove( key ); - return map.remove( key ); - } - - /** - * Orders by first column (rows compared as strings) - */ - public void order() - { - order( 0 ); - } - - public void order( int columnNumber ) - { - order( new int[] { - columnNumber - }, 0, 0, order.size() - 1, order ); - } - - public void order( int[] colNumbers ) - { - order( colNumbers, 0, 0, order.size() - 1, order ); - } - - private void order( int[] colNumbers, int currentColumnIndex, int fromLineNumber, int toLineNumber, List order ) - { - if( colNumbers != null && currentColumnIndex >= 0 && fromLineNumber < toLineNumber && toLineNumber < order.size() && currentColumnIndex < colNumbers.length ) - { - int columnNumber = colNumbers[currentColumnIndex]; - if( order != null && order.size() > 0 ) - { - List> sortedList = new ArrayList>(); - for( int i = fromLineNumber; i < order.size() && i < (toLineNumber + 1); ++i ) - { - KeyClass key = order.get( i ); - List row = map.get( key ); - String value = ""; - if( row != null && row.size() > columnNumber && row.get( columnNumber ) != null ) - { - value = row.get( columnNumber ).toString(); - } - sortedList.add( new Pair( value, key ) ); - } - Collections.sort( sortedList ); - List> equalEntries = new ArrayList>(); - for( int i = 0; i < sortedList.size(); ++i ) - { - Pair entry = sortedList.get( i ); - if( equalEntries.isEmpty() && i < (sortedList.size() - 1) ) - { - equalEntries.add( entry ); - } - else - { - Pair previousEntry = equalEntries.get( 0 ); - if( previousEntry.getCar().equals( entry.getCar() ) ) - { - if( i < (sortedList.size() - 1) ) - { - equalEntries.add( entry ); - continue; - } - else - { - equalEntries.add( entry ); - ++i; - } - } - if( equalEntries.size() > 1 ) - { - List toSubOrder = new Vector(); - List DEBUGLIST = new Vector(); - for( Pair pair : equalEntries ) - { - toSubOrder.add( pair.getCdr() ); - DEBUGLIST.add( pair.getCar() ); - } - order( colNumbers, currentColumnIndex + 1, 0, toSubOrder.size() - 1, toSubOrder ); - for( int j = 0; j < toSubOrder.size(); ++j ) - { - sortedList.set( i - toSubOrder.size() + j, new Pair( "", toSubOrder.get( j ) ) ); - } - } - equalEntries.clear(); - if( i < (sortedList.size() - 1) ) - { - equalEntries.add( entry ); - } - } - } - for( int i = 0; i < sortedList.size(); ++i ) - { - Pair value = sortedList.get( i ); - order.set( i, value.getCdr() ); - } - } - } - } - - public void addRow( KeyClass key, List grupo ) - { - if( key != null && grupo != null ) - { - order.add( key ); - map.put( key, grupo ); - } - } - - public void clear() - { - order.clear(); - map.clear(); - } - - public void deleteRow( int row ) - { - if( row < order.size() ) - { - KeyClass key = order.get( row ); - order.remove( row ); - map.remove( key ); - } - } - - public KeyClass getKeyForRow( int row ) - { - KeyClass result = null; - if( row < order.size() ) - { - result = order.get( row ); - } - return result; - } - - public void setValueAt( int row, int col, Object obj ) - { - if( row < order.size() ) - { - List line = map.get( order.get( row ) ); - if( col < line.size() ) - { - line.add( col, obj ); - } - } - } - - public Object getFirstValue( KeyClass key ) - { - return getValue( key, 0 ); - } - - public Object getValue( KeyClass key, int i ) - { - Object result = null; - if( key != null && order.contains( key ) ) - { - List row = map.get( key ); - if( row != null && row.size() > i ) - { - result = row.get( i ); - } - } - return result; - } - -} diff --git a/trunk/SIPRPSoft/src/leaf/data/Pair.java b/trunk/SIPRPSoft/src/leaf/data/Pair.java deleted file mode 100644 index f1353217..00000000 --- a/trunk/SIPRPSoft/src/leaf/data/Pair.java +++ /dev/null @@ -1,48 +0,0 @@ -package leaf.data; - -public class Pair, CdrClass> implements Comparable> -{ - - private final CarClass car; - private final CdrClass cdr; - - public Pair(CarClass car, CdrClass cdr) - { - this.car = car; - this.cdr = cdr; - } - - public CarClass getCar() - { - return car; - } - - public CdrClass getCdr() - { - return cdr; - } - - @Override - public int compareTo( Pair toPair ) - { - if(toPair == null) - { - return 1; - } - else if(car == null && toPair.getCar() == null) - { - return 0; - } - else - { - return getCar().compareTo( toPair.getCar() ); - } - } - - @Override - public String toString() - { - return "(" + (car == null ? "" : car.toString()) + ", "+ (cdr == null ? "" : cdr.toString()) + ")"; - } - -}