[jbosstools-commits] JBoss Tools SVN: r30500 - trunk/cdi/plugins/org.jboss.tools.cdi.seam.solder.core/src/org/jboss/tools/cdi/seam/solder/core.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Mon Apr 11 19:14:29 EDT 2011


Author: scabanovich
Date: 2011-04-11 19:14:29 -0400 (Mon, 11 Apr 2011)
New Revision: 30500

Modified:
   trunk/cdi/plugins/org.jboss.tools.cdi.seam.solder.core/src/org/jboss/tools/cdi/seam/solder/core/CDISeamSolderLoggerExtension.java
Log:
JBIDE-8713
https://issues.jboss.org/browse/JBIDE-8713

Modified: trunk/cdi/plugins/org.jboss.tools.cdi.seam.solder.core/src/org/jboss/tools/cdi/seam/solder/core/CDISeamSolderLoggerExtension.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.seam.solder.core/src/org/jboss/tools/cdi/seam/solder/core/CDISeamSolderLoggerExtension.java	2011-04-11 22:39:46 UTC (rev 30499)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.seam.solder.core/src/org/jboss/tools/cdi/seam/solder/core/CDISeamSolderLoggerExtension.java	2011-04-11 23:14:29 UTC (rev 30500)
@@ -8,11 +8,15 @@
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.jdt.core.IPackageFragmentRoot;
 import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.SourceRange;
 import org.jboss.tools.cdi.core.CDICoreNature;
+import org.jboss.tools.cdi.core.IAnnotationDeclaration;
 import org.jboss.tools.cdi.core.IRootDefinitionContext;
 import org.jboss.tools.cdi.core.extension.ICDIExtension;
 import org.jboss.tools.cdi.core.extension.IDefinitionContextExtension;
 import org.jboss.tools.cdi.core.extension.feature.IBuildParticipantFeature;
+import org.jboss.tools.cdi.internal.core.impl.AnnotationDeclaration;
+import org.jboss.tools.cdi.internal.core.impl.AnnotationLiteral;
 import org.jboss.tools.cdi.internal.core.impl.CDIProject;
 import org.jboss.tools.cdi.internal.core.impl.ClassBean;
 import org.jboss.tools.cdi.internal.core.impl.definition.AbstractMemberDefinition;
@@ -49,6 +53,8 @@
 	}
 
 	public void buildDefinitions(FileSet fileSet) {
+		LoggerDefinitionContext workingCopy = context.getWorkingCopy();
+		
 		Map<IPath, Set<IType>> is = fileSet.getInterfaces();
 		for (IPath path: is.keySet()) {
 			Set<IType> ts = is.get(path);
@@ -56,12 +62,23 @@
 				InterfaceDefinition i = new InterfaceDefinition(t);
 				if(i.isAnnotationPresent(CDISeamSolderConstants.MESSAGE_LOGGER_ANNOTATION_TYPE_NAME)) {
 					TypeDefinition d = new TypeDefinition();
-					d.setType(t, context.getRootContext());
-					((LoggerDefinitionContext)context.getWorkingCopy()).addMessageLogger(path, d);
+					d.setType(t, workingCopy.getRootContext());
+					workingCopy.addMessageLogger(path, d);
 				} else if(i.isAnnotationPresent(CDISeamSolderConstants.MESSAGE_BUNDLE_ANNOTATION_TYPE_NAME)) {
 					TypeDefinition d = new TypeDefinition();
-					d.setType(t, context.getRootContext());
-					((LoggerDefinitionContext)context.getWorkingCopy()).addMessageBundle(path, d);
+					d.setType(t, workingCopy.getRootContext());
+					workingCopy.addMessageBundle(path, d);
+					AnnotationDeclaration ad = d.getAnnotation(CDISeamSolderConstants.MESSAGE_BUNDLE_ANNOTATION_TYPE_NAME);
+					if(ad.getMemberValue("projectCode") != null && ad.getMemberValue("projectCode").toString().length() > 0) {
+						String text = d.getContent();
+						int st = ad.getStartPosition();
+						int le = ad.getLength();
+						String source = text.substring(st, st + le);
+						AnnotationLiteral l = new AnnotationLiteral(d.getResource(), source, new SourceRange(st, le), null, ad.getType());
+						d.removeAnnotation(ad);
+						d.addAnnotation(l, workingCopy.getRootContext());
+					}				
+					
 				}
 			}
 		}
@@ -145,7 +162,7 @@
 			return root;
 		}
 
-		public IDefinitionContextExtension getWorkingCopy() {
+		public LoggerDefinitionContext getWorkingCopy() {
 			if(original != null) {
 				return this;
 			}



More information about the jbosstools-commits mailing list