All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.jangaroo.exml.api.Exmlc Maven / Gradle / Ivy

package net.jangaroo.exml.api;

import net.jangaroo.exml.config.ExmlConfiguration;

import java.io.File;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

/**
 * Interface for EXML compiler, used by universal Jangaroo IDEA Plugin.
 */
public interface Exmlc {

  String EXML_NAMESPACE_URI = "http://www.jangaroo.net/exml/0.8";
  @SuppressWarnings({"UnusedDeclaration"}) // used by IDEA plugin!
  String EXML_SCHEMA_LOCATION = "/net/jangaroo/exml/schemas/exml.xsd";
  String EXML_CONFIG_URI_PREFIX = "exml:";
  @SuppressWarnings({"UnusedDeclaration"}) // used by IDEA plugin!
  String EXML_UNTYPED_NAMESPACE_URI = EXML_CONFIG_URI_PREFIX + "untyped";
  @SuppressWarnings({"UnusedDeclaration"}) // used by IDEA plugin!
  String EXML_UNTYPED_SCHEMA_LOCATION = "/net/jangaroo/exml/schemas/untyped.xsd";
  String EXML_COMPONENT_NODE_NAME = "component";
  String EXML_PLUGIN_NODE_NAME = "plugin";
  String EXML_LAYOUT_NODE_NAME = "layout";
  String EXML_GRID_COLUMN_NODE_NAME = "gridColumn";
  String EXML_CLASS_NODE_NAME = "class";
  Set EXML_ROOT_NODE_NAMES = new HashSet(Arrays.asList(
    EXML_COMPONENT_NODE_NAME,
    EXML_PLUGIN_NODE_NAME,
    EXML_LAYOUT_NODE_NAME,
    EXML_GRID_COLUMN_NODE_NAME,
    EXML_CLASS_NODE_NAME
  ));

  String EXML_CONSTANT_NODE_NAME = "constant";
  /**
   * Use {@link #EXML_DECLARATION_NAME_ATTRIBUTE} instead.
   */
  @Deprecated
  @SuppressWarnings({"UnusedDeclaration"}) // needed by IDEA plugin for old compiler versions!
  String EXML_CONSTANT_NAME_ATTRIBUTE = "name";
  /**
   * Use {@link #EXML_DECLARATION_TYPE_ATTRIBUTE} instead.
   */
  @Deprecated
  @SuppressWarnings({"UnusedDeclaration"}) // needed by IDEA plugin for old compiler versions!
  String EXML_CONSTANT_TYPE_ATTRIBUTE = "type";
  /**
   * Use {@link #EXML_DECLARATION_VALUE_ATTRIBUTE} instead.
   */
  @Deprecated
  @SuppressWarnings({"UnusedDeclaration"}) // needed by IDEA plugin for old compiler versions!
  String EXML_CONSTANT_VALUE_ATTRIBUTE = "value";
  String EXML_VAR_NODE_NAME = "var";
  /**
   * The name of a constant or var.
   */
  String EXML_DECLARATION_NAME_ATTRIBUTE = "name";
  /**
   * The type of a constant or var.
   */
  String EXML_DECLARATION_TYPE_ATTRIBUTE = "type";
  /**
   * The value of a constant or var.
   */
  String EXML_DECLARATION_VALUE_ATTRIBUTE = "value";
  String EXML_DECLARATION_VALUE_NODE_NAME = "value";
  String EXML_BASE_CLASS_ATTRIBUTE = "baseClass";
  String EXML_PUBLIC_API_ATTRIBUTE = "publicApi";
  String EXML_OBJECT_NODE_NAME = "object";
  String EXML_IMPORT_NODE_NAME = "import";
  String EXML_ANNOTATION_NODE_NAME = "annotation";
  String EXML_ANNOTATION_AT_ATTRIBUTE = "at";
  String EXML_IMPORT_CLASS_ATTRIBUTE = "class";
  String EXML_DESCRIPTION_NODE_NAME = "description";
  String EXML_CFG_NODE_NAME = "cfg";
  String EXML_CFG_NAME_ATTRIBUTE = "name";
  String EXML_CFG_TYPE_ATTRIBUTE = "type";
  String EXML_CFG_DEFAULT_ATTRIBUTE = "default";
  String EXML_CFG_DEFAULT_NODE_NAME = "default";
  String EXML_MODE_ATTRIBUTE = "mode";

  String EXML_SUFFIX = ".exml";
  String OUTPUT_CHARSET = "UTF-8";

  void setConfig(ExmlConfiguration config);

  ExmlConfiguration getConfig();

  void generateAllConfigClasses();

  File generateConfigClass(File source);

  File generateComponentClass(File exmlSourceFile);

  void generateAllComponentClasses();

  File generateXsd();
}




© 2015 - 2026 Weber Informatics LLC | Privacy Policy