code: /*--------------------------------------------------------------*
    Copyright (C) 2006-2015 OpenSim Ltd.
  
    This file is distributed WITHOUT ANY WARRANTY. See the file
    'License' for details on this and other legal matters.
  *--------------------------------------------------------------*/
  
  package org.omnetpp.ned.model.interfaces;
  
  import java.util.Map;
  import java.util.Set;
  
  import org.omnetpp.ned.model.ex.PropertyElementEx;
  import org.omnetpp.ned.model.pojo.FieldElement;
  
  /**
   * Wraps an MSG type, provides easy lookup for fields, properties.
   *
   * @author levy
   */
  public interface IMsgTypeInfo {
      public IMsgTypeElement getSuperType();
  
      /** Types used locally in this type */
      public Set<IMsgTypeElement> getLocalUsedTypes();
  
      /** Fields declared locally in this type */
      public Map<String, FieldElement> getLocalFields();
  
      /** Property nodes, including inherited ones; the most recent one for each property.
       * (Given the special inheritance rules for properties, this may not be what you want;
       * see getPropertyInheritanceChain().
       */
      public Map<String, Map<String, PropertyElementEx>> getProperties();
  
      /** Fields including inherited ones */
      public Map<String, FieldElement> getFields();
  
      /**
       * Returns the C++ namespace this type is in, or "" if the type is not in a namespace.
       */
      public String getNamespaceName();
  
      /**
       * Returns the fully qualified C++ class name.
       */
      public String getFullyQualifiedCppClassName();
  
  
  }
  