You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by si...@apache.org on 2009/01/30 16:34:06 UTC

svn commit: r739308 - in /labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n: ContextMatrix.java I18nContextElement.java I18nContextElementsInstall.aj I18nMultiSegmentContextElement.java I18nSingleSegmentContextElement.java

Author: simoneg
Date: Fri Jan 30 15:34:05 2009
New Revision: 739308

URL: http://svn.apache.org/viewvc?rev=739308&view=rev
Log:
LABS-279 : Define and use proper additional interfaces for the i18n system.

Added:
    labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/I18nContextElement.java
    labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/I18nContextElementsInstall.aj
    labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/I18nMultiSegmentContextElement.java
    labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/I18nSingleSegmentContextElement.java
Modified:
    labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/ContextMatrix.java

Modified: labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/ContextMatrix.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/ContextMatrix.java?rev=739308&r1=739307&r2=739308&view=diff
==============================================================================
--- labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/ContextMatrix.java (original)
+++ labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/ContextMatrix.java Fri Jan 30 15:34:05 2009
@@ -33,11 +33,26 @@
 		int upto = 0;
 		int pos = 0;
 		for (ContextElement ele : mc) {
-			pos++;
-			if (parts[upto].equalsIgnoreCase(ele.toString())) {
-				upto++;
-				total += pos;
-				if (upto == parts.length) return total;
+			if (ele instanceof I18nContextElement) {
+				if (ele instanceof I18nSingleSegmentContextElement) {
+					String seg = ((I18nSingleSegmentContextElement)ele).getI18nSegment();
+					pos++;
+					if (parts[upto].equalsIgnoreCase(seg)) {
+						upto++;
+						total += pos;
+						if (upto == parts.length) return total;
+					}
+				} else {
+					String[] segs = ((I18nMultiSegmentContextElement)ele).getI18nSegments();
+					for (String seg : segs) {
+						pos++;
+						if (parts[upto].equalsIgnoreCase(seg)) {
+							upto++;
+							total += pos;
+							if (upto == parts.length) return total;
+						}						
+					}
+				}
 			}
 		}
 		return 0;

Added: labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/I18nContextElement.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/I18nContextElement.java?rev=739308&view=auto
==============================================================================
--- labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/I18nContextElement.java (added)
+++ labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/I18nContextElement.java Fri Jan 30 15:34:05 2009
@@ -0,0 +1,12 @@
+package org.apache.magma.i18n;
+
+import org.apache.magma.basics.context.ContextElement;
+
+/**
+ * Interface for {@link ContextElement}s used in i18n resolution.
+ * 
+ * @author Simone Gianni <si...@apache.org>
+ */
+public interface I18nContextElement {
+
+}

Added: labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/I18nContextElementsInstall.aj
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/I18nContextElementsInstall.aj?rev=739308&view=auto
==============================================================================
--- labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/I18nContextElementsInstall.aj (added)
+++ labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/I18nContextElementsInstall.aj Fri Jan 30 15:34:05 2009
@@ -0,0 +1,29 @@
+package org.apache.magma.i18n;
+
+import org.apache.magma.basics.context.ContextElement;
+import org.apache.magma.basics.context.StringContextElement;
+import org.apache.magma.basics.context.ClassContextElement;
+import org.apache.magma.basics.context.MethodContextElement;
+
+
+/**
+ * Provides default implementations and declare basic {@link ContextElement}s implementing {@link I18nContextElement} interfaces.
+ * 
+ * @author Simone Gianni <si...@apache.org>
+ */
+public aspect I18nContextElementsInstall {
+
+	public String I18nSingleSegmentContextElement.getI18nSegment() {
+		return this.toString();
+	}
+	
+	declare parents : StringContextElement implements I18nSingleSegmentContextElement;
+	declare parents : ClassContextElement implements I18nSingleSegmentContextElement;
+
+	declare parents : MethodContextElement implements I18nMultiSegmentContextElement;
+
+	public String[] MethodContextElement.getI18nSegments() {
+		return new String[] { this.getMethod().getDeclaringClass().getSimpleName() , this.getMethod().getName() };
+	}
+	
+}

Added: labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/I18nMultiSegmentContextElement.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/I18nMultiSegmentContextElement.java?rev=739308&view=auto
==============================================================================
--- labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/I18nMultiSegmentContextElement.java (added)
+++ labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/I18nMultiSegmentContextElement.java Fri Jan 30 15:34:05 2009
@@ -0,0 +1,17 @@
+package org.apache.magma.i18n;
+
+import org.apache.magma.basics.context.ContextElement;
+
+/**
+ * Interface for {@link ContextElement}s that translate to more than one i18n segment
+ * 
+ * @author Simone Gianni <si...@apache.org>
+ */
+public interface I18nMultiSegmentContextElement extends I18nContextElement {
+
+	/**
+	 * @return the multiple i18n segments this {@link ContextElement} translates to.
+	 */
+	public String[] getI18nSegments();
+	
+}

Added: labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/I18nSingleSegmentContextElement.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/I18nSingleSegmentContextElement.java?rev=739308&view=auto
==============================================================================
--- labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/I18nSingleSegmentContextElement.java (added)
+++ labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/I18nSingleSegmentContextElement.java Fri Jan 30 15:34:05 2009
@@ -0,0 +1,19 @@
+package org.apache.magma.i18n;
+
+import org.apache.magma.basics.context.ContextElement;
+
+/**
+ * Interface for {@link ContextElement}s that translates to a single i18n segment.
+ * 
+ * @author Simone Gianni <si...@apache.org>
+ */
+
+public interface I18nSingleSegmentContextElement extends I18nContextElement {
+	
+	/**
+	 * @return The single i18n segment this {@link ContextElement} translates to. 
+	 */
+	public String getI18nSegment();
+	
+
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org