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<String> EXML_ROOT_NODE_NAMES = new HashSet<String>(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(); }