From: Sébastien Miquée Date: Mon, 12 Jul 2010 09:47:49 +0000 (+0200) Subject: Correction of function implementation. X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/mapping.git/commitdiff_plain/32b88f3351041eaf23d1b95531b3925ac5ca9eb1 Correction of function implementation. Addition of some comments. --- diff --git a/src/and/Mapping/Maheve.java b/src/and/Mapping/Maheve.java index c466778..a8f0472 100644 --- a/src/and/Mapping/Maheve.java +++ b/src/and/Mapping/Maheve.java @@ -15,7 +15,7 @@ public class Maheve extends Algo private ArrayList sortedCluster = null ; private ArrayList tasks = null ; - + /** * Empty default constructor. */ @@ -102,6 +102,8 @@ public class Maheve extends Algo { ArrayList l1 = sortTasks() ; + ArrayList st = new ArrayList() ; + if( l1 != null && l1.size() > 0 ) { ArrayList l2 = new ArrayList() ; @@ -112,16 +114,18 @@ public class Maheve extends Algo if( l2.size() == 0 ) { l2.add( l1.get( 0 ) ) ; + st.add( l1.get( 0 ).getNum() ) ; } while( l2.size() > 0 ) { l1.remove( l2.get( 0 ) ) ; - tmp = addTask( l2.remove( 0 ), l1 ) ; + tmp = addTask( l2.remove( 0 ), l1, st ) ; for( int i = 0 ; i < tmp.size() ; i++ ) { l2.add( tmp.get( i ) ) ; + st.add( tmp.get( i ).getNum() ) ; } } } @@ -129,7 +133,8 @@ public class Maheve extends Algo } - private ArrayList addTask(GTask _gt, ArrayList _ar) + private ArrayList addTask(GTask _gt, ArrayList _ar, + ArrayList _st ) { ArrayList ret = null ; @@ -148,24 +153,33 @@ public class Maheve extends Algo ArrayList dep = new ArrayList() ; + // ** Retrieving dependencies and eliminating tasks already treated + // ** or in instance to be treated. **// for( int i = 0 ; i < _gt.getDependencies().size() ; i++ ) { - dep.add( _gt.getDependencies().get( i ).getNum() ) ; + if( ! _st.contains( _gt.getDependencies().get( i ).getNum() ) ) + { + dep.add( _gt.getDependencies().get( i ).getNum() ) ; + } } + + // ** Searching dependencies in sorted tasks list ** // for( int i = 0 ; i < _ar.size() ; i++ ) { num = _ar.get( i ).getNum() ; - for( int j = 0 ; j < dep.size() ; j++ ) + if( dep.contains( num ) ) { - if( num == dep.get( j ) ) - { +// for( int j = 0 ; j < dep.size() ; j++ ) +// { +// if( num == dep.get( j ) ) +// { ret.add( _ar.remove( i ) ) ; cmpt++ ; - dep.remove( j ) ; - break ; - } +// dep.remove( j ) ; +// break ; +// } } if( cmpt == nbDep )