You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@abdera.apache.org by jm...@apache.org on 2007/02/05 09:25:26 UTC

svn commit: r503586 - in /incubator/abdera/java/trunk: core/src/main/java/org/apache/abdera/model/ parser/src/main/java/org/apache/abdera/parser/stax/ parser/src/test/java/org/apache/abdera/test/parser/stax/

Author: jmsnell
Date: Mon Feb  5 00:25:25 2007
New Revision: 503586

URL: http://svn.apache.org/viewvc?view=rev&rev=503586
Log:
Get xml:lang as a Lang object.
Add a test case for xml:lang

Modified:
    incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/model/Element.java
    incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/model/ElementWrapper.java
    incubator/abdera/java/trunk/parser/src/main/java/org/apache/abdera/parser/stax/FOMElement.java
    incubator/abdera/java/trunk/parser/src/test/java/org/apache/abdera/test/parser/stax/FOMTest.java

Modified: incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/model/Element.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/model/Element.java?view=diff&rev=503586&r1=503585&r2=503586
==============================================================================
--- incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/model/Element.java (original)
+++ incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/model/Element.java Mon Feb  5 00:25:25 2007
@@ -24,6 +24,8 @@
 
 import org.apache.abdera.util.iri.IRI;
 import org.apache.abdera.util.iri.IRISyntaxException;
+import org.apache.abdera.util.lang.InvalidLangTagSyntax;
+import org.apache.abdera.util.lang.Lang;
 
 /**
  * Root interface for all elements in the Feed Object Model
@@ -94,6 +96,11 @@
    * @return The xml:lang value
    */
   String getLanguage();
+  
+  /**
+   * Returns the value of the xml:lang attribute as a Lang object
+   */
+  Lang getLanguageTag() throws InvalidLangTagSyntax;
   
   /**
    * Returns a Locale object created from the <code>xml:lang</code> attribute

Modified: incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/model/ElementWrapper.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/model/ElementWrapper.java?view=diff&rev=503586&r1=503585&r2=503586
==============================================================================
--- incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/model/ElementWrapper.java (original)
+++ incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/model/ElementWrapper.java Mon Feb  5 00:25:25 2007
@@ -28,6 +28,8 @@
 import org.apache.abdera.factory.Factory;
 import org.apache.abdera.util.iri.IRI;
 import org.apache.abdera.util.iri.IRISyntaxException;
+import org.apache.abdera.util.lang.InvalidLangTagSyntax;
+import org.apache.abdera.util.lang.Lang;
 
 public abstract class ElementWrapper 
   implements Element {
@@ -108,6 +110,10 @@
 
   public String getLanguage() {
     return internal.getLanguage();
+  }
+  
+  public Lang getLanguageTag() throws InvalidLangTagSyntax {
+    return internal.getLanguageTag();
   }
 
   public Locale getLocale() {

Modified: incubator/abdera/java/trunk/parser/src/main/java/org/apache/abdera/parser/stax/FOMElement.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/parser/src/main/java/org/apache/abdera/parser/stax/FOMElement.java?view=diff&rev=503586&r1=503585&r2=503586
==============================================================================
--- incubator/abdera/java/trunk/parser/src/main/java/org/apache/abdera/parser/stax/FOMElement.java (original)
+++ incubator/abdera/java/trunk/parser/src/main/java/org/apache/abdera/parser/stax/FOMElement.java Mon Feb  5 00:25:25 2007
@@ -52,6 +52,8 @@
 import org.apache.abdera.util.URIHelper;
 import org.apache.abdera.util.iri.IRI;
 import org.apache.abdera.util.iri.IRISyntaxException;
+import org.apache.abdera.util.lang.InvalidLangTagSyntax;
+import org.apache.abdera.util.lang.Lang;
 import org.apache.axiom.om.OMAttribute;
 import org.apache.axiom.om.OMComment;
 import org.apache.axiom.om.OMContainer;
@@ -204,6 +206,11 @@
   @SuppressWarnings("unchecked")
   public <T extends Element>T getFirstChild(QName qname) {
     return (T)getWrapped((Element)this.getFirstChildWithName(qname));
+  }
+  
+  public Lang getLanguageTag() throws InvalidLangTagSyntax {
+    String lang = getLanguage();
+    return (lang != null) ? new Lang(lang) : null;
   }
   
   public String getLanguage() {

Modified: incubator/abdera/java/trunk/parser/src/test/java/org/apache/abdera/test/parser/stax/FOMTest.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/parser/src/test/java/org/apache/abdera/test/parser/stax/FOMTest.java?view=diff&rev=503586&r1=503585&r2=503586
==============================================================================
--- incubator/abdera/java/trunk/parser/src/test/java/org/apache/abdera/test/parser/stax/FOMTest.java (original)
+++ incubator/abdera/java/trunk/parser/src/test/java/org/apache/abdera/test/parser/stax/FOMTest.java Mon Feb  5 00:25:25 2007
@@ -63,6 +63,7 @@
 import org.apache.abdera.util.Version;
 import org.apache.abdera.util.filter.BlackListParseFilter;
 import org.apache.abdera.util.filter.WhiteListParseFilter;
+import org.apache.abdera.util.lang.Lang;
 import org.apache.abdera.writer.Writer;
 import org.apache.abdera.writer.WriterFactory;
 import org.apache.abdera.xpath.XPath;
@@ -739,5 +740,17 @@
     Entry entry = abdera.newEntry();    
     entry.setDraft(true);  // this will create an app:control element
     assertNull(entry.getControl().getSimpleExtension(new QName("urn:foo", "foo")));
+  }
+  
+  public void testLang() throws Exception {
+    Abdera abdera = new Abdera();
+    Entry entry = abdera.newEntry();
+    entry.setLanguage("en-US");
+    assertEquals(entry.getLanguage(),"en-US");
+    Lang lang = entry.getLanguageTag();
+    assertNotNull(lang);
+    assertEquals(lang.getPrimary(),"en");
+    assertEquals(lang.getSubtag(0), "US");
+    assertEquals(lang.getLocale(), java.util.Locale.US);
   }
 }