| /******************************************************************************** |
| * Copyright (c) 2015-2019 Contributors to the Eclipse Foundation |
| * |
| * See the NOTICE file(s) distributed with this work for additional |
| * information regarding copyright ownership. |
| * |
| * This program and the accompanying materials are made available under the |
| * terms of the Eclipse Public License v. 2.0 which is available at |
| * http://www.eclipse.org/legal/epl-2.0. |
| * |
| * SPDX-License-Identifier: EPL-2.0 |
| * |
| ********************************************************************************/ |
| |
| package org.eclipse.mdm.freetextindexer.entities; |
| |
| import java.util.ArrayList; |
| import java.util.Arrays; |
| import java.util.HashMap; |
| import java.util.HashSet; |
| import java.util.List; |
| import java.util.Map; |
| import java.util.Set; |
| |
| import org.eclipse.mdm.api.base.model.BaseEntity; |
| import org.eclipse.mdm.api.base.model.Value; |
| |
| /** |
| * MDMEntity (Entity for a business object (contains a list of |
| * {@link MDMAttribute}s) |
| * |
| * @author Sebastian Dirsch, Gigatronik Ingolstadt GmbH |
| * |
| */ |
| public class MDMEntity { |
| |
| private static final Set<String> NOTINDEXED = new HashSet<>( |
| Arrays.asList(BaseEntity.ATTR_ID, BaseEntity.ATTR_MIMETYPE, "Optional", "SortIndex")); |
| |
| /** name of the MDM business object */ |
| public final String name; |
| |
| /** type of the MDM business object */ |
| public final String type; |
| |
| /** id of the MDM business object */ |
| public final String id; |
| |
| /** list of attribute to transfer */ |
| public final Map<String, String> attributes; |
| |
| public final List<MDMEntity> components = new ArrayList<>(); |
| |
| /** |
| * Constructor |
| * |
| * @param name name of the MDM business object |
| * @param type type as String of the MDM business object (e.g. TestStep) |
| * @param uri URI of an MDM business object |
| * @param values values of a MDM business object |
| */ |
| public MDMEntity(String name, String type, String id, Map<String, Value> values) { |
| this.name = name; |
| this.type = type; |
| this.id = id; |
| |
| this.attributes = initAttributes(values); |
| } |
| |
| /** |
| * converts the MDM business object values to string values |
| * |
| * @param values values of a MDM business object |
| * @return list with converted attribute values |
| */ |
| private Map<String, String> initAttributes(Map<String, Value> values) { |
| Map<String, String> mapAttrs = new HashMap<>(); |
| for (java.util.Map.Entry<String, Value> entry : values.entrySet()) { |
| |
| String key = entry.getKey(); |
| if (!NOTINDEXED.contains(key) && entry.getValue().isValid()) { |
| mapAttrs.put(key, entry.getValue().extract().toString()); |
| } |
| } |
| |
| return mapAttrs; |
| } |
| |
| } |