content: /*
   * Licensed to the Apache Software Foundation (ASF) under one or more
   * contributor license agreements.  See the NOTICE file distributed with
   * this work for additional information regarding copyright ownership.
   * The ASF licenses this file to You under the Apache License, Version 2.0
   * (the "License"); you may not use this file except in compliance with
   * the License.  You may obtain a copy of the License at
   *
   *     http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  package com.alibaba.compileflow.engine.bpmn.definition;
  
  import com.alibaba.compileflow.engine.core.definition.Element;
  
  import java.util.ArrayList;
  import java.util.List;
  
  /**
   * Represents the BPMN 2.0 'definitions' element, which is the root element of a BPMN file.
   * <p>
   * This element serves as a container for all other BPMN elements, such as processes,
   * messages, and collaborations, and defines global attributes like the target namespace.
   *
   * @author yusu
   */
  public class Definitions implements Element {
  
      private List<Import> imports;
      private List<Extension> extensions;
      private List<Process> processes = new ArrayList<>();
      private List<Message> messages = new ArrayList<>();
      private List<Relationship> relationships;
      private String id;
      private String name;
      private String targetNamespace;
      private String expressionLanguage;
      private String typeLanguage;
      private String exporter;
      private String exporterVersion;
  
      public List<Import> getImports() {
          return imports;
      }
  
      public void setImports(List<Import> imports) {
          this.imports = imports;
      }
  
      public List<Extension> getExtensions() {
          return extensions;
      }
  
      public void setExtensions(List<Extension> extensions) {
          this.extensions = extensions;
      }
  
      public List<Process> getProcesses() {
          return processes;
      }
  
      public void setProcesses(List<Process> processes) {
          this.processes = processes;
      }
  
      public List<Relationship> getRelationships() {
          return relationships;
      }
  
      public void setRelationships(List<Relationship> relationships) {
          this.relationships = relationships;
      }
  
      @Override
      public String getId() {
          return id;
      }
  
      public void setId(String id) {
          this.id = id;
      }
  
      public String getName() {
          return name;
      }
  
      public void setName(String name) {
          this.name = name;
      }
  
      public String getTargetNamespace() {
          return targetNamespace;
      }
  
      public void setTargetNamespace(String targetNamespace) {
          this.targetNamespace = targetNamespace;
      }
  
      public String getExpressionLanguage() {
          return expressionLanguage;
      }
  
      public void setExpressionLanguage(String expressionLanguage) {
          this.expressionLanguage = expressionLanguage;
      }
  
      public String getTypeLanguage() {
          return typeLanguage;
      }
  
      public void setTypeLanguage(String typeLanguage) {
          this.typeLanguage = typeLanguage;
      }
  
      public String getExporter() {
          return exporter;
      }
  
      public void setExporter(String exporter) {
          this.exporter = exporter;
      }
  
      public String getExporterVersion() {
          return exporterVersion;
      }
  
      public void setExporterVersion(String exporterVersion) {
          this.exporterVersion = exporterVersion;
      }
  
      public List<Message> getMessages() {
          return messages;
      }
  
      public void setMessages(List<Message> messages) {
          this.messages = messages;
      }
  
  }
  