code: /****************************************************************************
  
      ePMC - an extensible probabilistic model checker
      Copyright (C) 2017
  
      This program is free software: you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published by
      the Free Software Foundation, either version 3 of the License, or
      (at your option) any later version.
  
      This program is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      GNU General Public License for more details.
  
      You should have received a copy of the GNU General Public License
      along with this program.  If not, see <http://www.gnu.org/licenses/>.
  
   *****************************************************************************/
  
  package epmc.jani.extensions.derivedoperators;
  
  import java.util.Map;
  
  import epmc.jani.model.ModelExtension;
  import epmc.jani.model.OptionsJANIModel;
  import epmc.options.Options;
  import epmc.plugin.AfterOptionsCreation;
  import epmc.util.OrderedMap;
  
  public class AfterOptionsCreationJANIDerivedOperators implements AfterOptionsCreation {
      private final static String IDENTIFIER = "jani-derived-operators";
  
      @Override
      public String getIdentifier() {
          return IDENTIFIER;
      }
  
      @Override
      public void process(Options options) {
          Map<String,Class<? extends ModelExtension>> modelExtensions =
                  options.get(OptionsJANIModel.JANI_MODEL_EXTENSION_CLASS);
          if (modelExtensions == null) {
              modelExtensions = new OrderedMap<>();
              options.set(OptionsJANIModel.JANI_MODEL_EXTENSION_CLASS, modelExtensions);
          }
          modelExtensions.put(ModelExtensionDerivedOperators.IDENTIFIER,
                  ModelExtensionDerivedOperators.class);
      }
  }
  