Author: hibou
Date: Wed Jun 20 13:59:22 2012
New Revision: 1352104

URL: http://svn.apache.org/viewvc?rev=1352104&view=rev
Log:
Add support for onMissingExtensionPoint

Modified:
    
ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/AbstractAntDslProjectHelper.java
    ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/AntDSL.g
    
ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/xtext/AntDSL.xtext
    
ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/xtext/AntDslXTextProjectHelper.java

Modified: 
ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/AbstractAntDslProjectHelper.java
URL: 
http://svn.apache.org/viewvc/ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/AbstractAntDslProjectHelper.java?rev=1352104&r1=1352103&r2=1352104&view=diff
==============================================================================
--- 
ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/AbstractAntDslProjectHelper.java
 (original)
+++ 
ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/AbstractAntDslProjectHelper.java
 Wed Jun 20 13:59:22 2012
@@ -27,6 +27,7 @@ import java.util.Hashtable;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Vector;
@@ -286,9 +287,12 @@ public abstract class AbstractAntDslProj
     }
 
     public void mapCommonTarget(
-            Target target, Project project, AntDslContext context, String 
name, String description, List<String> depends, List<String> extensionsOf) {
-        // TODO
+            Target target, Project project, AntDslContext context, String 
name, String description, List<String> depends, List<String> extensionsOf,
+            String onMiss) {
         OnMissingExtensionPoint extensionPointMissing = null;
+        if (onMiss != null) {
+            extensionPointMissing = 
OnMissingExtensionPoint.valueOf(onMiss.toUpperCase(Locale.ENGLISH));
+        }
 
         context.addTarget(target);
         target.setProject(project);

Modified: 
ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/AntDSL.g
URL: 
http://svn.apache.org/viewvc/ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/AntDSL.g?rev=1352104&r1=1352103&r2=1352104&view=diff
==============================================================================
--- ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/AntDSL.g 
(original)
+++ ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/AntDSL.g 
Wed Jun 20 13:59:22 2012
@@ -86,9 +86,9 @@ extensionPoint returns [Target t = new T
     { context.setCurrentTarget(t); }
     desc=DOC?
     'extension-point' n=NAME
-    ('extensionOf' eo=targetList)?
     ('depends' d=targetList)?
-    { projectHelper.mapCommonTarget(t, project, context, $n.text, $desc.text, 
d, eo); }
+    ('extensionOf' eo=targetList ('onMiss' onMiss=STRING )? )?
+    { projectHelper.mapCommonTarget(t, project, context, $n.text, $desc.text, 
d, eo, $onMiss.text); }
     { context.setCurrentTarget(context.getImplicitTarget()); }
     ;
 
@@ -96,9 +96,9 @@ target returns [Target t = new Target()]
     { context.setCurrentTarget(t); }
     desc=DOC?
     'target' n=NAME
-    ('extensionOf' eo=targetList)?
     ('depends' d=targetList)?
-    { projectHelper.mapCommonTarget(t, project, context, $n.text, $desc.text, 
d, eo); }
+    ('extensionOf' eo=targetList ('onMiss' onMiss=STRING)? )?
+    { projectHelper.mapCommonTarget(t, project, context, $n.text, $desc.text, 
d, eo, $onMiss.text); }
     tl=taskLists?
     { for (Task task : tl) { t.addTask(task); } }
     { context.setCurrentTarget(context.getImplicitTarget()); }

Modified: 
ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/xtext/AntDSL.xtext
URL: 
http://svn.apache.org/viewvc/ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/xtext/AntDSL.xtext?rev=1352104&r1=1352103&r2=1352104&view=diff
==============================================================================
--- 
ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/xtext/AntDSL.xtext
 (original)
+++ 
ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/xtext/AntDSL.xtext
 Wed Jun 20 13:59:22 2012
@@ -34,10 +34,10 @@ ENamespace:
     name=NAME ':' uri=STRING;
 
 EExtensionPoint:
-    description=DOC? 'extension-point' name=NAME (('extensionOf' 
extensionsOf=ETargetList)? & ('depends' depends=ETargetList)?);
+    description=DOC? 'extension-point' name=NAME (('extensionOf' 
extensionsOf=ETargetList ('onMiss' onMissingExtensionPoint=STRING)? )? & 
('depends' depends=ETargetList)?);
 
 ETarget:
-    description=DOC? 'target' name=NAME (('extensionOf' 
extensionsOf=ETargetList)? & ('depends' depends=ETargetList)?) 
tasks=ETaskLists?;
+    description=DOC? 'target' name=NAME (('extensionOf' 
extensionsOf=ETargetList ('onMiss' onMissingExtensionPoint=STRING)? )? & 
('depends' depends=ETargetList)? ) tasks=ETaskLists?;
 
 ETaskLists:
     {ETaskLists}

Modified: 
ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/xtext/AntDslXTextProjectHelper.java
URL: 
http://svn.apache.org/viewvc/ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/xtext/AntDslXTextProjectHelper.java?rev=1352104&r1=1352103&r2=1352104&view=diff
==============================================================================
--- 
ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/xtext/AntDslXTextProjectHelper.java
 (original)
+++ 
ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/xtext/AntDslXTextProjectHelper.java
 Wed Jun 20 13:59:22 2012
@@ -181,7 +181,7 @@ public class AntDslXTextProjectHelper ex
         Target target = new Target();
         context.setCurrentTarget(target);
         mapCommonTarget(target, project, context, eTarget.getName(), 
eTarget.getDescription(), mapTargetList(eTarget.getDepends()),
-                mapTargetList(eTarget.getExtensionsOf()));
+                mapTargetList(eTarget.getExtensionsOf()), 
eTarget.getOnMissingExtensionPoint());
         ETaskLists tasks = eTarget.getTasks();
         if (tasks != null && tasks.getTasks() != null) {
             for (ETask eTask : tasks.getTasks()) {
@@ -202,7 +202,8 @@ public class AntDslXTextProjectHelper ex
     private ExtensionPoint mapExtensionPoint(Project project, AntDslContext 
context, EExtensionPoint eExtensionPoint) {
         ExtensionPoint extensionPoint = new ExtensionPoint();
         mapCommonTarget(extensionPoint, project, context, 
eExtensionPoint.getName(), eExtensionPoint.getDescription(),
-                mapTargetList(eExtensionPoint.getDepends()), 
mapTargetList(eExtensionPoint.getExtensionsOf()));
+                mapTargetList(eExtensionPoint.getDepends()), 
mapTargetList(eExtensionPoint.getExtensionsOf()),
+                eExtensionPoint.getOnMissingExtensionPoint());
         context.setCurrentTarget(context.getImplicitTarget());
         return extensionPoint;
     }


Reply via email to