@Override
  public ImportStatement doParse(
      Element element, Statement[] parentPath, BeneratorParseContext context) {
    // check syntax
    assertAtLeastOneAttributeIsSet(element, ATT_DEFAULTS, ATT_DOMAINS, ATT_PLATFORMS, ATT_CLASS);

    // prepare parsing
    ArrayBuilder<String> classImports = new ArrayBuilder<String>(String.class);
    ArrayBuilder<String> domainImports = new ArrayBuilder<String>(String.class);

    // defaults import
    boolean defaults = ("true".equals(element.getAttribute("defaults")));

    // check class import
    String attribute = element.getAttribute("class");
    if (!StringUtil.isEmpty(attribute)) classImports.add(attribute);

    // (multiple) domain import
    attribute = element.getAttribute("domains");
    if (!StringUtil.isEmpty(attribute))
      domainImports.addAll(StringUtil.trimAll(StringUtil.tokenize(attribute, ',')));

    // (multiple) platform import
    attribute = element.getAttribute("platforms");

    List<PlatformDescriptor> platformImports = null;
    if (!StringUtil.isEmpty(attribute))
      platformImports = importPlatforms(StringUtil.trimAll(attribute.split(",")), context);

    return new ImportStatement(
        defaults, classImports.toArray(), domainImports.toArray(), platformImports);
  }