/* * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ package org.apache.flex.compiler.mxml; import static org.apache.flex.abc.ABCConstants.CONSTANT_Namespace; import static org.apache.flex.abc.ABCConstants.CONSTANT_PackageNs; import org.apache.flex.abc.ABCConstants; import org.apache.flex.abc.semantics.Name; import org.apache.flex.abc.semantics.Namespace; import org.apache.flex.abc.semantics.Nsset; import org.apache.flex.compiler.constants.IASLanguageConstants; /** * Constants for AS3 types that have special significance to MXML and Flex */ public interface IMXMLTypeConstants { // Qualified names of runtime types. static final String AddChild = "mx.states.AddChild"; static final String AddItems = "mx.states.AddItems"; static final String BindingManager = "mx.binding.BindingManager"; static final String ChildManager = "mx.managers.systemClasses.ChildManager"; static final String ClassFactory = "mx.core.ClassFactory"; static final String Container = "mx.core.Container"; static final String CrossDomainRSLItem = "mx.core.CrossDomainRSLItem"; static final String CSSStyleDeclaration = "mx.styles.CSSStyleDeclaration"; static final String DeferredInstanceFromClass = "mx.core.DeferredInstanceFromClass"; static final String DeferredInstanceFromFunction = "mx.core.DeferredInstanceFromFunction"; static final String DesignLayer = "mx.core.DesignLayer"; static final String DownloadProgressBar = "mx.preloaders.DownloadProgressBar"; static final String EffectManager = "mx.effects.EffectManager"; static final String FlexGlobals = "mx.core.FlexGlobals"; static final String FlexModuleFactory = "mx.core.FlexModuleFactory"; static final String FlexVersion = "mx.core.FlexVersion"; static final String GroupBase = "spark.components.supportClasses.GroupBase"; static final String HTTPService = "mx.rpc.http.mxml.HTTPService"; static final String HaloApplication = "mx.core.Application"; static final String HaloRadioButtonGroup = "mx.controls.RadioButtonGroup"; static final String HaloWindowedApplication = "mx.core.WindowedApplication"; static final String IContainer = "mx.core.IContainer"; static final String IDeferredInstance = "mx.core.IDeferredInstance"; static final String IDeferredInstantiationUIComponent = "mx.core.IDeferredInstantiationUIComponent"; static final String IFactory = "mx.core.IFactory"; static final String IFlexModule = "mx.core.IFlexModule"; static final String IFlexModuleFactory = "mx.core.IFlexModuleFactory"; static final String IID = "mx.core.IID"; static final String IModule = "mx.modules.IModule"; static final String IMXMLObject = "mx.core.IMXMLObject"; static final String IOverride = "mx.states.IOverride"; static final String ISWFContext = "flashx.textLayout.compose.ISWFContext"; static final String ITransientDeferredInstance = "mx.core.ITransientDeferredInstance"; static final String IUIComponent = "mx.core.IUIComponent"; static final String IVisualElement = "mx.core.IVisualElement"; static final String IVisualElementContainer = "mx.core.IVisualElementContainer"; static final String MovieClip = "flash.display.MovieClip"; static final String mx_internal = "mx.core.mx_internal"; static final String ObjectProxy = "mx.utils.ObjectProxy"; static final String RemoteObject = "mx.rpc.remoting.mxml.RemoteObject"; public final String RemoteObjectOperation = "mx.rpc.remoting.mxml.Operation"; public final String Repeater = "mx.core.Repeater"; public final String ResourceBundle = "mx.resources.ResourceBundle"; public final String ResourceManager = "mx.resources.ResourceManager"; public final String ResourceModuleBase = "flex.compiler.support.ResourceModuleBase"; public final String RSLData = "mx.core.RSLData"; public final String SetEventHandler = "mx.states.SetEventHandler"; public final String SetProperty = "mx.states.SetProperty"; public final String SetStyle = "mx.states.SetStyle"; public final String SparkApplication = "spark.components.Application"; public final String SparkDownloadProgressBar = "mx.preloaders.SparkDownloadProgressBar"; public final String SpriteVisualElement = "spark.core.SpriteVisualElement"; public final String State = "mx.states.State"; public final String StateClient = "mx.core.IStateClient"; public final String StyleManagerImpl = "mx.styles.StyleManagerImpl"; public final String TextFieldFactory = "mx.core.TextFieldFactory"; public final String Transition = "mx.states.Transition"; public final String UIComponentDescriptor = "mx.core.UIComponentDescriptor"; public final String WebService = "mx.rpc.soap.mxml.WebService"; public final String WebServiceOperation = "mx.rpc.soap.mxml.Operation"; public final String XMLUtil = "mx.utils.XMLUtil"; //Names known/used by Flex SDK classes static final String _CompiledResourceBundleInfo = "_CompiledResourceBundleInfo"; // mx_internal namespace public final Namespace NAMESPACE_MX_INTERNAL = new Namespace(CONSTANT_Namespace, "http://www.adobe.com/2006/flex/mx/internal"); // AET names of builtin types used in MXMl code generation. public final Name NAME_ARRAY = new Name(IASLanguageConstants.Array); public final Name NAME_BOOLEAN = new Name(IASLanguageConstants.Boolean); public final Name NAME_OBJECT = new Name(IASLanguageConstants.Object); public final Name NAME_VOID = new Name(IASLanguageConstants.void_); // AET names for accessing runtime properties. public final Name NAME_CHILD_DESCRIPTORS = new Name("childDescriptors"); public final Name NAME_CURRENT_STATE = new Name("currentState"); public final Name NAME_DEFAULT_FACTORY = new Name("defaultFactory"); public final Name NAME_DESIGN_LAYER = new Name("designLayer"); public final Name NAME_DOCUMENT = new Name("document"); public final Name NAME_EFFECTS = new Name("effects"); public final Name NAME_EVENTS = new Name("events"); public final Name NAME_HANDLER_FUNCTION = new Name("handlerFunction"); public final Name NAME_ID = new Name("id"); public final Name NAME_INITIALIZE = new Name("initialize"); public final Name NAME_NAME = new Name("name"); public final Name NAME_OVERRIDES = new Name("overrides"); public final Name NAME_PROPERTIES_FACTORY = new Name("propertiesFactory"); public final Name NAME_SET_DOCUMENT_DESCRIPTOR = new Name(NAMESPACE_MX_INTERNAL, "setDocumentDescriptor"); public final Name NAME_STYLE_DECLARATION = new Name("styleDeclaration"); public final Name NAME_STYLE_MANAGER = new Name("styleManager"); public final Name NAME_STYLES_FACTORY = new Name("stylesFactory"); public final Name NAME_TARGET = new Name("target"); public final Name NAME_TYPE = new Name("type"); public final Name NAME_UNDERBAR_DOCUMENT = new Name(NAMESPACE_MX_INTERNAL, "_document"); public final Name NAME_UNDERBAR_DOCUMENT_DESCRIPTOR = new Name(NAMESPACE_MX_INTERNAL, "_documentDescriptor"); public final Name NAME_VALUE = new Name("value"); public final Name NAME_PROPERTIES = new Name("properties"); // AET operands for calling runtime methods. public final Object[] ADD_EVENT_LISTENER_CALL_OPERANDS = new Object[] { new Name("addEventListener"), 2}; public final Object[] ADD_LAYER_CALL_OPERANDS = new Object[] { new Name("addLayer"), 1}; public final Object[] CREATE_XML_DOCUMENT_CALL_OPERANDS = new Object[] { new Name("createXMLDocument"), 1}; public final Object[] EXECUTE_BINDINGS_CALL_OPERANDS = new Object[] { new Name("executeBindings"), 3}; public final Object[] GET_INSTANCE_CALL_OPERANDS = new Object[] { new Name("getInstance"), 0}; public final Object[] INITIALIZE_CALL_OPERANDS = new Object[] { new Name("initialize"), 0}; public final Object[] INITIALIZED_CALL_OPERANDS = new Object[] { new Name("initialized"), 2}; public final Object[] REGISTER_EFFECTS_CALL_OPERANDS = new Object[] { new Name("registerEffects"), 1}; public final Object[] SET_DOCUMENT_DESCRIPTOR_CALL_OPERANDS = new Object[] { new Name(NAMESPACE_MX_INTERNAL, "setDocumentDescriptor"), 1}; public final Object[] SET_STYLE_CALL_OPERANDS = new Object[] { new Name("setStyle"), 2}; public final Object[] CONCAT_CALL_OPERANDS = new Object[] { new Name("concat"), 1}; //**************** data binding stuff : TODO move into section above ************/ // Qualified names of runtime types. public final String Binding = "mx.binding.Binding"; public final String PropertyWatcher = "mx.binding.PropertyWatcher"; public final String StaticPropertyWatcher = "mx.binding.StaticPropertyWatcher"; public final String FunctionReturnWatcher = "mx.binding.FunctionReturnWatcher"; public final String XMLWatcherClass = "mx.binding.XMLWatcher"; public final String ArgumentError = "ArgumentError"; public final Name NAME_ARGUMENTERROR = new Name(ArgumentError); public final Name NAME_ERRORID = new Name("errorID"); public final Name NAME_PARENTWATCHER = new Name("parentWatcher"); // AET names for accessing runtime properties. // I can't get Flex to work when I use attempt to use mx_internal // It almost works, but something in the M7 test app doens't quite work... // AJH: 10/30/13 BindingManager is using hasOwnProperty(_bindingsByDestination) // which I don't think works with mx_internal //public final Name NAME_WATCHERS = new Name (NAMESPACE_MX_INTERNAL,"_watchers"); // member variable of component with bindings //public final Name NAME_BINDINGS = new Name (NAMESPACE_MX_INTERNAL,"_bindings"); // member variable of component with bindings //public final Name NAME_BINDINGSBYDESTINATION = new Name(NAMESPACE_MX_INTERNAL,"_bindingsByDestination"); // member variable of component with bindings //public final Name NAME_BINDINGSBEGINWITHWORD = new Name(NAMESPACE_MX_INTERNAL,"_bindingsBeginWithWord"); // member variable of component with bindings public final Name NAME_SETUPBINDINGS = new Name(NAMESPACE_MX_INTERNAL,"setupBindings"); // member function of component with bindings public final Name NAME_WATCHERS = new Name("_watchers"); // member variable of component with bindings public final Name NAME_BINDINGS = new Name("_bindings"); // member variable of component with bindings public final Name NAME_BINDINGSBYDESTINATION = new Name("_bindingsByDestination"); // member variable of component with bindings public final Name NAME_BINDINGSBEGINWITHWORD = new Name("_bindingsBeginWithWord"); // member variable of component with bindings public final Name NAME_EXECUTE = new Name("execute"); public final Name NAME_TWOWAYCOUNTERPART = new Name("twoWayCounterpart"); // AET operands for calling runtime methods. public final Object[] ARG_UPDATEPARENT = new Object[] { new Name("updateParent"), 1}; public final Object[] ARG_ADDCHILD = new Object[] {new Name("addChild"), 1}; public final Object[] ARG_EXECUTE = new Object[] {NAME_EXECUTE, 0}; public final Object[] ARG_SETUPBINDINGS = new Object[] {NAME_SETUPBINDINGS, 1}; // this is a "Name" to use for the property "array index" public final Name NAME_ARRAYINDEXPROP = new Name(ABCConstants.CONSTANT_MultinameL, new Nsset(new Namespace(CONSTANT_PackageNs)), null); /** * AET {@code Name} of the {@code operations} property on a * {@code WebService} object. */ public final Name NAME_OPERATIONS = new Name("operations"); }