Addition of some comments.
private ArrayList<Cluster> sortedCluster = null ;
private ArrayList<GTask> tasks = null ;
private ArrayList<Cluster> sortedCluster = null ;
private ArrayList<GTask> tasks = null ;
/**
* Empty default constructor.
*/
/**
* Empty default constructor.
*/
{
ArrayList<GTask> l1 = sortTasks() ;
{
ArrayList<GTask> l1 = sortTasks() ;
+ ArrayList<Integer> st = new ArrayList<Integer>() ;
+
if( l1 != null && l1.size() > 0 )
{
ArrayList<GTask> l2 = new ArrayList<GTask>() ;
if( l1 != null && l1.size() > 0 )
{
ArrayList<GTask> l2 = new ArrayList<GTask>() ;
if( l2.size() == 0 )
{
l2.add( l1.get( 0 ) ) ;
if( l2.size() == 0 )
{
l2.add( l1.get( 0 ) ) ;
+ st.add( l1.get( 0 ).getNum() ) ;
}
while( l2.size() > 0 )
{
l1.remove( l2.get( 0 ) ) ;
}
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 ) ) ;
for( int i = 0 ; i < tmp.size() ; i++ )
{
l2.add( tmp.get( i ) ) ;
+ st.add( tmp.get( i ).getNum() ) ;
- private ArrayList<GTask> addTask(GTask _gt, ArrayList<GTask> _ar)
+ private ArrayList<GTask> addTask(GTask _gt, ArrayList<GTask> _ar,
+ ArrayList<Integer> _st )
{
ArrayList<GTask> ret = null ;
{
ArrayList<GTask> ret = null ;
ArrayList<Integer> dep = new ArrayList<Integer>() ;
ArrayList<Integer> dep = new ArrayList<Integer>() ;
+ // ** Retrieving dependencies and eliminating tasks already treated
+ // ** or in instance to be treated. **//
for( int i = 0 ; i < _gt.getDependencies().size() ; i++ )
{
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 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++ ;
ret.add( _ar.remove( i ) ) ;
cmpt++ ;
- dep.remove( j ) ;
- break ;
- }
+// dep.remove( j ) ;
+// break ;
+// }