| /** |
| ******************************************************************************** |
| * Copyright (c) 2020 Eclipse APP4MC contributors. |
| * |
| * This program and the accompanying materials are made |
| * available under the terms of the Eclipse Public License 2.0 |
| * which is available at https://www.eclipse.org/legal/epl-2.0/ |
| * |
| * SPDX-License-Identifier: EPL-2.0 |
| * |
| ******************************************************************************** |
| */ |
| |
| package org.eclipse.app4mc.amalthea._import.btf.model; |
| |
| import java.util.Arrays; |
| import java.util.List; |
| import java.util.Map; |
| import java.util.stream.Collectors; |
| import java.util.stream.Stream; |
| |
| import org.eclipse.app4mc.amalthea.model.ProcessEventType; |
| import org.eclipse.app4mc.amalthea.model.RunnableEventType; |
| import org.eclipse.emf.common.util.Enumerator; |
| |
| public enum BTFEntityType { |
| |
| processsss(ProcessEventType.class, "T", "I"), |
| runnabless(RunnableEventType.class, "R"); |
| |
| private static final Map<String, BTFEntityType> name2Literal = Stream.of(values()).collect(Collectors.toMap(et -> et.entityTypeName, et -> et)); |
| |
| private final List<String> traceAliases; |
| private final String entityTypeName; |
| |
| private BTFEntityType(Class<? extends Enumerator> eventTypeEnum, final String... traceAlias) { |
| this.traceAliases = Arrays.asList(traceAlias); |
| String entityTypeName = eventTypeEnum.getSimpleName(); |
| entityTypeName = entityTypeName.substring(0, entityTypeName.indexOf("EventType")).toLowerCase(); |
| this.entityTypeName = entityTypeName; |
| |
| } |
| |
| public String getName() { |
| return this.entityTypeName; |
| } |
| |
| public String getUCName() { |
| final String lcName = this.getName(); |
| final String ucName = lcName.substring(0, 1).toUpperCase() + lcName.substring(1); |
| return ucName; |
| } |
| |
| public boolean isTraceAlias(final String traceAlias) { |
| return this.traceAliases.stream().anyMatch(traceAlias::equals); |
| } |
| |
| public String getTraceAliases() { |
| return this.traceAliases.stream().map(ta -> "'" + ta + "'").collect(Collectors.joining(", ")); |
| } |
| |
| public static BTFEntityType getForName(String name) { |
| return name2Literal.get(name); |
| } |
| |
| } |