Author: scottbw
Date: Fri Feb 19 23:31:29 2010
New Revision: 912033
URL: http://svn.apache.org/viewvc?rev=912033&view=rev
Log:
Implemented the Access element as per the W3C WARP spec draft at
http://www.w3.org/TR/widgets-access/
Modified:
incubator/wookie/trunk/src/org/apache/wookie/manifestmodel/IAccessEntity.java
incubator/wookie/trunk/src/org/apache/wookie/manifestmodel/IManifestModel.java
incubator/wookie/trunk/src/org/apache/wookie/manifestmodel/IW3CXMLConfiguration.java
incubator/wookie/trunk/src/org/apache/wookie/manifestmodel/impl/AccessEntity.java
incubator/wookie/trunk/src/org/apache/wookie/manifestmodel/impl/WidgetManifestModel.java
Modified:
incubator/wookie/trunk/src/org/apache/wookie/manifestmodel/IAccessEntity.java
URL:
http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/manifestmodel/IAccessEntity.java?rev=912033&r1=912032&r2=912033&view=diff
==============================================================================
---
incubator/wookie/trunk/src/org/apache/wookie/manifestmodel/IAccessEntity.java
(original)
+++
incubator/wookie/trunk/src/org/apache/wookie/manifestmodel/IAccessEntity.java
Fri Feb 19 23:31:29 2010
@@ -19,9 +19,9 @@
*/
public interface IAccessEntity extends IManifestModelBase {
- public String getUri();
+ public String getOrigin();
- public void setUri(String uri);
+ public void setOrigin(String uri);
public boolean hasSubDomains();
Modified:
incubator/wookie/trunk/src/org/apache/wookie/manifestmodel/IManifestModel.java
URL:
http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/manifestmodel/IManifestModel.java?rev=912033&r1=912032&r2=912033&view=diff
==============================================================================
---
incubator/wookie/trunk/src/org/apache/wookie/manifestmodel/IManifestModel.java
(original)
+++
incubator/wookie/trunk/src/org/apache/wookie/manifestmodel/IManifestModel.java
Fri Feb 19 23:31:29 2010
@@ -25,6 +25,7 @@
*/
public interface IManifestModel extends IManifestModelBase{
+ public List<IAccessEntity> getAccessList();
public List<IContentEntity> getContentList();
public List<IIconEntity> getIconsList();
public String getIdentifier();
Modified:
incubator/wookie/trunk/src/org/apache/wookie/manifestmodel/IW3CXMLConfiguration.java
URL:
http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/manifestmodel/IW3CXMLConfiguration.java?rev=912033&r1=912032&r2=912033&view=diff
==============================================================================
---
incubator/wookie/trunk/src/org/apache/wookie/manifestmodel/IW3CXMLConfiguration.java
(original)
+++
incubator/wookie/trunk/src/org/apache/wookie/manifestmodel/IW3CXMLConfiguration.java
Fri Feb 19 23:31:29 2010
@@ -44,7 +44,7 @@
public static final String ICON_ELEMENT = "icon"; // widget [0..*]
public static final String ACCESS_ELEMENT = "access"; // widget [0..*]
- public static final String URI_ATTRIBUTE = "uri"; // access
+ public static final String ORIGIN_ATTRIBUTE = "origin"; //
access
public static final String SUBDOMAINS_ATTRIBUTE = "subdomains";
// access
public static final String CONTENT_ELEMENT = "content"; // widget [0..*]
Modified:
incubator/wookie/trunk/src/org/apache/wookie/manifestmodel/impl/AccessEntity.java
URL:
http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/manifestmodel/impl/AccessEntity.java?rev=912033&r1=912032&r2=912033&view=diff
==============================================================================
---
incubator/wookie/trunk/src/org/apache/wookie/manifestmodel/impl/AccessEntity.java
(original)
+++
incubator/wookie/trunk/src/org/apache/wookie/manifestmodel/impl/AccessEntity.java
Fri Feb 19 23:31:29 2010
@@ -14,62 +14,90 @@
package org.apache.wookie.manifestmodel.impl;
+import java.net.URI;
+
import org.apache.wookie.manifestmodel.IAccessEntity;
import org.apache.wookie.manifestmodel.IW3CXMLConfiguration;
+import org.apache.wookie.util.IRIValidator;
import org.apache.wookie.util.UnicodeUtils;
+import org.jdom.Attribute;
import org.jdom.Element;
/**
- * @author Paul Sharples
- * @version $Id: AccessEntity.java,v 1.3 2009-09-02 18:37:31 scottwilson Exp $
+ * The Access element is defined in: http://www.w3.org/TR/widgets-access/
*/
public class AccessEntity implements IAccessEntity {
-
- private String fUri;
+
+ private String fOrigin;
private boolean fSubDomains;
-
+
public AccessEntity(){
- fUri = "";
+ fOrigin = null;
fSubDomains = false;
}
-
+
public AccessEntity(String uri, boolean subDomains) {
super();
- fUri = uri;
+ fOrigin = uri;
fSubDomains = subDomains;
}
-
- public String getUri() {
- return fUri;
+
+ public String getOrigin() {
+ return fOrigin;
}
- public void setUri(String uri) {
- fUri = uri;
+ public void setOrigin(String uri) {
+ fOrigin = uri;
}
public boolean hasSubDomains() {
return fSubDomains;
}
-
public void setSubDomains(boolean subDomains) {
fSubDomains = subDomains;
}
-
public String getXMLTagName() {
return IW3CXMLConfiguration.ACCESS_ELEMENT;
}
-
- public void fromXML(Element element) {
- fUri =
UnicodeUtils.normalizeSpaces(element.getAttributeValue(IW3CXMLConfiguration.URI_ATTRIBUTE));
- //TODO this is required, but may need to be checked
- String subDomains =
UnicodeUtils.normalizeSpaces(element.getAttributeValue(IW3CXMLConfiguration.SUBDOMAINS_ATTRIBUTE));
- if(subDomains.equals("")){
+
+ public void fromXML(Element element) {
+ // Origin is required
+ if
(element.getAttribute(IW3CXMLConfiguration.ORIGIN_ATTRIBUTE)==null) return;
+ fOrigin =
UnicodeUtils.normalizeSpaces(element.getAttributeValue(IW3CXMLConfiguration.ORIGIN_ATTRIBUTE));
+ if (fOrigin.equals("*")) return;
+ try {
+ processOrigin();
+ } catch (Exception e) {
+ fOrigin = null;
+ return;
+ }
+ // Subdomains is optional
+ try {
+
processSubdomains(element.getAttribute(IW3CXMLConfiguration.SUBDOMAINS_ATTRIBUTE));
+ } catch (Exception e) {
fSubDomains = false;
+ }
+ }
+
+ /**
+ * Processes an origin attribute
+ * @throws Exception if the origin attribute is not valid
+ */
+ private void processOrigin() throws Exception{
+ if (!IRIValidator.isValidIRI(fOrigin)) throw new
Exception("origin is not a valid IRI");
+ URI uri = new URI(fOrigin);
+ if (uri.getHost() == null) throw new Exception("origin has no
host");
+ if (uri.getUserInfo()!=null) throw new Exception("origin has
userinfo");
+ URI processedURI = new
URI(uri.getScheme(),null,uri.getHost(),uri.getPort(),null,null,null);
+ fOrigin = processedURI.toString();
+ }
+
+ /**
+ * Processes a subdomains attribute
+ * @param subDomains
+ * @throws Exception if the attribute is not valid
+ */
+ private void processSubdomains(Attribute attr) throws Exception{
+ if (attr != null){
+ String subDomains =
UnicodeUtils.normalizeSpaces(attr.getValue());
+ fSubDomains = Boolean.valueOf(subDomains);
}
- else{
- try {
- fSubDomains = Boolean.valueOf(subDomains);
- }
- catch (Exception e) {
- fSubDomains = false;
- }
- }
}
}
Modified:
incubator/wookie/trunk/src/org/apache/wookie/manifestmodel/impl/WidgetManifestModel.java
URL:
http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/manifestmodel/impl/WidgetManifestModel.java?rev=912033&r1=912032&r2=912033&view=diff
==============================================================================
---
incubator/wookie/trunk/src/org/apache/wookie/manifestmodel/impl/WidgetManifestModel.java
(original)
+++
incubator/wookie/trunk/src/org/apache/wookie/manifestmodel/impl/WidgetManifestModel.java
Fri Feb 19 23:31:29 2010
@@ -179,6 +179,10 @@
return fFeaturesList;
}
+ public List<IAccessEntity> getAccessList(){
+ return fAccessList;
+ }
+
public String getAuthor(){
if (fAuthor == null) return null;
return fAuthor.getAuthorName();
@@ -355,11 +359,10 @@
}
// ACCESS IS OPTIONAL can be many
- // (not sure if this has been removed from the spec?)
if(tag.equals(IW3CXMLConfiguration.ACCESS_ELEMENT)) {
IAccessEntity access = new AccessEntity();
access.fromXML(child);
- fAccessList.add(access);
+ if (access.getOrigin()!=null)
fAccessList.add(access);
}
// CONTENT IS OPTIONAL - can be 0 or 1