You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@stanbol.apache.org by Rupert Westenthaler <ru...@gmail.com> on 2014/01/20 09:54:33 UTC
Re: svn commit: r1559644 - in /stanbol/trunk/enhancer/generic:
nlp-json/src/main/java/org/apache/stanbol/enhancer/nlp/json/valuetype/impl/
nlp-json/src/test/java/org/apache/stanbol/enhancer/nlp/json/valuetype/ nlp/src/main/java/org/apache/stanbol/enhancer/...
FYI: With revision 1559644 I unintentionally committed changes to the
following two files.
stanbol/trunk/enhancer/generic/servicesapi/src/main/java/org/apache/stanbol/enhancer/servicesapi/ContentItem.java
stanbol/trunk/enhancer/generic/servicesapi/src/main/java/org/apache/stanbol/enhancer/servicesapi/EnhancementEngine.java
Those where originating from some test regarding EnhancementProperties
(a feature paned for 1.0.0 at a later point in time). I reverted most
of those changes with 1559645 [2]. The only thing I kept are
improvements to the JavaDoc.
best
Rupert
[1] http://svn.apache.org/r1559644
[2] http://svn.apache.org/r1559645
On Mon, Jan 20, 2014 at 9:38 AM, <rw...@apache.org> wrote:
> Author: rwesten
> Date: Mon Jan 20 08:38:04 2014
> New Revision: 1559644
>
> URL: http://svn.apache.org/r1559644
> Log:
> STANBOL-1132: Applied patch provided by Cristian Petroaca on the 11.Januray to this issue
>
> Modified:
> stanbol/trunk/enhancer/generic/nlp-json/src/main/java/org/apache/stanbol/enhancer/nlp/json/valuetype/impl/CorefFeatureSupport.java
> stanbol/trunk/enhancer/generic/nlp-json/src/main/java/org/apache/stanbol/enhancer/nlp/json/valuetype/impl/DependencyRelationSupport.java
> stanbol/trunk/enhancer/generic/nlp-json/src/test/java/org/apache/stanbol/enhancer/nlp/json/valuetype/CorefFeatureSupportTest.java
> stanbol/trunk/enhancer/generic/nlp-json/src/test/java/org/apache/stanbol/enhancer/nlp/json/valuetype/DependencyRelationSupportTest.java
> stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/coref/CorefFeature.java
> stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/DependencyRelation.java
> stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/GrammaticalRelation.java
> stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/GrammaticalRelationTag.java
> stanbol/trunk/enhancer/generic/servicesapi/src/main/java/org/apache/stanbol/enhancer/servicesapi/ContentItem.java
> stanbol/trunk/enhancer/generic/servicesapi/src/main/java/org/apache/stanbol/enhancer/servicesapi/EnhancementEngine.java
>
> Modified: stanbol/trunk/enhancer/generic/nlp-json/src/main/java/org/apache/stanbol/enhancer/nlp/json/valuetype/impl/CorefFeatureSupport.java
> URL: http://svn.apache.org/viewvc/stanbol/trunk/enhancer/generic/nlp-json/src/main/java/org/apache/stanbol/enhancer/nlp/json/valuetype/impl/CorefFeatureSupport.java?rev=1559644&r1=1559643&r2=1559644&view=diff
> ==============================================================================
> --- stanbol/trunk/enhancer/generic/nlp-json/src/main/java/org/apache/stanbol/enhancer/nlp/json/valuetype/impl/CorefFeatureSupport.java (original)
> +++ stanbol/trunk/enhancer/generic/nlp-json/src/main/java/org/apache/stanbol/enhancer/nlp/json/valuetype/impl/CorefFeatureSupport.java Mon Jan 20 08:38:04 2014
> @@ -15,7 +15,6 @@
> * limitations under the License.
> */package org.apache.stanbol.enhancer.nlp.json.valuetype.impl;
>
> -import java.util.Collections;
> import java.util.HashSet;
> import java.util.Set;
>
> @@ -53,24 +52,21 @@ public class CorefFeatureSupport impleme
>
> jCoref.put(IS_REPRESENTATIVE_TAG, coref.isRepresentative());
>
> - Set<Span> mentions = coref.getMentions();
> + Set<Span> mentions = coref.getMentions();
> + ArrayNode jMentions = mapper.createArrayNode();
>
> - if(!mentions.isEmpty()) {
> - ArrayNode jMentions = mapper.createArrayNode();
> + for(Span mention : mentions) {
> + ObjectNode jMention = mapper.createObjectNode();
>
> - for(Span mention : mentions) {
> - ObjectNode jMention = mapper.createObjectNode();
> -
> - jMention.put(MENTION_TYPE_TAG, mention.getType().toString());
> - jMention.put(MENTION_START_TAG, mention.getStart());
> - jMention.put(MENTION_END_TAG, mention.getEnd());
> -
> - jMentions.add(jMention);
> - }
> + jMention.put(MENTION_TYPE_TAG, mention.getType().toString());
> + jMention.put(MENTION_START_TAG, mention.getStart());
> + jMention.put(MENTION_END_TAG, mention.getEnd());
>
> - jCoref.put(MENTIONS_TAG, jMentions);
> + jMentions.add(jMention);
> }
>
> + jCoref.put(MENTIONS_TAG, jMentions);
> +
> return jCoref;
> }
>
> @@ -121,7 +117,7 @@ public class CorefFeatureSupport impleme
> }
> }
> }
> -
> - return new CorefFeature(jIsRepresentative.asBoolean(), Collections.unmodifiableSet(mentions));
> +
> + return new CorefFeature(jIsRepresentative.asBoolean(), mentions);
> }
> }
> \ No newline at end of file
>
> Modified: stanbol/trunk/enhancer/generic/nlp-json/src/main/java/org/apache/stanbol/enhancer/nlp/json/valuetype/impl/DependencyRelationSupport.java
> URL: http://svn.apache.org/viewvc/stanbol/trunk/enhancer/generic/nlp-json/src/main/java/org/apache/stanbol/enhancer/nlp/json/valuetype/impl/DependencyRelationSupport.java?rev=1559644&r1=1559643&r2=1559644&view=diff
> ==============================================================================
> --- stanbol/trunk/enhancer/generic/nlp-json/src/main/java/org/apache/stanbol/enhancer/nlp/json/valuetype/impl/DependencyRelationSupport.java (original)
> +++ stanbol/trunk/enhancer/generic/nlp-json/src/main/java/org/apache/stanbol/enhancer/nlp/json/valuetype/impl/DependencyRelationSupport.java Mon Jan 20 08:38:04 2014
> @@ -41,7 +41,7 @@ public class DependencyRelationSupport i
>
> private static final String RELATION_TYPE_TAG = "tag";
> private static final String RELATION_STANBOL_TYPE_TAG = "relationType";
> - private static final String RELATION_IS_DEPENDEE_TAG = "isDependent";
> + private static final String RELATION_IS_DEPENDENT_TAG = "isDependent";
> private static final String RELATION_PARTNER_TYPE_TAG = "partnerType";
> private static final String RELATION_PARTNER_START_TAG = "partnerStart";
> private static final String RELATION_PARTNER_END_TAG = "partnerEnd";
> @@ -54,7 +54,7 @@ public class DependencyRelationSupport i
> GrammaticalRelationTag gramRelTag = relation.getGrammaticalRelationTag();
> jDependencyRelation.put(RELATION_TYPE_TAG, gramRelTag.getTag());
> jDependencyRelation.put(RELATION_STANBOL_TYPE_TAG, gramRelTag.getGrammaticalRelation().ordinal());
> - jDependencyRelation.put(RELATION_IS_DEPENDEE_TAG, (relation.isDependent()));
> + jDependencyRelation.put(RELATION_IS_DEPENDENT_TAG, (relation.isDependent()));
>
> Span partner = relation.getPartner();
> if (partner != null) {
> @@ -90,7 +90,7 @@ public class DependencyRelationSupport i
> GrammaticalRelationTag gramRelTag = new GrammaticalRelationTag(tag.getTextValue(),
> grammaticalRelation);
>
> - JsonNode isDependent = jDependencyRelation.path(RELATION_IS_DEPENDEE_TAG);
> + JsonNode isDependent = jDependencyRelation.path(RELATION_IS_DEPENDENT_TAG);
>
> if (!isDependent.isBoolean()) {
> throw new IllegalStateException("Field 'isDependent' must have a true/false format");
>
> Modified: stanbol/trunk/enhancer/generic/nlp-json/src/test/java/org/apache/stanbol/enhancer/nlp/json/valuetype/CorefFeatureSupportTest.java
> URL: http://svn.apache.org/viewvc/stanbol/trunk/enhancer/generic/nlp-json/src/test/java/org/apache/stanbol/enhancer/nlp/json/valuetype/CorefFeatureSupportTest.java?rev=1559644&r1=1559643&r2=1559644&view=diff
> ==============================================================================
> --- stanbol/trunk/enhancer/generic/nlp-json/src/test/java/org/apache/stanbol/enhancer/nlp/json/valuetype/CorefFeatureSupportTest.java (original)
> +++ stanbol/trunk/enhancer/generic/nlp-json/src/test/java/org/apache/stanbol/enhancer/nlp/json/valuetype/CorefFeatureSupportTest.java Mon Jan 20 08:38:04 2014
> @@ -81,11 +81,11 @@ public class CorefFeatureSupportTest ext
> Set<Span> obamaMentions = new HashSet<Span>();
> obamaMentions.add(he);
> obama.addAnnotation(NlpAnnotations.COREF_ANNOTATION,
> - Value.value(new CorefFeature(true, Collections.unmodifiableSet(obamaMentions))));
> + Value.value(new CorefFeature(true, obamaMentions)));
>
> Set<Span> heMentions = new HashSet<Span>();
> heMentions.add(obama);
> he.addAnnotation(NlpAnnotations.COREF_ANNOTATION,
> - Value.value(new CorefFeature(false, Collections.unmodifiableSet(heMentions))));
> + Value.value(new CorefFeature(false, heMentions)));
> }
> }
>
> Modified: stanbol/trunk/enhancer/generic/nlp-json/src/test/java/org/apache/stanbol/enhancer/nlp/json/valuetype/DependencyRelationSupportTest.java
> URL: http://svn.apache.org/viewvc/stanbol/trunk/enhancer/generic/nlp-json/src/test/java/org/apache/stanbol/enhancer/nlp/json/valuetype/DependencyRelationSupportTest.java?rev=1559644&r1=1559643&r2=1559644&view=diff
> ==============================================================================
> --- stanbol/trunk/enhancer/generic/nlp-json/src/test/java/org/apache/stanbol/enhancer/nlp/json/valuetype/DependencyRelationSupportTest.java (original)
> +++ stanbol/trunk/enhancer/generic/nlp-json/src/test/java/org/apache/stanbol/enhancer/nlp/json/valuetype/DependencyRelationSupportTest.java Mon Jan 20 08:38:04 2014
> @@ -2,7 +2,6 @@ package org.apache.stanbol.enhancer.nlp.
>
> import java.io.IOException;
>
> -import org.apache.commons.io.FilenameUtils;
> import org.apache.stanbol.enhancer.nlp.NlpAnnotations;
> import org.apache.stanbol.enhancer.nlp.dependency.DependencyRelation;
> import org.apache.stanbol.enhancer.nlp.dependency.GrammaticalRelation;
> @@ -25,7 +24,7 @@ public class DependencyRelationSupportTe
> + " \"end\" : 5," + LINE_SEPARATOR
> + " \"stanbol.enhancer.nlp.dependency\" : {" + LINE_SEPARATOR
> + " \"tag\" : \"nsubj\"," + LINE_SEPARATOR
> - + " \"relationType\" : 32," + LINE_SEPARATOR
> + + " \"relationType\" : 33," + LINE_SEPARATOR
> + " \"isDependent\" : true," + LINE_SEPARATOR
> + " \"partnerType\" : \"Token\"," + LINE_SEPARATOR
> + " \"partnerStart\" : 6," + LINE_SEPARATOR
> @@ -40,7 +39,7 @@ public class DependencyRelationSupportTe
> + " \"end\" : 13," + LINE_SEPARATOR
> + " \"stanbol.enhancer.nlp.dependency\" : [ {" + LINE_SEPARATOR
> + " \"tag\" : \"root\"," + LINE_SEPARATOR
> - + " \"relationType\" : 56," + LINE_SEPARATOR
> + + " \"relationType\" : 57," + LINE_SEPARATOR
> + " \"isDependent\" : true," + LINE_SEPARATOR
> + " \"partnerType\" : \"ROOT\"," + LINE_SEPARATOR
> + " \"partnerStart\" : 0," + LINE_SEPARATOR
> @@ -48,7 +47,7 @@ public class DependencyRelationSupportTe
> + " \"class\" : \"org.apache.stanbol.enhancer.nlp.dependency.DependencyRelation\"" + LINE_SEPARATOR
> + " }, {" + LINE_SEPARATOR
> + " \"tag\" : \"nsubj\"," + LINE_SEPARATOR
> - + " \"relationType\" : 32," + LINE_SEPARATOR
> + + " \"relationType\" : 33," + LINE_SEPARATOR
> + " \"isDependent\" : false," + LINE_SEPARATOR
> + " \"partnerType\" : \"Token\"," + LINE_SEPARATOR
> + " \"partnerStart\" : 0," + LINE_SEPARATOR
>
> Modified: stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/coref/CorefFeature.java
> URL: http://svn.apache.org/viewvc/stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/coref/CorefFeature.java?rev=1559644&r1=1559643&r2=1559644&view=diff
> ==============================================================================
> --- stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/coref/CorefFeature.java (original)
> +++ stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/coref/CorefFeature.java Mon Jan 20 08:38:04 2014
> @@ -42,19 +42,13 @@ public class CorefFeature {
> */
> private Set<Span> mentions;
>
> - public CorefFeature() {
> - this(false, Collections.unmodifiableSet(Collections
> - .<Span> emptySet()));
> - }
> -
> - public CorefFeature(boolean isRepresentative) {
> - this(isRepresentative, Collections.unmodifiableSet(Collections
> - .<Span> emptySet()));
> - }
> -
> public CorefFeature(boolean isRepresentative, Set<Span> mentions) {
> + if (mentions == null || mentions.isEmpty()) {
> + throw new IllegalArgumentException("The mentions set cannot be null or empty");
> + }
> +
> this.isRepresentative = isRepresentative;
> - this.mentions = mentions;
> + this.mentions = Collections.unmodifiableSet(mentions);
> }
>
> /**
> @@ -78,11 +72,25 @@ public class CorefFeature {
> }
>
> public int hashCode() {
> - return (this.mentions != null) ? this.mentions.hashCode() : 0;
> + final int prime = 31;
> + int result = 1;
> + result = prime * result + (isRepresentative ? 1231 : 1237);
> + result = prime * result + mentions.hashCode();
> +
> + return result;
> }
>
> public boolean equals(Object obj) {
> - return (obj instanceof CorefFeature)
> - && (this.mentions.equals(((CorefFeature) obj).getMentions()));
> + if (this == obj)
> + return true;
> + if (obj == null)
> + return false;
> + if (getClass() != obj.getClass())
> + return false;
> +
> + CorefFeature other = (CorefFeature) obj;
> +
> + return (isRepresentative == other.isRepresentative)
> + && (mentions.equals(other.mentions));
> }
> }
>
> Modified: stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/DependencyRelation.java
> URL: http://svn.apache.org/viewvc/stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/DependencyRelation.java?rev=1559644&r1=1559643&r2=1559644&view=diff
> ==============================================================================
> --- stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/DependencyRelation.java (original)
> +++ stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/DependencyRelation.java Mon Jan 20 08:38:04 2014
> @@ -45,6 +45,10 @@ public class DependencyRelation {
>
> public DependencyRelation(GrammaticalRelationTag grammaticalRelationTag, boolean isDependent,
> Span partner) {
> + if (grammaticalRelationTag == null) {
> + throw new IllegalArgumentException("The grammatical relation tag cannot be null");
> + }
> +
> this.grammaticalRelationTag = grammaticalRelationTag;
> this.isDependent = isDependent;
> this.partner = partner;
> @@ -61,17 +65,12 @@ public class DependencyRelation {
> public Span getPartner() {
> return this.partner;
> }
> -
> - public void setPartner(Span partner) {
> - this.partner = partner;
> - }
>
> @Override
> public int hashCode() {
> final int prime = 31;
> int result = 1;
> - result = prime * result + ((grammaticalRelationTag == null) ? 0
> - : grammaticalRelationTag.hashCode());
> + result = prime * result + grammaticalRelationTag.hashCode();
> result = prime * result + (isDependent ? 1231 : 1237);
> result = prime * result + ((partner == null) ? 0 : partner.hashCode());
> return result;
> @@ -85,19 +84,16 @@ public class DependencyRelation {
> return false;
> if (getClass() != obj.getClass())
> return false;
> +
> DependencyRelation other = (DependencyRelation) obj;
> - if (grammaticalRelationTag == null) {
> - if (other.grammaticalRelationTag != null)
> - return false;
> - } else if (!grammaticalRelationTag.equals(other.grammaticalRelationTag))
> - return false;
> - if (isDependent != other.isDependent)
> - return false;
> +
> if (partner == null) {
> if (other.partner != null)
> return false;
> } else if (!partner.equals(other.partner))
> return false;
> - return true;
> +
> + return (grammaticalRelationTag.equals(other.grammaticalRelationTag))
> + && (isDependent == other.isDependent);
> }
> }
>
> Modified: stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/GrammaticalRelation.java
> URL: http://svn.apache.org/viewvc/stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/GrammaticalRelation.java?rev=1559644&r1=1559643&r2=1559644&view=diff
> ==============================================================================
> --- stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/GrammaticalRelation.java (original)
> +++ stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/GrammaticalRelation.java Mon Jan 20 08:38:04 2014
> @@ -214,6 +214,17 @@ public enum GrammaticalRelation {
> * raise)
> */
> DirectObject(Object),
> +
> + /**
> + * The "discourse element" grammatical relation. This is used for interjections and
> + * other discourse particles and elements (which are not clearly linked to the structure
> + * of the sentence, except in an expressive way). We generally follow the
> + * guidelines of what the Penn Treebanks count as an INTJ. They
> + * define this to include: interjections (oh, uh-huh, Welcome), fillers (um, ah),
> + * and discourse markers (well, like, actually, but not: you know).
> + * We also use it for emoticons.
> + */
> + Discourse(Modifier),
>
> /**
> * This relation captures an existential "there". The main verb of
>
> Modified: stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/GrammaticalRelationTag.java
> URL: http://svn.apache.org/viewvc/stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/GrammaticalRelationTag.java?rev=1559644&r1=1559643&r2=1559644&view=diff
> ==============================================================================
> --- stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/GrammaticalRelationTag.java (original)
> +++ stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/GrammaticalRelationTag.java Mon Jan 20 08:38:04 2014
> @@ -39,6 +39,10 @@ public class GrammaticalRelationTag exte
> GrammaticalRelation grammaticalRelation) {
> this(tag);
>
> + if (grammaticalRelation == null) {
> + throw new IllegalArgumentException("The grammatical relation cannot be null");
> + }
> +
> this.grammaticalRelation = grammaticalRelation;
> }
>
> @@ -48,7 +52,11 @@ public class GrammaticalRelationTag exte
>
> @Override
> public int hashCode() {
> - return super.hashCode() + grammaticalRelation.hashCode();
> + final int prime = 31;
> + int result = super.hashCode();
> + result = prime * result + grammaticalRelation.hashCode();
> +
> + return result;
> }
>
> @Override
>
> Modified: stanbol/trunk/enhancer/generic/servicesapi/src/main/java/org/apache/stanbol/enhancer/servicesapi/ContentItem.java
> URL: http://svn.apache.org/viewvc/stanbol/trunk/enhancer/generic/servicesapi/src/main/java/org/apache/stanbol/enhancer/servicesapi/ContentItem.java?rev=1559644&r1=1559643&r2=1559644&view=diff
> ==============================================================================
> --- stanbol/trunk/enhancer/generic/servicesapi/src/main/java/org/apache/stanbol/enhancer/servicesapi/ContentItem.java (original)
> +++ stanbol/trunk/enhancer/generic/servicesapi/src/main/java/org/apache/stanbol/enhancer/servicesapi/ContentItem.java Mon Jan 20 08:38:04 2014
> @@ -39,6 +39,8 @@ public interface ContentItem {
> * The binary content stream. Shortcut for
> * <code>{@link #getBlob()}{@link Blob#getStream() .getStream()}</code>
> * @return the InputStream
> + * @deprecated use <code>{@link #getBlob()}{@link Blob#getStream() .getStream()}</code>
> + * instead
> */
> InputStream getStream();
>
> @@ -46,6 +48,8 @@ public interface ContentItem {
> * The MimeType. Shortcut for
> * <code>{@link #getBlob()}{@link Blob#getMimeType() .getMimeType()}</code>.
> * @return the MimeType as string
> + * @deprecated use <code>{@link #getBlob()}{@link Blob#getMimeType() .getMimeType()}</code>
> + * instead
> */
> String getMimeType();
>
>
> Modified: stanbol/trunk/enhancer/generic/servicesapi/src/main/java/org/apache/stanbol/enhancer/servicesapi/EnhancementEngine.java
> URL: http://svn.apache.org/viewvc/stanbol/trunk/enhancer/generic/servicesapi/src/main/java/org/apache/stanbol/enhancer/servicesapi/EnhancementEngine.java?rev=1559644&r1=1559643&r2=1559644&view=diff
> ==============================================================================
> --- stanbol/trunk/enhancer/generic/servicesapi/src/main/java/org/apache/stanbol/enhancer/servicesapi/EnhancementEngine.java (original)
> +++ stanbol/trunk/enhancer/generic/servicesapi/src/main/java/org/apache/stanbol/enhancer/servicesapi/EnhancementEngine.java Mon Jan 20 08:38:04 2014
> @@ -16,6 +16,8 @@
> */
> package org.apache.stanbol.enhancer.servicesapi;
>
> +import java.util.Map;
> +
> /**
> * Interface to internal or external semantic enhancement engines. There will
> * usually be several of those, that the EnhancementJobManager uses to enhance
> @@ -36,13 +38,13 @@ public interface EnhancementEngine {
> /**
> * Return value for {@link #canEnhance}, meaning this engine can enhance
> * supplied {@link ContentItem}, and suggests enhancing it synchronously
> - * instead of queuing a request for enhancement.
> + * instead of queueing a request for enhancement.
> */
> int ENHANCE_SYNCHRONOUS = 1;
>
> /**
> * Return value for {@link #canEnhance}, meaning this engine can enhance
> - * supplied {@link ContentItem}, and suggests queuing a request for
> + * supplied {@link ContentItem}, and suggests queueing a request for
> * enhancement instead of enhancing it synchronously.
> */
> int ENHANCE_ASYNC = 2;
> @@ -52,23 +54,46 @@ public interface EnhancementEngine {
> * suggests enhancing it synchronously or asynchronously. The
> * {@link EnhancementJobManager} can force sync/async mode if desired, it is
> * just a suggestion from the engine.
> + * <p>
> + * This method is expected to execute fast and MUST NOT change the parsed
> + * {@link ContentItem}. It is called with a read lock on the ContentItem.
> + * <p>
> + * <b>NOTE:</b> Returning {@link #CANNOT_ENHANCE} will cause the
> + * {@link EnhancementJobManager} to skip the execution of this Engine. If
> + * an {@link EngineException} is thrown the executed {@link Chain} will
> + * fail (unless this engine is marked as OPTIONAL).
> + *
> + * @param ci The ContentItem to enhance
> + * @param context The enhancement context: Request specific parameters
> *
> * @throws EngineException if the introspecting process of the content item
> * fails
> */
> int canEnhance(ContentItem ci) throws EngineException;
> + //int canEnhance(ContentItem ci, Map<String,Object> context) throws EngineException;
>
> /**
> * Compute enhancements for supplied ContentItem. The results of the process
> - * are expected to be stored in the metadata of the content item.
> + * are expected to be stored in the {@link ContentItem#getMetadata() metadata
> + * of the content item} or by adding/modifying any contentPart.<p>
> + * Engines that do support {@link #ENHANCE_ASYNC} are required to use the
> + * {@link ContentItem#getLock()} to acquire read/write locks when reading/
> + * modifying information of the {@link ContentItem}. For Engines that that
> + * do use {@link #ENHANCE_SYNCHRONOUS} the {@link EnhancementJobManager}
> + * is responsible to acquire a write lock before calling this method.
> + * <p>
> + * <b>NOTE</b>: If an EnhancementEngine can not extract any information it
> + * is expected to return. In case an error is encountered during processing
> + * an {@link EngineException} need to be thrown.
> *
> - * The client (usually an {@link EnhancementJobManager}) should take care of
> - * persistent storage of the enhanced {@link ContentItem}.
> + * @param ci The ContentItem to enhance
> + * @param context The enhancement context: Request specific parameters
> *
> * @throws EngineException if the underlying process failed to work as
> * expected
> */
> void computeEnhancements(ContentItem ci) throws EngineException;
> + //void computeEnhancements(ContentItem ci, Map<String,Object> context) throws EngineException;
> /**
> * Getter for the name of this EnhancementEngine instance as configured
> * by {@link #PROPERTY_NAME}
>
>
--
| Rupert Westenthaler rupert.westenthaler@gmail.com
| Bodenlehenstraße 11 ++43-699-11108907
| A-5500 Bischofshofen