package org.overture.codegen.assistant; import java.util.LinkedList; import java.util.List; import org.overture.ast.util.ClonableString; import org.overture.codegen.ir.PIR; public class NodeAssistantIR extends AssistantBase { public NodeAssistantIR(AssistantManager assistantManager) { super(assistantManager); } public void addMetaData(PIR node, List<ClonableString> extraMetaData, boolean prepend) { List<ClonableString> allMetaData = buildData(node.getMetaData(), extraMetaData, prepend); node.setMetaData(allMetaData); } public List<ClonableString> buildData( List<? extends ClonableString> currentMetaData, List<ClonableString> extraMetaData, boolean prepend) { if (extraMetaData == null || extraMetaData.isEmpty()) { return new LinkedList<>(); } List<ClonableString> allMetaData = new LinkedList<ClonableString>(); if (prepend) { allMetaData.addAll(extraMetaData); allMetaData.addAll(currentMetaData); } else { allMetaData.addAll(currentMetaData); allMetaData.addAll(extraMetaData); } return allMetaData; } }