This is an automated email from the ASF dual-hosted git repository.

joshtynjala pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-compiler.git


The following commit(s) were added to refs/heads/develop by this push:
     new f0e2765  playerglobalc: [Event] metadata
f0e2765 is described below

commit f0e2765769b7e7193815e565539be3ad38699720
Author: Josh Tynjala <[email protected]>
AuthorDate: Wed Oct 6 09:44:20 2021 -0700

    playerglobalc: [Event] metadata
---
 .../royale/compiler/clients/PLAYERGLOBALC.java     | 37 ++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git 
a/compiler-playerglobalc/src/main/java/org/apache/royale/compiler/clients/PLAYERGLOBALC.java
 
b/compiler-playerglobalc/src/main/java/org/apache/royale/compiler/clients/PLAYERGLOBALC.java
index 523a4a0..e2ef480 100644
--- 
a/compiler-playerglobalc/src/main/java/org/apache/royale/compiler/clients/PLAYERGLOBALC.java
+++ 
b/compiler-playerglobalc/src/main/java/org/apache/royale/compiler/clients/PLAYERGLOBALC.java
@@ -464,6 +464,7 @@ class PLAYERGLOBALC implements FlexTool {
                List<Element> apiConstructorElements = 
apiClassifierElement.elements("apiConstructor");
                List<Element> apiOperationElements = 
apiClassifierElement.elements("apiOperation");
                List<Element> apiValueElements = 
apiClassifierElement.elements("apiValue");
+               List<Element> adobeApiEventElements = 
apiClassifierElement.elements("adobeApiEvent");
 
                StringBuilder classBuilder = new StringBuilder();
                classBuilder.append("// generated from: ");
@@ -478,6 +479,9 @@ class PLAYERGLOBALC implements FlexTool {
                classBuilder.append("{");
                classBuilder.append("\n");
                writeImports(importFullyQualifiedNames, classBuilder);
+               for (Element adobeApiEventElement : adobeApiEventElements) {
+                       parseEvent(adobeApiEventElement, classBuilder);
+               }
                classBuilder.append("\t");
                if (access != null && access.length() > 0) {
                        classBuilder.append(access);
@@ -1189,6 +1193,39 @@ class PLAYERGLOBALC implements FlexTool {
                }
        }
 
+       private void parseEvent(Element adobeApiEventElement, StringBuilder 
eventBuilder) throws Exception {
+               String eventName = null;
+               Element apiNameElement = 
adobeApiEventElement.element("apiName");
+               if (apiNameElement != null) {
+                       eventName = apiNameElement.getTextTrim();
+               }
+               String eventType = null;
+               Element adobeApiEventDetailElement = 
adobeApiEventElement.element("adobeApiEventDetail");
+               if (adobeApiEventDetailElement != null) {
+                       Element adobeApiEventDefElement = 
adobeApiEventDetailElement.element("adobeApiEventDef");
+                       if (adobeApiEventDefElement != null) {
+                               Element adobeApiEventClassifierElement = 
adobeApiEventDefElement.element("adobeApiEventClassifier");
+                               if (adobeApiEventClassifierElement != null) {
+                                       eventType = 
adobeApiEventClassifierElement.getTextTrim();
+                               }
+                       }
+               }
+               eventBuilder.append("\t");
+               eventBuilder.append("[Event(");
+               if (eventName != null) {
+                       eventBuilder.append("name=\"");
+                       eventBuilder.append(eventName);
+                       eventBuilder.append("\"");
+               }
+               if (eventType != null) {
+                       eventBuilder.append(", type=\"");
+                       eventBuilder.append(eventType);
+                       eventBuilder.append("\"");
+               }
+               eventBuilder.append(")]");
+               eventBuilder.append("\n");
+       }
+
        private boolean isConstructorThatNeedsParamsTypedAsAny(String 
contextClassName, String contextFunctionName) {
                if (!contextFunctionName.equals(contextClassName)) {
                        return false;

Reply via email to