Code Duplication    Length = 97-97 lines in 2 locations

src/main/java/it/cnr/istc/pst/platinum/ai/framework/microkernel/resolver/plan/TimelineAwarePlanRefinementResolver.java 1 location

@@ 1713-1809 (lines=97) @@
1710
	 * 
1711
	 * @param unification
1712
	 */
1713
	private void doRetractUnification(GoalUnification unification) {
1714
		
1715
		// original goal 
1716
		Decision goal = unification.getGoalDecision();
1717
		
1718
		// get goal component
1719
		DomainComponent goalComp = goal.getComponent();
1720
		// restore original planning goal SILENT -> PENDING
1721
		goalComp.restore(goal);
1722
1723
		// deactivate activated relations
1724
		for (Relation rel : unification.getActivatedRelations()) {
1725
			// get reference component
1726
			DomainComponent refComp = rel.getReference().getComponent();
1727
			refComp.deactivate(rel);
1728
		}
1729
		
1730
		// translated back relations
1731
		for (Relation rel : unification.getTranslatedReferenceGoalRelations()){
1732
			// check category
1733
			if (rel.getCategory().equals(ConstraintCategory.PARAMETER_CONSTRAINT)) {
1734
				
1735
				// get parameter relation
1736
				ParameterRelation pRel = (ParameterRelation) rel;
1737
				
1738
				// get relation reference parameter label
1739
				String refParamLabel = pRel.getReferenceParameterLabel();
1740
				// get label index
1741
				int pIndex = pRel.getReference().getParameterIndexByLabel(refParamLabel);
1742
				// get goal decision parameter label
1743
				String label = goal.getParameterLabelByIndex(pIndex);
1744
				
1745
				// update relation
1746
				pRel.setReference(goal);
1747
				pRel.setReferenceParameterLabel(label);
1748
			}
1749
			
1750
			if (rel.getCategory().equals(ConstraintCategory.TEMPORAL_CONSTRAINT)) {
1751
				// update relation
1752
				rel.setReference(goal);
1753
			}
1754
		}
1755
		
1756
		// translated back parameter relations
1757
		for (Relation rel : unification.getTranslatedTargetGoalRelations()) {
1758
			
1759
			// check relation category 
1760
			if (rel.getCategory().equals(ConstraintCategory.PARAMETER_CONSTRAINT)) {
1761
				// check relation
1762
				switch (rel.getType()) {
1763
				
1764
					case EQUAL_PARAMETER : {
1765
						
1766
						// get equal relation
1767
						EqualParameterRelation eqRel = (EqualParameterRelation) rel;
1768
						// get relation reference parameter label
1769
						String tarParamLabel = eqRel.getTargetParameterLabel();
1770
						// get label index
1771
						int pIndex = eqRel.getTarget().getParameterIndexByLabel(tarParamLabel);
1772
						// get goal decision parameter label
1773
						String label = goal.getParameterLabelByIndex(pIndex);
1774
						
1775
						// update relation
1776
						eqRel.setTarget(goal);
1777
						eqRel.setTargetParameterLabel(label);
1778
					}
1779
					break;
1780
						
1781
					case NOT_EQUAL_PARAMETER : {
1782
						
1783
						// get equal relation
1784
						NotEqualParameterRelation neqRel = (NotEqualParameterRelation) rel;
1785
						// get relation reference parameter label
1786
						String tarParamLabel = neqRel.getTargetParameterLabel();
1787
						// get label index
1788
						int pIndex = neqRel.getTarget().getParameterIndexByLabel(tarParamLabel);
1789
						// get goal decision parameter label
1790
						String label = goal.getParameterLabelByIndex(pIndex);
1791
						
1792
						// update relation
1793
						neqRel.setTarget(goal);
1794
						neqRel.setTargetParameterLabel(label);
1795
					}
1796
					break;
1797
					
1798
					default:
1799
						// unknown parameter relation
1800
						throw new RuntimeException("Unknown Parameter relation type : " + rel.getType() + "\n"); 
1801
						
1802
				}
1803
			}
1804
			
1805
			// check temporal relation
1806
			if (rel.getCategory().equals(ConstraintCategory.TEMPORAL_CONSTRAINT)) {
1807
				
1808
				// update relation
1809
				rel.setTarget(goal);
1810
			}
1811
		}
1812
	}

