diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/HoursGroup.java b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/HoursGroup.java
index f1d4a317d..9e41b3a4f 100644
--- a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/HoursGroup.java
+++ b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/HoursGroup.java
@@ -17,17 +17,22 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-
package org.navalplanner.business.orders.entities;
import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashSet;
+import java.util.List;
import java.util.Set;
import org.hibernate.validator.NotNull;
import org.navalplanner.business.common.BaseEntity;
+import org.navalplanner.business.requirements.entities.CriterionRequirement;
+import org.navalplanner.business.requirements.entities.DirectCriterionRequirement;
+import org.navalplanner.business.requirements.entities.IndirectCriterionRequirement;
import org.navalplanner.business.resources.entities.Criterion;
-import org.navalplanner.business.resources.entities.ICriterionType;
+
public class HoursGroup extends BaseEntity implements Cloneable {
@@ -44,7 +49,7 @@ public class HoursGroup extends BaseEntity implements Cloneable {
private Boolean fixedPercentage = false;
- private Set criterions = new HashSet();
+ private Set criterionRequirements = new HashSet();
@NotNull
private OrderLine parentOrderLine;
@@ -105,62 +110,87 @@ public class HoursGroup extends BaseEntity implements Cloneable {
return this.fixedPercentage;
}
- public void setCriterions(Set criterions) {
- this.criterions = criterions;
+ public void setCriterionRequirements(Set criterionRequirements) {
+ this.criterionRequirements = criterionRequirements;
+ }
+
+ public Set getCriterionRequirements() {
+ return criterionRequirements;
}
public Set getCriterions() {
- return criterions;
- }
-
- public void addCriterion(Criterion criterion) {
- Criterion oldCriterion = getCriterionByType(criterion.getType());
- if (oldCriterion != null) {
- removeCriterion(oldCriterion);
+ Set criterions = new HashSet();
+ for(CriterionRequirement criterionRequirement: criterionRequirements){
+ criterions.add(criterionRequirement.getCriterion());
}
-
- criterions.add(criterion);
+ return Collections.unmodifiableSet(criterions);
}
- public void removeCriterion(Criterion criterion) {
- criterions.remove(criterion);
+ public void addCriterionRequirement(CriterionRequirement requirement) {
+ if (canAddCriterionRequirement(requirement)) {
+ requirement.setHoursGroup(this);
+ criterionRequirements.add(requirement);
+ } else {
+ throw new IllegalStateException(
+ " The "
+ + requirement.getCriterion().getName()
+ + " can not be assigned to this hoursGroup because it already exist in other hoursGroup");
+ }
}
- public Criterion getCriterionByType(ICriterionType> type) {
- for (Criterion criterion : criterions) {
- if (criterion.getType().equals(type)) {
- return criterion;
+ private boolean canAddCriterionRequirement(
+ CriterionRequirement newRequirement) {
+ for (CriterionRequirement requirement : criterionRequirements) {
+ if (requirement.getCriterion()
+ .equals(newRequirement.getCriterion())) {
+ return false;
}
}
+ return true;
+ }
+ /* TO REMOVE */
+ public void removeDirectCriterionRequirement(Criterion criterion){
+ CriterionRequirement oldCriterionRequirement =
+ getDirectCriterionRequirementByCriterion(criterion);
+ if (oldCriterionRequirement != null) {
+ removeCriterionRequirement(oldCriterionRequirement);
+ }
+ }
+
+ public void removeCriterionRequirement(CriterionRequirement criterionRequirement) {
+ criterionRequirements.remove(criterionRequirement);
+ }
+
+ /* TO REMOVE */
+ public CriterionRequirement getDirectCriterionRequirementByCriterion(
+ Criterion criterion) {
+ for (CriterionRequirement requirement : getDirectCriterionRequirement()) {
+ Criterion oldCriterion = requirement.getCriterion();
+ if ((oldCriterion != null)
+ && (criterion.getId().equals(oldCriterion.getId()))) {
+ return requirement;
+ }
+ }
return null;
}
- public Criterion getCriterionByType(String type) {
- // TODO: Check if hoursgroup has criterions
- for (Criterion criterion : criterions) {
- if (criterion.getType().getName().equals(type)) {
- return criterion;
- }
- }
+ /* TO REMOVE */
+ public void addDirectRequirementCriterion(Criterion criterion) {
+ CriterionRequirement newCriterionRequirement =
+ DirectCriterionRequirement.create(criterion);
+ addCriterionRequirement(newCriterionRequirement);
+ }
+ /* TO REMOVE */
+ public Criterion getDirectCriterion(Criterion criterion) {
+ CriterionRequirement requirement = getDirectCriterionRequirementByCriterion(criterion);
+ if (requirement != null) {
+ return requirement.getCriterion();
+ }
return null;
}
- public void removeCriterionByType(ICriterionType> type) {
- Criterion criterion = getCriterionByType(type);
- if (criterion != null) {
- removeCriterion(criterion);
- }
- }
-
- public void removeCriterionByType(String type) {
- Criterion criterion = getCriterionByType(type);
- if (criterion != null) {
- removeCriterion(criterion);
- }
- }
-
public void setParentOrderLine(OrderLine parentOrderLine) {
this.parentOrderLine = parentOrderLine;
}
@@ -169,4 +199,59 @@ public class HoursGroup extends BaseEntity implements Cloneable {
return parentOrderLine;
}
+ public void updateCriterionRequirements(){
+ OrderLine newParent = getParentOrderLine();
+ Set currentIndirects =
+ getCurrentRequirement();
+ criterionRequirements.removeAll(getIndirectCriterionRequirement());
+ criterionRequirements.addAll(currentIndirects);
+ }
+
+ private Set getCurrentRequirement(){
+ Set currentRequirements =
+ new HashSet();
+ for(IndirectCriterionRequirement requirement :getIndirectRequirementParent()){
+ IndirectCriterionRequirement newRequirement = findRequirementByParent(requirement
+ .getParent());
+ if(newRequirement == null){
+ newRequirement = IndirectCriterionRequirement.
+ create(requirement.getParent(),true);
+ }
+ currentRequirements.add(requirement);
+ }
+ return currentRequirements;
+ }
+
+ private List getIndirectRequirementParent() {
+ return getParentOrderLine().getIndirectCriterionRequirement();
+ }
+
+ private IndirectCriterionRequirement findRequirementByParent(
+ CriterionRequirement newParent) {
+ for (IndirectCriterionRequirement requirement : getIndirectCriterionRequirement()) {
+ if (requirement.getParent().equals(newParent))
+ return (IndirectCriterionRequirement) requirement;
+ }
+ return null;
+ }
+
+ private List getIndirectCriterionRequirement() {
+ List list = new ArrayList();
+ for(CriterionRequirement criterionRequirement : criterionRequirements ){
+ if(criterionRequirement instanceof IndirectCriterionRequirement){
+ list.add((IndirectCriterionRequirement) criterionRequirement);
+ }
+ }
+ return list;
+ }
+
+ private List getDirectCriterionRequirement() {
+ List list = new ArrayList();
+ for(CriterionRequirement criterionRequirement : criterionRequirements ){
+ if(criterionRequirement instanceof DirectCriterionRequirement){
+ list.add((DirectCriterionRequirement) criterionRequirement);
+ }
+ }
+ return list;
+ }
}
diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderElement.java b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderElement.java
index d9ed8a08e..cf0a4584e 100644
--- a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderElement.java
+++ b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderElement.java
@@ -40,6 +40,9 @@ import org.navalplanner.business.advance.exceptions.DuplicateValueTrueReportGlob
import org.navalplanner.business.common.BaseEntity;
import org.navalplanner.business.labels.entities.Label;
import org.navalplanner.business.planner.entities.TaskElement;
+import org.navalplanner.business.requirements.entities.CriterionRequirement;
+import org.navalplanner.business.requirements.entities.DirectCriterionRequirement;
+import org.navalplanner.business.requirements.entities.IndirectCriterionRequirement;
public abstract class OrderElement extends BaseEntity {
@@ -65,6 +68,8 @@ public abstract class OrderElement extends BaseEntity {
private Set taskElements = new HashSet();
+ private Set criterionRequirements = new HashSet();
+
protected OrderLineGroup parent;
public OrderLineGroup getParent() {
@@ -328,4 +333,85 @@ public abstract class OrderElement extends BaseEntity {
return result;
}
+ private void setCriterionRequirements(Set criterionRequirements) {
+ this.criterionRequirements = criterionRequirements;
+ }
+
+ public Set getCriterionRequirements() {
+ return Collections.unmodifiableSet(criterionRequirements);
+ }
+
+ public void updateCriterionRequirements(){
+ updateCriterionRequirement();
+ for(OrderElement orderElement : getChildren()){
+ orderElement.updateCriterionRequirements();
+ }
+ }
+
+ protected void updateCriterionRequirement() {
+ OrderElement newParent = this.getParent();
+ Set currentIndirects =
+ getCurrentIndirectRequirements(newParent);
+ criterionRequirements.removeAll(getIndirectCriterionRequirement());
+ criterionRequirements.addAll(currentIndirects);
+ }
+
+ protected Set getCurrentIndirectRequirements(
+ OrderElement newParent){
+ Set currentIndirects =
+ new HashSet();
+ if(newParent != null){
+ for(CriterionRequirement requirement :newParent.getCriterionRequirements()){
+ IndirectCriterionRequirement indirect = getCurrentIndirectRequirement(requirement);
+ currentIndirects.add(indirect);
+ }
+ }
+ return currentIndirects;
+ }
+
+ protected IndirectCriterionRequirement getCurrentIndirectRequirement(
+ CriterionRequirement requirement){
+ IndirectCriterionRequirement indirect;
+ DirectCriterionRequirement parent;
+ if(requirement instanceof DirectCriterionRequirement){
+ parent = (DirectCriterionRequirement)requirement;
+ indirect = findIndirectRequirementByParent(parent);
+ }else{
+ parent = ((IndirectCriterionRequirement)requirement).getParent();
+ indirect = findIndirectRequirementByParent(parent);
+ }
+ if(indirect == null){
+ indirect = IndirectCriterionRequirement.create(parent,true);
+ }
+ return (IndirectCriterionRequirement)indirect;
+ }
+
+ private IndirectCriterionRequirement findIndirectRequirementByParent(
+ DirectCriterionRequirement newParent) {
+ for (IndirectCriterionRequirement requirement : getIndirectCriterionRequirement()) {
+ if (requirement.getParent().equals(newParent))
+ return requirement;
+ }
+ return null;
+ }
+
+ public void removeCriterionRequirement(CriterionRequirement criterionRequirement){
+ //Remove the criterionRequirement into orderelement.
+ criterionRequirements.remove(criterionRequirement);
+ }
+
+ public void addCriterionRequirement(CriterionRequirement criterionRequirement){
+ criterionRequirement.setOrderElement(this);
+ this.criterionRequirements.add(criterionRequirement);
+ }
+
+ protected List getIndirectCriterionRequirement() {
+ List list = new ArrayList();
+ for (CriterionRequirement criterionRequirement : criterionRequirements) {
+ if (criterionRequirement instanceof IndirectCriterionRequirement) {
+ list.add((IndirectCriterionRequirement) criterionRequirement);
+ }
+ }
+ return list;
+ }
}
diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderLine.java b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderLine.java
index e508f1c93..412197366 100644
--- a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderLine.java
+++ b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderLine.java
@@ -413,8 +413,13 @@ public class OrderLine extends OrderElement {
return result;
}
}
-
return result;
}
+ public void updateCriterionRequirements() {
+ updateCriterionRequirements();
+ for (HoursGroup hoursGroup : this.getHoursGroups()) {
+ hoursGroup.updateCriterionRequirements();
+ }
+ }
}
diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/requirements/entities/CriterionRequirement.java b/navalplanner-business/src/main/java/org/navalplanner/business/requirements/entities/CriterionRequirement.java
new file mode 100644
index 000000000..7550e335e
--- /dev/null
+++ b/navalplanner-business/src/main/java/org/navalplanner/business/requirements/entities/CriterionRequirement.java
@@ -0,0 +1,80 @@
+/*
+ * This file is part of ###PROJECT_NAME###
+ *
+ * Copyright (C) 2009 Fundación para o Fomento da Calidade Industrial e
+ * Desenvolvemento Tecnolóxico de Galicia
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
+
+package org.navalplanner.business.requirements.entities;
+
+import org.hibernate.validator.NotNull;
+import org.navalplanner.business.common.BaseEntity;
+import org.navalplanner.business.orders.entities.HoursGroup;
+import org.navalplanner.business.orders.entities.OrderElement;
+import org.navalplanner.business.resources.entities.Criterion;
+
+/**
+ *
+ * @author Susana Montes Pedreira
+ */
+public class CriterionRequirement extends BaseEntity{
+
+ private HoursGroup hoursGroup;
+
+ private OrderElement orderElement;
+
+ @NotNull
+ private Criterion criterion;
+
+ public CriterionRequirement(){
+
+ }
+
+ public CriterionRequirement(Criterion criterion){
+ this.criterion = criterion;
+ }
+
+ public CriterionRequirement(Criterion criterion,
+ OrderElement orderElement,HoursGroup hoursGroup){
+ this.criterion = criterion;
+ this.orderElement = orderElement;
+ this.hoursGroup = hoursGroup;
+ }
+
+ public Criterion getCriterion() {
+ return criterion;
+ }
+
+ public void setCriterion(Criterion criterion) {
+ this.criterion = criterion;
+ }
+
+ public HoursGroup getHoursGroup() {
+ return hoursGroup;
+ }
+
+ public void setHoursGroup(HoursGroup hoursGroup) {
+ this.hoursGroup = hoursGroup;
+ }
+
+ public OrderElement getOrderElement() {
+ return orderElement;
+ }
+
+ public void setOrderElement(OrderElement orderElement) {
+ this.orderElement = orderElement;
+ }
+}
diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/requirements/entities/DirectCriterionRequirement.java b/navalplanner-business/src/main/java/org/navalplanner/business/requirements/entities/DirectCriterionRequirement.java
new file mode 100644
index 000000000..260636f04
--- /dev/null
+++ b/navalplanner-business/src/main/java/org/navalplanner/business/requirements/entities/DirectCriterionRequirement.java
@@ -0,0 +1,81 @@
+/*
+ * This file is part of ###PROJECT_NAME###
+ *
+ * Copyright (C) 2009 Fundación para o Fomento da Calidade Industrial e
+ * Desenvolvemento Tecnolóxico de Galicia
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
+
+package org.navalplanner.business.requirements.entities;
+
+import java.util.HashSet;
+import java.util.Set;
+import org.navalplanner.business.orders.entities.HoursGroup;
+import org.navalplanner.business.orders.entities.OrderElement;
+import org.navalplanner.business.resources.entities.Criterion;
+
+/**
+ *
+ * @author Susana Montes Pedreira
+ */
+public class DirectCriterionRequirement extends CriterionRequirement{
+
+
+ Set children =
+ new HashSet();
+
+ public static DirectCriterionRequirement create(){
+ DirectCriterionRequirement result = new DirectCriterionRequirement();
+ result.setNewObject(true);
+ return result;
+ }
+
+ public static DirectCriterionRequirement create(Criterion criterion){
+ DirectCriterionRequirement result = new DirectCriterionRequirement(criterion);
+ result.setNewObject(true);
+ return result;
+ }
+
+ public static DirectCriterionRequirement create(Criterion criterion,
+ OrderElement orderElement,HoursGroup hoursGroup){
+ DirectCriterionRequirement result = new DirectCriterionRequirement(criterion,
+ orderElement,hoursGroup);
+ result.setNewObject(true);
+ return result;
+ }
+
+
+ public DirectCriterionRequirement(){
+ }
+
+ public DirectCriterionRequirement(Criterion criterion,
+ OrderElement orderElement,HoursGroup hoursGroup){
+ super(criterion,orderElement,hoursGroup);
+ }
+
+ public DirectCriterionRequirement(Criterion criterion){
+ super(criterion);
+ }
+
+ public Set getChildren() {
+ return children;
+ }
+
+ public void setChildren(Set
+ children) {
+ this.children = children;
+ }
+
+}
diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/requirements/entities/IndirectCriterionRequirement.java b/navalplanner-business/src/main/java/org/navalplanner/business/requirements/entities/IndirectCriterionRequirement.java
new file mode 100644
index 000000000..2962cf267
--- /dev/null
+++ b/navalplanner-business/src/main/java/org/navalplanner/business/requirements/entities/IndirectCriterionRequirement.java
@@ -0,0 +1,101 @@
+/*
+ * This file is part of ###PROJECT_NAME###
+ *
+ * Copyright (C) 2009 Fundación para o Fomento da Calidade Industrial e
+ * Desenvolvemento Tecnolóxico de Galicia
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
+
+package org.navalplanner.business.requirements.entities;
+import org.hibernate.validator.NotNull;
+import org.navalplanner.business.resources.entities.Criterion;
+import org.navalplanner.business.orders.entities.HoursGroup;
+import org.navalplanner.business.orders.entities.OrderElement;
+
+
+/**
+ *
+ * @author Susana Montes Pedreira
+ */
+public class IndirectCriterionRequirement extends CriterionRequirement{
+
+ @NotNull
+ private DirectCriterionRequirement parent;
+
+ private Boolean isValid = true;
+
+ public static IndirectCriterionRequirement create() {
+ IndirectCriterionRequirement result = new IndirectCriterionRequirement();
+ result.setNewObject(true);
+ return result;
+ }
+
+ public static IndirectCriterionRequirement create(DirectCriterionRequirement
+ parent,Criterion criterion) {
+ IndirectCriterionRequirement result = new IndirectCriterionRequirement(criterion);
+ result.setParent(parent);
+ return result;
+ }
+
+ public static IndirectCriterionRequirement create(DirectCriterionRequirement
+ parent, Criterion criterion,OrderElement orderElement,HoursGroup hoursGroup){
+ IndirectCriterionRequirement result = new IndirectCriterionRequirement(parent,criterion,
+ orderElement,hoursGroup);
+ result.setNewObject(true);
+ return result;
+ }
+
+ public static IndirectCriterionRequirement create(DirectCriterionRequirement
+ parent,Boolean isValid) {
+ IndirectCriterionRequirement result = create();
+ result.setParent(parent);
+ result.setIsValid(isValid);
+ return result;
+ }
+
+ /**
+ * Constructor for hibernate. Do not use!
+ */
+ public IndirectCriterionRequirement() {
+
+ }
+
+ public IndirectCriterionRequirement(Criterion criterion) {
+ super(criterion);
+ }
+
+ public IndirectCriterionRequirement(DirectCriterionRequirement parent,Criterion criterion,
+ OrderElement orderElement,HoursGroup hoursGroup){
+ super(criterion,orderElement,hoursGroup);
+ }
+
+ public DirectCriterionRequirement getParent() {
+ return parent;
+ }
+
+ public void setParent(DirectCriterionRequirement
+ directCriterionRequirement) {
+ this.parent = directCriterionRequirement;
+ }
+
+ public boolean isIsValid() {
+ return isValid;
+ }
+
+ public void setIsValid(boolean isValid) {
+ this.isValid = isValid;
+ }
+
+}
diff --git a/navalplanner-business/src/main/resources/navalplanner-business-spring-config.xml b/navalplanner-business/src/main/resources/navalplanner-business-spring-config.xml
index d2ffe38ad..0d6c68170 100644
--- a/navalplanner-business/src/main/resources/navalplanner-business-spring-config.xml
+++ b/navalplanner-business/src/main/resources/navalplanner-business-spring-config.xml
@@ -46,6 +46,9 @@
org/navalplanner/business/labels/entities/Labels.hbm.xml
+
+ org/navalplanner/business/requirements/entities/Requirements.hbm.xml
+
diff --git a/navalplanner-business/src/main/resources/org/navalplanner/business/orders/entities/Orders.hbm.xml b/navalplanner-business/src/main/resources/org/navalplanner/business/orders/entities/Orders.hbm.xml
index 775432a91..a5da0eb23 100644
--- a/navalplanner-business/src/main/resources/org/navalplanner/business/orders/entities/Orders.hbm.xml
+++ b/navalplanner-business/src/main/resources/org/navalplanner/business/orders/entities/Orders.hbm.xml
@@ -30,6 +30,11 @@
+
+
+
+
+
@@ -76,11 +81,9 @@
-
-
-
+
+
+
+
+
+
+
+
+ 100
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/navalplanner-business/src/test/resources/navalplanner-business-spring-config-test.xml b/navalplanner-business/src/test/resources/navalplanner-business-spring-config-test.xml
index 7a66d81d3..1fab6daf6 100644
--- a/navalplanner-business/src/test/resources/navalplanner-business-spring-config-test.xml
+++ b/navalplanner-business/src/test/resources/navalplanner-business-spring-config-test.xml
@@ -53,6 +53,9 @@
org/navalplanner/business/labels/entities/Labels.hbm.xml
+
+
+ org/navalplanner/business/requirements/entities/Requirements.hbm.xml
TestEntities.hbm.xml
diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/IOrderModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/IOrderModel.java
index d68ce8863..0325679c0 100644
--- a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/IOrderModel.java
+++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/IOrderModel.java
@@ -21,13 +21,15 @@
package org.navalplanner.web.orders;
import java.util.List;
-
+import java.util.Map;
import org.navalplanner.business.common.exceptions.ValidationException;
import org.navalplanner.business.labels.entities.Label;
import org.navalplanner.business.orders.entities.IOrderLineGroup;
import org.navalplanner.business.orders.entities.Order;
import org.navalplanner.business.orders.entities.OrderElement;
import org.navalplanner.business.planner.entities.TaskElement;
+import org.navalplanner.business.resources.entities.Criterion;
+import org.navalplanner.business.resources.entities.CriterionType;
/**
* Contract for {@link OrderModel}
@@ -53,6 +55,10 @@ public interface IOrderModel {
*
* @return
*/
+ List getCriterionsFor(CriterionType criterionType);
+
+ Map> getMapCriterions();
+
List