/** * Iterates the list removing all the nodes until there are no more nodes to remove. */ public void clear() { while ( removeFirst() != null ) { } }
@Test public void testRemoveFirst() { this.list.add( this.node1 ); this.list.add( this.node2 ); this.list.add( this.node3 ); assertSame( "List should return node1 on getFirst()", this.list.getFirst(), this.node1 ); this.list.removeFirst(); assertSame( "List should return node2 on getFirst()", this.list.getFirst(), this.node2 ); this.list.removeFirst(); assertSame( "List should return node3 on getFirst()", this.list.getFirst(), this.node3 ); this.list.removeFirst(); assertNull( "Empty list should return null on getFirst()", this.list.getFirst() ); }
public Activation getNext() { Activation activation = null; while ( this.index <= lastIndex ) { LinkedList<LinkedListEntry<Activation>> list = this.array[this.index]; if ( list != null ) { activation = list.removeFirst().getObject(); if ( list.isEmpty()) { this.array[this.index++] = null; } this.size--; break; } this.index++; } return activation; }
public void clear() { // reset focus stack this.focusStack.clear(); this.focusStack.add( getMainAgendaGroup() ); // reset scheduled activations if ( !this.scheduledActivations.isEmpty() ) { for ( ScheduledAgendaItem item = this.scheduledActivations.removeFirst(); item != null; item = this.scheduledActivations.removeFirst() ) { item.setEnqueued( false ); Scheduler.removeAgendaItem( item, this ); } } // reset staged activations getStageActivationsGroup().clear(); //reset all agenda groups for ( InternalAgendaGroup group : this.agendaGroups.values() ) { group.clear(); } // reset all ruleflows for ( RuleFlowGroup group : this.ruleFlowGroups.values() ) { group.clear(); } // reset all activation groups. for ( ActivationGroup group : this.activationGroups.values() ) { group.clear(); } }
public void unstageActivations() { if ( !declarativeAgenda || getStageActivationsGroup().isEmpty() ) { return; } org.drools.core.util.LinkedList<ActivationGroupNode> list = getStageActivationsGroup().getList(); for ( ActivationGroupNode node = list.removeFirst(); node != null; node = list.removeFirst() ) { AgendaItem item = ( AgendaItem ) node.getActivation(); item.setActivationGroupNode( null ); addActivation( item, false ); } notifyHalt(); }
for ( ScheduledAgendaItem item = this.scheduledActivations.removeFirst(); item != null; item = this.scheduledActivations.removeFirst() ) { if ( item.getEnqueued().compareAndSet( true, false ) ) { Scheduler.removeAgendaItem( item,
public void clearAndCancelStagedActivations() { if ( getStageActivationsGroup().isEmpty() ) { return; } org.drools.core.util.LinkedList<ActivationGroupNode> list = getStageActivationsGroup().getList(); final EventSupport eventsupport = (EventSupport) this.workingMemory; for ( ActivationGroupNode node = list.removeFirst(); node != null; node = list.removeFirst() ) { AgendaItem item = ( AgendaItem ) node.getActivation(); // This must be set to false otherwise modify won't work properly item.setActivated( false ); eventsupport.getAgendaEventSupport().fireActivationCancelled( item, this.workingMemory, ActivationCancelledCause.CLEAR ); } }
/** * Removes a <code>LinkedListNode</code> from the list. This works by attach the previous reference to the child reference. * When the node to be removed is the first node it calls <code>removeFirst()</code>. When the node to be removed is the last node * it calls <code>removeLast()</code>. * * @param node * The <code>LinkedListNode</code> to be removed. */ public void remove(final T node) { if ( this.firstNode == node ) { removeFirst(); } else if ( this.lastNode == node ) { removeLast(); } else { node.getPrevious().setNext( node.getNext() ); (node.getNext()).setPrevious( node.getPrevious() ); this.size--; node.setPrevious( null ); node.setNext( null ); } }