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;