Author: pkluegl
Date: Thu Jul 11 13:14:52 2013
New Revision: 1502217

URL: http://svn.apache.org/r1502217
Log:
UIMA-3069
- allow script files without packages

Modified:
    
uima/sandbox/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/RutaParser.g
    
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaScriptFactory.java
    
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/antlr3/org/apache/uima/ruta/ide/core/parser/RutaParser.g
    
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/RutaBlock.java
    
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/RutaScriptBlock.java
    
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/ui/wizards/RutaFileCreationPage.java

Modified: 
uima/sandbox/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/RutaParser.g
URL: 
http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/RutaParser.g?rev=1502217&r1=1502216&r2=1502217&view=diff
==============================================================================
--- 
uima/sandbox/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/RutaParser.g
 (original)
+++ 
uima/sandbox/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/RutaParser.g
 Thu Jul 11 13:14:52 2013
@@ -275,7 +275,7 @@ RutaScriptBlock rootBlock = null;
 List<RutaStatement> stmts = new ArrayList<RutaStatement>();
 }
        :
-       p = packageDeclaration  
+       p = packageDeclaration?
        {
        rootBlock = factory.createRootScriptBlock(moduleName, p);
         rootBlock.getEnvironment().setResourcePaths(resourcePaths);

Modified: 
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaScriptFactory.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaScriptFactory.java?rev=1502217&r1=1502216&r2=1502217&view=diff
==============================================================================
--- 
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaScriptFactory.java
 (original)
+++ 
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaScriptFactory.java
 Thu Jul 11 13:14:52 2013
@@ -89,7 +89,10 @@ public class RutaScriptFactory {
   }
 
   public RutaScriptBlock createRootScriptBlock(String module, String pack) {
-    String defaultNamespace = pack + "." + module;
+    String defaultNamespace = module;
+    if(pack != null) {
+      defaultNamespace = pack + "." + module;
+    }
     RutaScriptBlock result = createScriptBlock(module, null, null, null, 
defaultNamespace);
     List<RuleElement> ruleElements = new ArrayList<RuleElement>();
     RuleElementIsolator container = new RuleElementIsolator();

Modified: 
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/antlr3/org/apache/uima/ruta/ide/core/parser/RutaParser.g
URL: 
http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/antlr3/org/apache/uima/ruta/ide/core/parser/RutaParser.g?rev=1502217&r1=1502216&r2=1502217&view=diff
==============================================================================
--- 
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/antlr3/org/apache/uima/ruta/ide/core/parser/RutaParser.g
 (original)
+++ 
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/antlr3/org/apache/uima/ruta/ide/core/parser/RutaParser.g
 Thu Jul 11 13:14:52 2013
@@ -236,9 +236,9 @@ RutaScriptBlock rootBlock = null;
 List<Statement> stmts = new ArrayList<Statement>();
 }
        :       
-       p = packageDeclaration
+       p = packageDeclaration?
        {
-       String packageName = "org.apache.uima.ruta";
+       String packageName = "";
        if(p != null) {packageName = p.getName();}
        rootBlock = scriptFactory.createScriptBlock(0,0,0,0,module, null, null, 
packageName);
        stmts.add(p);

Modified: 
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/RutaBlock.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/RutaBlock.java?rev=1502217&r1=1502216&r2=1502217&view=diff
==============================================================================
--- 
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/RutaBlock.java
 (original)
+++ 
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/RutaBlock.java
 Thu Jul 11 13:14:52 2013
@@ -38,8 +38,6 @@ public class RutaBlock extends MethodDec
     this.namespace = StringUtils.isEmpty(namespace) ? name : namespace + "." + 
name;
   }
 
-  public void setElements(List<Statement> body) {
-  }
 
   public String getNamespace() {
     return namespace;

Modified: 
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/RutaScriptBlock.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/RutaScriptBlock.java?rev=1502217&r1=1502216&r2=1502217&view=diff
==============================================================================
--- 
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/RutaScriptBlock.java
 (original)
+++ 
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/RutaScriptBlock.java
 Thu Jul 11 13:14:52 2013
@@ -19,9 +19,6 @@
 
 package org.apache.uima.ruta.ide.parser.ast;
 
-import java.util.List;
-
-import org.eclipse.dltk.ast.statements.Statement;
 
 public class RutaScriptBlock extends RutaBlock {
 
@@ -30,9 +27,4 @@ public class RutaScriptBlock extends Rut
     super(name, namespace, nameStart, nameEnd, declStart, declEnd);
   }
 
-  @Override
-  public void setElements(List<Statement> stmts) {
-
-  }
-
 }

Modified: 
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/ui/wizards/RutaFileCreationPage.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/ui/wizards/RutaFileCreationPage.java?rev=1502217&r1=1502216&r2=1502217&view=diff
==============================================================================
--- 
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/ui/wizards/RutaFileCreationPage.java
 (original)
+++ 
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/ui/wizards/RutaFileCreationPage.java
 Thu Jul 11 13:14:52 2013
@@ -19,9 +19,19 @@
 
 package org.apache.uima.ruta.ide.ui.wizards;
 
+import java.util.List;
+
+import org.apache.uima.ruta.ide.RutaIdePlugin;
 import org.apache.uima.ruta.ide.core.RutaNature;
+import org.apache.uima.ruta.ide.core.builder.RutaProjectUtils;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IResource;
 import org.eclipse.core.runtime.IPath;
+import org.eclipse.dltk.core.IBuildpathEntry;
+import org.eclipse.dltk.core.IModelElement;
 import org.eclipse.dltk.core.IScriptFolder;
+import org.eclipse.dltk.core.IScriptProject;
+import org.eclipse.dltk.core.ModelException;
 import org.eclipse.dltk.ui.wizards.NewSourceModulePage;
 
 public class RutaFileCreationPage extends NewSourceModulePage {
@@ -34,21 +44,53 @@ public class RutaFileCreationPage extend
   @Override
   protected String getFileContent() {
     StringBuilder sb = new StringBuilder();
-    sb.append("PACKAGE ");
     IScriptFolder scriptFolder = getScriptFolder();
-    IPath path = scriptFolder.getPath().removeFirstSegments(1);
+    IScriptProject scriptProject = scriptFolder.getScriptProject();
+
+    
+    IFolder folder = null;
+    try {
+      folder = getScriptFolderOf(scriptFolder, scriptProject);
+    } catch (ModelException e) {
+      RutaIdePlugin.error(e);
+    }
+    if(folder == null)  {
+      return "";
+    }
+    
+    IPath path = scriptFolder.getPath();
+    IPath fullPath = folder.getFullPath();
+    IPath relativeTo = path.makeRelativeTo(fullPath);
+    if(!relativeTo.isEmpty()) {
+    sb.append("PACKAGE ");
     String pathString = "";
-    for (int i = 1; i < path.segments().length; i++) {
-      pathString += path.segments()[i];
-      if (i < path.segments().length - 1) {
+    for (int i = 0; i < relativeTo.segments().length; i++) {
+      pathString += relativeTo.segments()[i];
+      if (i < relativeTo.segments().length - 1) {
         pathString += ".";
       }
     }
     sb.append(pathString);
     sb.append(";\n");
+    }
     return sb.toString();
   }
 
+  private IFolder getScriptFolderOf(IScriptFolder scriptFolder, IScriptProject 
scriptProject) throws ModelException {
+    List<IFolder> scriptFolders = 
RutaProjectUtils.getScriptFolders(scriptProject);
+    for (IFolder each : scriptFolders) {
+      if(each.equals(scriptFolder.getResource())) {
+        return each;
+      }
+      IPath path = scriptFolder.getPath().makeRelativeTo(each.getFullPath());
+      IResource findMember = each.findMember(path);
+      if(findMember != null && findMember instanceof IFolder) {
+        return each;
+      }
+    }
+    return null;
+  }
+
   @Override
   protected String getRequiredNature() {
     return RutaNature.NATURE_ID;


Reply via email to