package org.openlca.app.navigation; import java.util.HashMap; import java.util.Map; import org.openlca.core.model.ModelType; public class ModelTypeComparison { private static Map<ModelType, Integer> typeOrder = new HashMap<>(); static { fillTypeOrder(); } private static void fillTypeOrder() { ModelType[] order = getOrderedTypes(); for (int i = 0; i < order.length; i++) typeOrder.put(order[i], i); } public static int compare(ModelType type1, ModelType type2) { if (type1 == null || type2 == null) return 0; Integer order1 = typeOrder.get(type1); Integer order2 = typeOrder.get(type2); if (order1 == null || order2 == null) return 0; return order1 - order2; } public static ModelType[] getOrderedTypes() { return new ModelType[] { ModelType.PROJECT, ModelType.PRODUCT_SYSTEM, ModelType.IMPACT_METHOD, ModelType.PROCESS, ModelType.FLOW, ModelType.SOCIAL_INDICATOR, ModelType.PARAMETER, ModelType.FLOW_PROPERTY, ModelType.UNIT_GROUP, ModelType.CURRENCY, ModelType.ACTOR, ModelType.SOURCE, ModelType.LOCATION, ModelType.DQ_SYSTEM }; } }