You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by pk...@apache.org on 2015/06/25 16:55:42 UTC

svn commit: r1687542 - in /uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/validator: LanguageCheckerVisitor.java RutaCheckerProblemFactory.java

Author: pkluegl
Date: Thu Jun 25 14:55:41 2015
New Revision: 1687542

URL: http://svn.apache.org/r1687542
Log:
UIMA-4485
- added reporter for package

Modified:
    uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/validator/LanguageCheckerVisitor.java
    uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/validator/RutaCheckerProblemFactory.java

Modified: uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/validator/LanguageCheckerVisitor.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/validator/LanguageCheckerVisitor.java?rev=1687542&r1=1687541&r2=1687542&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/validator/LanguageCheckerVisitor.java (original)
+++ uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/validator/LanguageCheckerVisitor.java Thu Jun 25 14:55:41 2015
@@ -189,6 +189,10 @@ public class LanguageCheckerVisitor exte
 
   private ClassLoader classLoader;
 
+  private String packagePathString;
+
+  private boolean packageChecked = false;
+  
   public LanguageCheckerVisitor(IProblemReporter problemReporter, ISourceLineTracker linetracker,
           ISourceModule sourceModule, ClassLoader classLoader) {
     super();
@@ -204,10 +208,20 @@ public class LanguageCheckerVisitor exte
     knownLocalVariables = new Stack<Map<String, Integer>>();
     knownLocalVariables.push(new HashMap<String, Integer>());
     blocks = new Stack<String>();
+    packagePathString = "";
 
     initializePredefinedInformation();
     initializeExtensionInformation();
 
+    IProject project = sourceModule.getScriptProject().getProject();
+    IPath location = sourceModule.getResource().getLocation();
+    try {
+      IPath packagePath = RutaProjectUtils.getPackagePath(location, project);
+      packagePathString = packagePath.toPortableString().replaceAll("/", ".");
+    } catch (CoreException e) {
+      RutaIdeUIPlugin.error(e);
+    }
+
     IPreferenceStore store = RutaIdeUIPlugin.getDefault().getPreferenceStore();
     reportWarningOnShortNames = !store
             .getBoolean(RutaCorePreferences.BUILDER_IGNORE_DUPLICATE_SHORTNAMES);
@@ -218,6 +232,7 @@ public class LanguageCheckerVisitor exte
   public boolean visit(Statement s) throws Exception {
     if (s instanceof RutaPackageDeclaration) {
       this.packageName = ((RutaPackageDeclaration) s).getName();
+      checkPackage(s);
       return false;
     }
     if (s instanceof RutaImportTypesStatement) {
@@ -396,6 +411,13 @@ public class LanguageCheckerVisitor exte
     return true;
   }
 
+  private void checkPackage(ASTNode node) {
+    if(!StringUtils.equals(packageName, packagePathString) && !packageChecked) {
+      pr.reportProblem(problemFactory.createWrongPackageProblem(node));
+    }
+    packageChecked = true;
+  }
+
   private void processCompleteTypeSystemImport(SimpleReference sRef, String localPath)
           throws CoreException {
     processCompleteTypeSystemImport(sRef, localPath, null, null, null);
@@ -795,6 +817,9 @@ public class LanguageCheckerVisitor exte
     if (s instanceof RutaDeclareDeclarationsStatement) {
       parentTypeInDeclaration = null;
     }
+    if(!packageChecked) {
+      checkPackage(null);
+    }
     return super.endvisit(s);
   }
 
@@ -865,7 +890,7 @@ public class LanguageCheckerVisitor exte
             || t.equals(UIMAConstants.TYPE_LONG) || t.equals(UIMAConstants.TYPE_SHORT))
             && RutaTypeConstants.RUTA_TYPE_N == kind) {
       return true;
-    } else if ( RutaTypeConstants.RUTA_TYPE_AT == kind) {
+    } else if (RutaTypeConstants.RUTA_TYPE_AT == kind) {
       return true;
     }
     return false;

Modified: uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/validator/RutaCheckerProblemFactory.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/validator/RutaCheckerProblemFactory.java?rev=1687542&r1=1687541&r2=1687542&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/validator/RutaCheckerProblemFactory.java (original)
+++ uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/validator/RutaCheckerProblemFactory.java Thu Jun 25 14:55:41 2015
@@ -99,6 +99,16 @@ public class RutaCheckerProblemFactory i
             getLine(node));
   }
 
+  public IProblem createWrongPackageProblem(ASTNode node) {
+    String message = "The package declaration does not match the project structure.";
+    if(node != null) {
+      return new RutaCheckerDefaultProblem(this.fileName, message,node,  getLine(node));
+    } else {
+      return new RutaCheckerDefaultProblem(this.fileName, message);
+    }
+  }
+
+  
   public IProblem createTypeProblem(RutaVariableReference ref, ISourceModule currentFile) {
 
     String errMsgHead = "Type \"";