code: private void addTypeInternal(AbstractTypeDefinition type) {
  
          if (type == null) {
              return;
          }
  
          if (m_types.containsKey(type.getId())) {
              // can't overwrite a type
              return;
          }
  
          TypeDefinitionContainerImpl tc = new TypeDefinitionContainerImpl();
          tc.setTypeDefinition(type);
  
          // add to parent
          if (type.getParentTypeId() != null) {
              TypeDefinitionContainerImpl tdc = m_types.get(type.getParentTypeId());
              if (tdc != null) {
                  if (tdc.getChildren() == null) {
                      tdc.setChildren(new ArrayList<TypeDefinitionContainer>());
                  }
                  tdc.getChildren().add(tc);
              }
          }
  
          m_types.put(type.getId(), tc);
          m_typeList.add(tc);
      }
docs: Internal method which adds a new type, without adding any property definitions automatically.<p>
  
  @param type the type to add