@@ 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 | } |
@@ 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 | } |