src/main/java/it/cnr/istc/pst/platinum/ai/framework/microkernel/resolver/plan/PlanRefinementResolver.java 1 location

@@ 1502-1598 (lines=97) @@
1499
	 * 
1500
	 * @param unification
1501
	 */
1502
	private void doRetractUnification(GoalUnification unification) {
1503
		
1504
		// original goal 
1505
		Decision goal = unification.getGoalDecision();
1506
		
1507
		// get goal component
1508
		DomainComponent goalComp = goal.getComponent();
1509
		// restore original planning goal SILENT -> PENDING
1510
		goalComp.restore(goal);
1511
1512
		// deactivate activated relations
1513
		for (Relation rel : unification.getActivatedRelations()) {
1514
			// get reference component
1515
			DomainComponent refComp = rel.getReference().getComponent();
1516
			refComp.deactivate(rel);
1517
		}
1518
		
1519
		// translated back relations
1520
		for (Relation rel : unification.getTranslatedReferenceGoalRelations()){
1521
			// check category
1522
			if (rel.getCategory().equals(ConstraintCategory.PARAMETER_CONSTRAINT)) {
1523
				
1524
				// get parameter relation
1525
				ParameterRelation pRel = (ParameterRelation) rel;
1526
				
1527
				// get relation reference parameter label
1528
				String refParamLabel = pRel.getReferenceParameterLabel();
1529
				// get label index
1530
				int pIndex = pRel.getReference().getParameterIndexByLabel(refParamLabel);
1531
				// get goal decision parameter label
1532
				String label = goal.getParameterLabelByIndex(pIndex);
1533
				
1534
				// update relation
1535
				pRel.setReference(goal);
1536
				pRel.setReferenceParameterLabel(label);
1537
			}
1538
			
1539
			if (rel.getCategory().equals(ConstraintCategory.TEMPORAL_CONSTRAINT)) {
1540
				// update relation
1541
				rel.setReference(goal);
1542
			}
1543
		}
1544
		
1545
		// translated back parameter relations
1546
		for (Relation rel : unification.getTranslatedTargetGoalRelations()) {
1547
			
1548
			// check relation category 
1549
			if (rel.getCategory().equals(ConstraintCategory.PARAMETER_CONSTRAINT)) {
1550
				// check relation
1551
				switch (rel.getType()) {
1552
				
1553
					case EQUAL_PARAMETER : {
1554
						
1555
						// get equal relation
1556
						EqualParameterRelation eqRel = (EqualParameterRelation) rel;
1557
						// get relation reference parameter label
1558
						String tarParamLabel = eqRel.getTargetParameterLabel();
1559
						// get label index
1560
						int pIndex = eqRel.getTarget().getParameterIndexByLabel(tarParamLabel);
1561
						// get goal decision parameter label
1562
						String label = goal.getParameterLabelByIndex(pIndex);
1563
						
1564
						// update relation
1565
						eqRel.setTarget(goal);
1566
						eqRel.setTargetParameterLabel(label);
1567
					}
1568
					break;
1569
						
1570
					case NOT_EQUAL_PARAMETER : {
1571
						
1572
						// get equal relation
1573
						NotEqualParameterRelation neqRel = (NotEqualParameterRelation) rel;
1574
						// get relation reference parameter label
1575
						String tarParamLabel = neqRel.getTargetParameterLabel();
1576
						// get label index
1577
						int pIndex = neqRel.getTarget().getParameterIndexByLabel(tarParamLabel);
1578
						// get goal decision parameter label
1579
						String label = goal.getParameterLabelByIndex(pIndex);
1580
						
1581
						// update relation
1582
						neqRel.setTarget(goal);
1583
						neqRel.setTargetParameterLabel(label);
1584
					}
1585
					break;
1586
					
1587
					default:
1588
						// unknown parameter relation
1589
						throw new RuntimeException("Unknown Parameter relation type : " + rel.getType() + "\n"); 
1590
						
1591
				}
1592
			}
1593
			
1594
			// check temporal relation
1595
			if (rel.getCategory().equals(ConstraintCategory.TEMPORAL_CONSTRAINT)) {
1596
				
1597
				// update relation
1598
				rel.setTarget(goal);
1599
			}
1600
		}
1601
	}