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