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/10/19 21:28:39 UTC
svn commit: r586585 - in /incubator/abdera/java/trunk:
examples/src/main/java/org/apache/abdera/examples/ext/
extensions/main/src/main/java/org/apache/abdera/ext/features/
extensions/main/src/test/java/org/apache/abdera/test/ext/features/
Author: jmsnell
Date: Fri Oct 19 12:28:38 2007
New Revision: 586585
URL: http://svn.apache.org/viewvc?rev=586585&view=rev
Log:
Updating the features extension impl to match the current draft of the spec
Modified:
incubator/abdera/java/trunk/examples/src/main/java/org/apache/abdera/examples/ext/Features.java
incubator/abdera/java/trunk/extensions/main/src/main/java/org/apache/abdera/ext/features/Feature.java
incubator/abdera/java/trunk/extensions/main/src/main/java/org/apache/abdera/ext/features/FeatureSelector.java
incubator/abdera/java/trunk/extensions/main/src/main/java/org/apache/abdera/ext/features/FeaturesHelper.java
incubator/abdera/java/trunk/extensions/main/src/test/java/org/apache/abdera/test/ext/features/FeatureTest.java
Modified: incubator/abdera/java/trunk/examples/src/main/java/org/apache/abdera/examples/ext/Features.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/examples/src/main/java/org/apache/abdera/examples/ext/Features.java?rev=586585&r1=586584&r2=586585&view=diff
==============================================================================
--- incubator/abdera/java/trunk/examples/src/main/java/org/apache/abdera/examples/ext/Features.java (original)
+++ incubator/abdera/java/trunk/examples/src/main/java/org/apache/abdera/examples/ext/Features.java Fri Oct 19 12:28:38 2007
@@ -40,47 +40,32 @@
Collection collection = workspace.addCollection("My collection", "foo");
// Specify which features are supported by the collection
- FeaturesHelper.addFeature(collection, FeaturesHelper.FEATURE_DRAFTS);
- FeaturesHelper.addFeature(collection, FeaturesHelper.FEATURE_TEXT_TITLE, Feature.Status.REQUIRED);
- FeaturesHelper.addFeature(collection, FeaturesHelper.FEATURE_SLUG, Feature.Status.UNSUPPORTED);
- FeaturesHelper.addFeature(collection, FeaturesHelper.ABDERA_FEATURE_BIDI);
+ FeaturesHelper.addFeature(collection, FeaturesHelper.FEATURE_SUPPORTS_DRAFTS);
+ FeaturesHelper.addFeature(collection, FeaturesHelper.FEATURE_REQUIRES_TEXT_TEXT);
+ FeaturesHelper.addFeature(collection, FeaturesHelper.FEATURE_IGNORES_SLUG);
+ FeaturesHelper.addFeature(collection, FeaturesHelper.FEATURE_SUPPORTS_BIDI);
// Get the support status of a specific feature
- System.out.println(FeaturesHelper.getFeatureStatus(collection, FeaturesHelper.FEATURE_DRAFTS));
- System.out.println(FeaturesHelper.getFeatureStatus(collection, FeaturesHelper.FEATURE_TEXT_TITLE));
- System.out.println(FeaturesHelper.getFeatureStatus(collection, FeaturesHelper.FEATURE_SLUG));
- System.out.println(FeaturesHelper.getFeatureStatus(collection, FeaturesHelper.ABDERA_FEATURE_BIDI));
- System.out.println(FeaturesHelper.getFeatureStatus(collection, FeaturesHelper.ABDERA_FEATURE_GEO));
+ System.out.println(FeaturesHelper.getFeatureStatus(collection, FeaturesHelper.FEATURE_SUPPORTS_DRAFTS));
+ System.out.println(FeaturesHelper.getFeatureStatus(collection, FeaturesHelper.FEATURE_REQUIRES_TEXT_TEXT));
+ System.out.println(FeaturesHelper.getFeatureStatus(collection, FeaturesHelper.FEATURE_IGNORES_SLUG));
+ System.out.println(FeaturesHelper.getFeatureStatus(collection, FeaturesHelper.FEATURE_SUPPORTS_BIDI));
+ System.out.println(FeaturesHelper.getFeatureStatus(collection, FeaturesHelper.FEATURE_SUPPORTS_GEO));
- // Listing features by support status
Feature[] features = null;
- features = FeaturesHelper.getRequiredFeatures(collection);
- System.out.println("Required:");
+ features = FeaturesHelper.getFeatures(collection);
for (Feature feature : features) {
System.out.println("\t" + feature.getRef());
}
- features = FeaturesHelper.getSupportedFeatures(collection);
- System.out.println("Supported:");
- for (Feature feature : features) {
- System.out.println("\t" + feature.getRef());
- }
-
- features = FeaturesHelper.getUnsupportedFeatures(collection);
- System.out.println("Unsupported:");
- for (Feature feature : features) {
- System.out.println("\t" + feature.getRef());
- }
-
-
- // Select a collection by feature support status
+ // Select a collection by feature
Collection[] selectedCollections =
FeaturesHelper.select(
service,
new FeatureSelector(
- FeaturesHelper.FEATURE_DRAFTS,
- FeaturesHelper.ABDERA_FEATURE_BIDI));
+ FeaturesHelper.FEATURE_SUPPORTS_DRAFTS,
+ FeaturesHelper.FEATURE_SUPPORTS_BIDI));
System.out.println("Selected Collections:");
for (Collection selected : selectedCollections)
System.out.println("\t" + selected.getTitle());
Modified: incubator/abdera/java/trunk/extensions/main/src/main/java/org/apache/abdera/ext/features/Feature.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/extensions/main/src/main/java/org/apache/abdera/ext/features/Feature.java?rev=586585&r1=586584&r2=586585&view=diff
==============================================================================
--- incubator/abdera/java/trunk/extensions/main/src/main/java/org/apache/abdera/ext/features/Feature.java (original)
+++ incubator/abdera/java/trunk/extensions/main/src/main/java/org/apache/abdera/ext/features/Feature.java Fri Oct 19 12:28:38 2007
@@ -27,14 +27,6 @@
public class Feature
extends ExtensibleElementWrapper {
- public enum Status {
- UNSUPPORTED,
- UNSPECIFIED,
- SUPPORTED,
- PREFERRED,
- REQUIRED,
- }
-
public Feature(Element internal) {
super(internal);
}
@@ -46,24 +38,6 @@
public IRI getRef() {
String ref = getAttributeValue("ref");
return (ref != null) ? new IRI(ref) : null;
- }
-
- public Status getStatus() {
- String status = getAttributeValue("status");
- return status != null ? Status.valueOf(status.toUpperCase()) : Status.SUPPORTED;
- }
-
- public void setStatus(Status status) {
- if (status != null && status != Status.SUPPORTED) {
- if (status != Status.UNSPECIFIED) {
- setAttributeValue("status",status.name().toLowerCase());
- } else {
- throw new IllegalArgumentException(
- "Cannot set the status to unspecified");
- }
- } else {
- removeAttribute(new QName("status"));
- }
}
public IRI getHref() {
Modified: incubator/abdera/java/trunk/extensions/main/src/main/java/org/apache/abdera/ext/features/FeatureSelector.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/extensions/main/src/main/java/org/apache/abdera/ext/features/FeatureSelector.java?rev=586585&r1=586584&r2=586585&view=diff
==============================================================================
--- incubator/abdera/java/trunk/extensions/main/src/main/java/org/apache/abdera/ext/features/FeatureSelector.java (original)
+++ incubator/abdera/java/trunk/extensions/main/src/main/java/org/apache/abdera/ext/features/FeatureSelector.java Fri Oct 19 12:28:38 2007
@@ -20,7 +20,7 @@
import java.util.ArrayList;
import java.util.List;
-import org.apache.abdera.ext.features.Feature.Status;
+import org.apache.abdera.ext.features.FeaturesHelper.Status;
import org.apache.abdera.model.Collection;
public class FeatureSelector
@@ -28,23 +28,16 @@
implements Selector {
private static final long serialVersionUID = -8943638085557912175L;
- private final Status minimumStatus;
private final List<String> features = new ArrayList<String>();
public FeatureSelector(String... features) {
- this(Status.SUPPORTED,features);
- }
-
- public FeatureSelector(Status minimumStatus, String... features) {
- this.minimumStatus = minimumStatus;
for (String feature : features) this.features.add(feature);
}
public boolean select(Collection collection) {
for (String feature : features) {
Status status = FeaturesHelper.getFeatureStatus(collection, feature);
- if (status != null && status.ordinal() >= minimumStatus.ordinal())
- return true;
+ if (status == Status.SPECIFIED) return true;
}
return false;
}
@@ -53,16 +46,11 @@
return features.toArray(new String[features.size()]);
}
- public Status getMinimumStatus() {
- return minimumStatus;
- }
-
@Override
public int hashCode() {
final int PRIME = 31;
int result = 1;
result = PRIME * result + ((features == null) ? 0 : features.hashCode());
- result = PRIME * result + ((minimumStatus == null) ? 0 : minimumStatus.hashCode());
return result;
}
@@ -75,10 +63,11 @@
if (features == null) {
if (other.features != null) return false;
} else if (!features.equals(other.features)) return false;
- if (minimumStatus == null) {
- if (other.minimumStatus != null) return false;
- } else if (!minimumStatus.equals(other.minimumStatus)) return false;
return true;
}
+ @Override
+ protected Selector copy() {
+ return new FeatureSelector(getFeatures());
+ }
}
Modified: incubator/abdera/java/trunk/extensions/main/src/main/java/org/apache/abdera/ext/features/FeaturesHelper.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/extensions/main/src/main/java/org/apache/abdera/ext/features/FeaturesHelper.java?rev=586585&r1=586584&r2=586585&view=diff
==============================================================================
--- incubator/abdera/java/trunk/extensions/main/src/main/java/org/apache/abdera/ext/features/FeaturesHelper.java (original)
+++ incubator/abdera/java/trunk/extensions/main/src/main/java/org/apache/abdera/ext/features/FeaturesHelper.java Fri Oct 19 12:28:38 2007
@@ -24,8 +24,6 @@
import javax.activation.MimeTypeParseException;
import javax.xml.namespace.QName;
-import org.apache.abdera.ext.features.Feature.Status;
-import org.apache.abdera.ext.thread.ThreadConstants;
import org.apache.abdera.factory.Factory;
import org.apache.abdera.i18n.iri.IRI;
import org.apache.abdera.model.Collection;
@@ -40,115 +38,176 @@
*/
public final class FeaturesHelper {
+ public enum Status {
+ UNSPECIFIED,
+ SPECIFIED
+ }
+
public static final String FNS = "http://purl.org/atompub/features/1.0";
public static final QName FEATURE = new QName(FNS, "feature","f");
public static final QName TYPE = new QName(FNS, "type", "f");
- private static final String FEATURE_BASE = "http://www.w3.org/2007/app/";
- public static final String FEATURE_DRAFTS = FEATURE_BASE + "drafts";
- public static final String FEATURE_XHTML_CONTENT = FEATURE_BASE + "xhtml-content";
- public static final String FEATURE_HTML_CONTENT = FEATURE_BASE + "html-content";
- public static final String FEATURE_TEXT_CONTENT = FEATURE_BASE + "text-content";
- public static final String FEATURE_XML_CONTENT = FEATURE_BASE + "xml-content";
- public static final String FEATURE_BINARY_CONTENT = FEATURE_BASE + "binary-content";
- public static final String FEATURE_REF_CONTENT = FEATURE_BASE + "ref-content";
- public static final String FEATURE_XHTML_TITLE = FEATURE_BASE + "xhtml-title";
- public static final String FEATURE_HTML_TITLE = FEATURE_BASE + "html-title";
- public static final String FEATURE_TEXT_TITLE = FEATURE_BASE + "text-title";
- public static final String FEATURE_SUMMARY = FEATURE_BASE + "summary";
- public static final String FEATURE_XHTML_SUMMARY = FEATURE_BASE + "xhtml-summary";
- public static final String FEATURE_HTML_SUMMARY = FEATURE_BASE + "html-summary";
- public static final String FEATURE_TEXT_SUMMARY = FEATURE_BASE + "text-summary";
- public static final String FEATURE_AUTO_SUMMARY = FEATURE_BASE + "auto-summary";
- public static final String FEATURE_XHTML_RIGHTS = FEATURE_BASE + "xhtml-rights";
- public static final String FEATURE_HTML_RIGHTS = FEATURE_BASE + "html-rights";
- public static final String FEATURE_TEXT_RIGHTS = FEATURE_BASE + "text-rights";
- public static final String FEATURE_AUTH_AUTHOR = FEATURE_BASE + "auth-author";
- public static final String FEATURE_SLUG = FEATURE_BASE + "slug";
- public static final String FEATURE_MULTIPLE_CATEGORIES = FEATURE_BASE + "multiple-categories";
- public static final String FEATURE_MULTIPLE_AUTHORS = FEATURE_BASE + "multiple-authors";
- public static final String FEATURE_MULTIPLE_CONTRIBUTORS = FEATURE_BASE + "multiple-contributors";
- public static final String FEATURE_PRESERVE_INFOSET = FEATURE_BASE + "preserve-infoset";
- public static final String FEATURE_PRESERVE_ID = FEATURE_BASE + "preserve-id";
- public static final String FEATURE_PRESERVE_DATES = FEATURE_BASE + "preserve-dates";
- public static final String FEATURE_PRESERVE_TITLE = FEATURE_BASE + "preserve-title";
- public static final String FEATURE_PRESERVE_EXTENSIONS = FEATURE_BASE + "preserve-extensions";
- public static final String FEATURE_PRESERVE_LINKS = FEATURE_BASE + "preserve-links";
- public static final String FEATURE_PRESERVE_RIGHTS = FEATURE_BASE + "preserve-rights";
- public static final String FEATURE_SCHEDULED_PUBLISHING = FEATURE_BASE + "scheduled-publishing";
- public static final String FEATURE_SIGNED_ENTRIES = FEATURE_BASE + "signed-entries";
- public static final String FEATURE_PERSON_EMAIL = FEATURE_BASE + "person-email";
- public static final String FEATURE_PERSON_URI = FEATURE_BASE + "person-uri";
- public static final String FEATURE_PUBLISH_EMAIL = FEATURE_BASE + "publish-email";
- public static final String FEATURE_PUBLISH_URI = FEATURE_BASE + "publish-uri";
- public static final String FEATURE_XML_LANG = FEATURE_BASE + "xml-lang";
- public static final String FEATURE_CONDITIONAL = FEATURE_BASE + "conditional";
- public static final String FEATURE_THREADING = ThreadConstants.THR_NS;
+ private static final String FEATURE_BASE = "http://www.w3.org/2007/app/";
+ private static final String ABDERA_FEATURE_BASE = "http://incubator.apache.org/abdera/features/";
+ public static final String FEATURE_SUPPORTS_DRAFTS = FEATURE_BASE + "supportsDraft";
+ public static final String FEATURE_IGNORES_DRAFTS = FEATURE_BASE + "ignoresDraft";
+
+ public static final String FEATURE_SUPPORTS_XHTML_CONTENT = ABDERA_FEATURE_BASE + "supportsXhtmlContent";
+ public static final String FEATURE_REQUIRES_XHTML_CONTENT = ABDERA_FEATURE_BASE + "requiresXhtmlContent";
+ public static final String FEATURE_SUPPORTS_HTML_CONTENT = ABDERA_FEATURE_BASE + "supportsHtmlContent";
+ public static final String FEATURE_REQUIRES_HTML_CONTENT = ABDERA_FEATURE_BASE + "requiresHtmlContent";
+ public static final String FEATURE_SUPPORTS_TEXT_CONTENT = ABDERA_FEATURE_BASE + "supportsTextContent";
+ public static final String FEATURE_REQUIRES_TEXT_CONTENT = ABDERA_FEATURE_BASE + "requiresTextContent";
+ public static final String FEATURE_SUPPORTS_XML_CONTENT = ABDERA_FEATURE_BASE + "supportsXmlContent";
+ public static final String FEATURE_REQUIRES_XML_CONTENT = ABDERA_FEATURE_BASE + "requiresXmlContent";
+ public static final String FEATURE_SUPPORTS_BINARY_CONTENT = ABDERA_FEATURE_BASE + "supportsBinaryContent";
+ public static final String FEATURE_REQUIRES_BINARY_CONTENT = ABDERA_FEATURE_BASE + "requiresBinaryContent";
+ public static final String FEATURE_SUPPORTS_REF_CONTENT = ABDERA_FEATURE_BASE + "supportsRefContent";
+ public static final String FEATURE_REQUIRES_REF_CONTENT = ABDERA_FEATURE_BASE + "requiresRefContent";
+ public static final String FEATURE_SUPPORTS_XHTML_TEXT = ABDERA_FEATURE_BASE + "supportsXhtmlText";
+ public static final String FEATURE_REQUIRES_XHTML_TEXT = ABDERA_FEATURE_BASE + "requiresXhtmlText";
+ public static final String FEATURE_SUPPORTS_HTML_TEXT = ABDERA_FEATURE_BASE + "supportsHtmlText";
+ public static final String FEATURE_REQUIRES_HTML_TEXT = ABDERA_FEATURE_BASE + "requiresHtmlText";
+ public static final String FEATURE_SUPPORTS_TEXT_TEXT = ABDERA_FEATURE_BASE + "supportsTextText";
+ public static final String FEATURE_REQUIRES_TEXT_TEXT = ABDERA_FEATURE_BASE + "requiresTextText";
+ public static final String FEATURE_PRESERVES_SUMMARY = ABDERA_FEATURE_BASE + "preservesSummary";
+ public static final String FEATURE_IGNORES_SUMMARY = ABDERA_FEATURE_BASE + "ignoresSummary";
+ public static final String FEATURE_PRESERVES_RIGHTS = ABDERA_FEATURE_BASE + "preservesRights";
+ public static final String FEATURE_IGNORES_RIGHTS = ABDERA_FEATURE_BASE + "ignoresRights";
+ public static final String FEATURE_PRESERVES_AUTHORS = ABDERA_FEATURE_BASE + "preservesAuthors";
+ public static final String FEATURE_IGNORES_AUTHORS = ABDERA_FEATURE_BASE + "ignoresAuthors";
+ public static final String FEATURE_PRESERVES_CONTRIBUTORS = ABDERA_FEATURE_BASE + "preservesContributors";
+ public static final String FEATURE_IGNORES_CONTRIBUTORS = ABDERA_FEATURE_BASE + "ignoresContributors";
+ public static final String FEATURE_USES_SLUG = ABDERA_FEATURE_BASE + "usesSlug";
+ public static final String FEATURE_IGNORES_SLUG = ABDERA_FEATURE_BASE + "ignoresSlug";
+ public static final String FEATURE_PRESERVES_CATEGORIES = ABDERA_FEATURE_BASE + "preservesCategories";
+ public static final String FEATURE_MULTIPLE_CATEGORIES = ABDERA_FEATURE_BASE + "multipleCategories";
+ public static final String FEATURE_IGNORES_CATEGORIES = ABDERA_FEATURE_BASE + "ignoresCategories";
+ public static final String FEATURE_PRESERVES_LINKS = ABDERA_FEATURE_BASE + "preservesLinks";
+ public static final String FEATURE_IGNORES_LINKS = ABDERA_FEATURE_BASE + "ignoresLinks";
+ public static final String FEATURE_PRESERVES_INFOSET = ABDERA_FEATURE_BASE + "preservesInfoset";
+ public static final String FEATURE_PRESERVES_ID = ABDERA_FEATURE_BASE + "preservesId";
+ public static final String FEATURE_PRESERVES_DATES = ABDERA_FEATURE_BASE + "preservesDates";
+ public static final String FEATURE_PRESERVES_EXTENSIONS = ABDERA_FEATURE_BASE + "preservesExtensions";
+ public static final String FEATURE_SCHEDULED_PUBLISHING = ABDERA_FEATURE_BASE + "scheduledPublishing";
+ public static final String FEATURE_REQUIRES_PERSON_EMAIL = ABDERA_FEATURE_BASE + "requiresPersonEmail";
+ public static final String FEATURE_HIDES_PERSON_EMAIL = ABDERA_FEATURE_BASE + "hidesPersonEmail";
+ public static final String FEATURE_REQUIRES_PERSON_URI = ABDERA_FEATURE_BASE + "requiresPersonUri";
+ public static final String FEATURE_HIDES_PERSON_URI = ABDERA_FEATURE_BASE + "hidesPersonUri";
+ public static final String FEATURE_PRESERVES_LANGUAGE = ABDERA_FEATURE_BASE + "preservesXmlLang";
+ public static final String FEATURE_IGNORES_LANGUAGE = ABDERA_FEATURE_BASE + "ignoresXmlLang";
+ public static final String FEATURE_SUPPORTS_CONDITIONALS = ABDERA_FEATURE_BASE + "supportsConditionalUpdates";
+ public static final String FEATURE_REQUIRES_CONDITIONALS = ABDERA_FEATURE_BASE + "requiresConditionalUpdates";
+ public static final String FEATURE_PRESERVES_THREADING = ABDERA_FEATURE_BASE + "preservesThreading";
+ public static final String FEATURE_REQUIRES_THREADING = ABDERA_FEATURE_BASE + "requiresThreading";
+ public static final String FEATURE_IGNORES_THREADING = ABDERA_FEATURE_BASE + "ignoresThreading";
- private static final String ABDERA_FEATURE_BASE = "http://incubator.apache.org/abdera/features/";
/**
* Indicates that the collection will preserve XML digital signatures contained
* in member resources
*/
- public static final String ABDERA_FEATURE_PRESERVE_SIGNATURE = ABDERA_FEATURE_BASE + "preserve-signature";
-
+ public static final String FEATURE_PRESERVE_SIGNATURE = ABDERA_FEATURE_BASE + "preservesSignature";
+
/**
- * Indicates that the collection supports the use of the Atom Bidi Attribute.
- * If marked as "required", the collection will only accept entries that contain the bidi attribute
+ * Indicates that the collection will support XML digital signatures contained
+ * in member resources but may not preserve those signatures
*/
- public static final String ABDERA_FEATURE_BIDI = ABDERA_FEATURE_BASE + "bidi";
+ public static final String FEATURE_SUPPORTS_SIGNATURE = ABDERA_FEATURE_BASE + "supportsSignature";
/**
- * Indicates that the collection supports the use of Diffie-Hellman key exchange
- * for XML encrypted requests
+ * Indicates that the collection will ignore XML digital signatures contained
+ * in member resources
*/
- public static final String ABDERA_FEATURE_DHENCREQUEST = ABDERA_FEATURE_BASE + "dhenc-request";
+ public static final String FEATURE_IGNORES_SIGNATURE = ABDERA_FEATURE_BASE + "ignoresSignature";
/**
- * Indicates that the collection supports the use of Diffie-Hellman key exchange
- * for XML encrypted responses
+ * Indicates that the collection requires member resources to contain valid XML digital signatures
*/
- public static final String ABDERA_FEATURE_DHENCRESPONSE = ABDERA_FEATURE_BASE + "dhenc-response";
-
+ public static final String FEATURE_REQUIRES_SIGNATURE = ABDERA_FEATURE_BASE + "requiresSignature";
+
/**
* Indicates that the collection will add it's own digital signature to the
* collection feed and member resources
*/
- public static final String ABDERA_FEATURE_SIGNED_RESPONSE = ABDERA_FEATURE_BASE + "response-signature";
+ public static final String FEATURE_SIGNED_RESPONSE = ABDERA_FEATURE_BASE + "responseSignature";
+
+
+ /**
+ * Indicates that the collection supports the use of the Atom Bidi Attribute.
+ */
+ public static final String FEATURE_SUPPORTS_BIDI = ABDERA_FEATURE_BASE + "supportsBidi";
+
+ /**
+ * Indicates that the collection requires the use of the Atom Bidi Attribute.
+ */
+ public static final String FEATURE_REQUIRES_BIDI = ABDERA_FEATURE_BASE + "requiresBidi";
+
+ /**
+ * Indicates that the collection ignores the use of the Atom Bidi Attribute.
+ */
+ public static final String FEATURE_IGNORES_BIDI = ABDERA_FEATURE_BASE + "ignoresBidi";
+
/**
* Indicates that the collection supports the use of Geo extensions (see the
* org.apache.abdera.ext.geo Package)
*/
- public static final String ABDERA_FEATURE_GEO = ABDERA_FEATURE_BASE + "geo";
-
+ public static final String FEATURE_SUPPORTS_GEO = ABDERA_FEATURE_BASE + "supportsGeo";
+
+ /**
+ * Indicates that the collection requires the use of Geo extensions (see the
+ * org.apache.abdera.ext.geo Package)
+ */
+ public static final String FEATURE_REQUIRES_GEO = ABDERA_FEATURE_BASE + "requiresGeo";
+
/**
- * Indicates that the collection supports the use of the Feed paging standard.
- * (ftp://ftp.rfc-editor.org/in-notes/internet-drafts/draft-nottingham-atompub-feed-history-11.txt)
- * See the org.apache.abdera.ext.history Package)
+ * Indicates that the collection ignores the use of Geo extensions (see the
+ * org.apache.abdera.ext.geo Package)
*/
- public static final String ABDERA_FEATURE_PAGING = ABDERA_FEATURE_BASE + "paging";
+ public static final String FEATURE_IGNORES_GEO = ABDERA_FEATURE_BASE + "ignoresGeo";
/**
* Indicates that the collection supports the use of the Simple Sharing Extensions
* (see the org.apache.abdera.ext.sharing Package)
*/
- public static final String ABDERA_FEATURE_SHARING = ABDERA_FEATURE_BASE + "sharing";
+ public static final String FEATURE_SUPPORTS_SHARING = ABDERA_FEATURE_BASE + "supportsSharing";
+
+ /**
+ * Indicates that the collection requires the use of the Simple Sharing Extensions
+ * (see the org.apache.abdera.ext.sharing Package)
+ */
+ public static final String FEATURE_REQUIRES_SHARING = ABDERA_FEATURE_BASE + "requiresSharing";
/**
+ * Indicates that the collection ignores the use of the Simple Sharing Extensions
+ * (see the org.apache.abdera.ext.sharing Package)
+ */
+ public static final String FEATURE_IGNORES_SHARING = ABDERA_FEATURE_BASE + "ignoresSharing";
+
+ /**
+ * Indicates that the collection requires the GoogleLogin auth scheme
+ * (see the org.apache.abdera.ext.gdata Package)
+ */
+ public static final String FEATURE_REQUIRES_GOOGLELOGIN = ABDERA_FEATURE_BASE + "requiresGoogleLogin";
+
+ /**
* Indicates that the collection supports the GoogleLogin auth scheme
* (see the org.apache.abdera.ext.gdata Package)
*/
- public static final String ABDERA_FEATURE_GOOGLELOGIN = ABDERA_FEATURE_BASE + "googlelogin";
+ public static final String FEATURE_SUPPORTS_GOOGLELOGIN = ABDERA_FEATURE_BASE + "supportsGoogleLogin";
/**
- * Indicates that the collection supports the WSSE auth scheme
+ * Indicates that the collection requires the WSSE auth scheme
* (see the org.apache.abdera.ext.wsse Package)
*/
- public static final String ABDERA_FEATURE_WSSE = ABDERA_FEATURE_BASE + "wsse";
-
+ public static final String FEATURE_REQUIRES_WSSE = ABDERA_FEATURE_BASE + "requiresWsse";
+ /**
+ * Indicates that the collection supports the WSSE auth scheme
+ * (see the org.apache.abdera.ext.wsse Package)
+ */
+ public static final String FEATURE_SUPPORTS_WSSE = ABDERA_FEATURE_BASE + "supportsWsse";
private FeaturesHelper() {}
@@ -169,31 +228,12 @@
public static Status getFeatureStatus(Collection collection, String feature) {
Feature f = getFeature(collection,feature);
- return f != null ? f.getStatus() : Status.UNSPECIFIED;
+ return f != null ? Status.SPECIFIED : Status.UNSPECIFIED;
}
- public static Feature[] getSupportedFeatures(Collection collection) {
- return getFeatures(collection, Status.SUPPORTED);
- }
-
- public static Feature[] getUnsupportedFeatures(Collection collection) {
- return getFeatures(collection, Status.UNSUPPORTED);
- }
-
- public static Feature[] getRequiredFeatures(Collection collection) {
- return getFeatures(collection, Status.REQUIRED);
- }
-
- public static Feature[] getFeatures(Collection collection, Status status) {
- if (status == null) status = Status.SUPPORTED;
- List<Feature> list = new ArrayList<Feature>();
+ public static Feature[] getFeatures(Collection collection) {
List<Feature> features = collection.getExtensions(FEATURE);
- for (Feature feature : features) {
- if (status == feature.getStatus()) {
- list.add(feature);
- }
- }
- return list.toArray(new Feature[list.size()]);
+ return features.toArray(new Feature[features.size()]);
}
/**
@@ -209,19 +249,6 @@
}
/**
- * Add the specified features to the collection
- */
- public static Feature[] addFeatures(
- Collection collection,
- Status status,
- String... features) {
- List<Feature> list = new ArrayList<Feature>();
- for (String feature : features)
- list.add(addFeature(collection,feature, status));
- return list.toArray(new Feature[list.size()]);
- }
-
- /**
* Add the specified feature to the collection
* @param collection The collection
* @param feature The IRI of the feature to add
@@ -232,25 +259,9 @@
return addFeature(
collection,
feature,
- null, null, null);
- }
-
- /**
- * Add the specified feature to the collection
- * @param collection The collection
- * @param feature The IRI of the feature to add
- */
- public static Feature addFeature(
- Collection collection,
- String feature,
- Status status) {
- return addFeature(
- collection,
- feature,
- status,
null, null);
}
-
+
/**
* Add the specified feature to the collection
* @param collection The collection
@@ -262,7 +273,6 @@
public static Feature addFeature(
Collection collection,
String feature,
- Status status,
String href,
String label) {
if (getFeature(collection, feature) != null)
@@ -273,7 +283,6 @@
FeaturesHelper.FEATURE, collection);
collection.declareNS(FNS, "f");
el.setRef(new IRI(feature).toString());
- el.setStatus(status);
if (href != null) el.setHref(new IRI(href).toString());
if (label != null) el.setLabel(label);
return el;
Modified: incubator/abdera/java/trunk/extensions/main/src/test/java/org/apache/abdera/test/ext/features/FeatureTest.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/extensions/main/src/test/java/org/apache/abdera/test/ext/features/FeatureTest.java?rev=586585&r1=586584&r2=586585&view=diff
==============================================================================
--- incubator/abdera/java/trunk/extensions/main/src/test/java/org/apache/abdera/test/ext/features/FeatureTest.java (original)
+++ incubator/abdera/java/trunk/extensions/main/src/test/java/org/apache/abdera/test/ext/features/FeatureTest.java Fri Oct 19 12:28:38 2007
@@ -26,7 +26,7 @@
import org.apache.abdera.ext.features.FeaturesHelper;
import org.apache.abdera.ext.features.Selector;
import org.apache.abdera.ext.features.XPathSelector;
-import org.apache.abdera.ext.features.Feature.Status;
+import org.apache.abdera.ext.features.FeaturesHelper.Status;
import org.apache.abdera.model.Collection;
import org.apache.abdera.model.Service;
import org.apache.abdera.model.Workspace;
@@ -38,19 +38,16 @@
Collection coll = abdera.getFactory().newCollection();
FeaturesHelper.addFeature(
coll, "http://example.com/features/foo",
- Status.REQUIRED, null, "foo & here");
+ null, "foo & here");
FeaturesHelper.addFeature(
coll, "http://example.com/features/bar",
- null, null, null);
- FeaturesHelper.addFeature(
- coll, "http://example.com/features/baz",
- Status.UNSUPPORTED);
+ null, null);
- assertEquals(Status.REQUIRED,FeaturesHelper.getFeatureStatus(
+ assertEquals(Status.SPECIFIED,FeaturesHelper.getFeatureStatus(
coll, "http://example.com/features/foo"));
- assertEquals(Status.SUPPORTED, FeaturesHelper.getFeatureStatus(
+ assertEquals(Status.SPECIFIED, FeaturesHelper.getFeatureStatus(
coll, "http://example.com/features/bar"));
- assertEquals(Status.UNSUPPORTED, FeaturesHelper.getFeatureStatus(
+ assertEquals(Status.UNSPECIFIED, FeaturesHelper.getFeatureStatus(
coll, "http://example.com/features/baz"));
assertEquals(Status.UNSPECIFIED,FeaturesHelper.getFeatureStatus(
coll, "http://example.com/features/pez"));
@@ -64,11 +61,11 @@
Workspace workspace = service.addWorkspace("a");
Collection collection1 = workspace.addCollection("a1","a1");
collection1.setAcceptsEntry();
- FeaturesHelper.addFeature(collection1, FeaturesHelper.FEATURE_DRAFTS);
+ FeaturesHelper.addFeature(collection1, FeaturesHelper.FEATURE_SUPPORTS_DRAFTS);
Collection collection2 = workspace.addCollection("a2","a2");
collection2.setAccept("image/*");
- Selector s1 = new FeatureSelector(FeaturesHelper.FEATURE_DRAFTS);
+ Selector s1 = new FeatureSelector(FeaturesHelper.FEATURE_SUPPORTS_DRAFTS);
Collection[] collections = FeaturesHelper.select(service, s1);