manifoldcf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alessandro Benedetti <benedetti.ale...@gmail.com>
Subject Re: [Io Activity] Doing an update inside a delete document
Date Mon, 07 Jul 2014 09:33:33 GMT
Hi Karl,
 thank you for the support but your solution is not possible, because my
case is the following :

*Custom Output Connector*
removeDocument is calling the addOrReplaceDocument method in a generic
BaseOutputConnector.
addOrReplaceDocument is calling the the addOrReplaceDocument method in a
generic BaseOutputConnector.

So in this scenario the only way to follow your strategy should be to
create in the BaseOutputConnector and in all the implementations the new
method accepting the "in common" ancestor for the activity Class.

But i don't want to do this, because I don't want to hack the other
Manifold code ...

So I know that the hierarchy of activities is quite coupled with the
function they are tracking.
Which can be the most elegant solution karl in your opinion to satisfy this
requirement ?

Right now in the removeDocument I use a EmptyOutputAddActivity implements
IOutputAddActivity ( custom class)
But would be great to achieve the same using some standard manifold
structure.

Cheers





2014-07-02 11:31 GMT+01:00 Karl Wright <daddywri@gmail.com>:

> Hi Alessandro,
>
> You cannot just cast because there are different services in each
> interface.  However, they are derived from common interfaces.  For example,
>
> public interface IOutputAddActivity extends
> IOutputQualifyActivity,IOutputHistoryActivity,IOutputCheckActivity
>
> public interface IOutputRemoveActivity extends IOutputHistoryActivity
>
>
> The only one in common is IOutputHistoryActivity, so as long as your
> addOrReplace method is calling IOutputHistoryActivity methods only, you can
> write a second method that accepts just IOutputHistoryActivity and call
> that from addOrReplace AND from deleteDocument.
>
> Karl
>
>
> On Wed, Jul 2, 2014 at 6:13 AM, Alessandro Benedetti <
> benedetti.alex85@gmail.com> wrote:
>
> > 2014-07-02 11:04 GMT+01:00 Karl Wright <daddywri@gmail.com>:
> >
> > > Hi Alessandro,
> > >
> > > The "activities" metaphor is simply to make available appropriate
> > framework
> > > services to specific connector methods.  The metaphor is good for
> > > ManifoldCF because it allows services to be added in new releases
> without
> > > upsetting backwards compatibility etc.
> > >
> > > If you have a "deleteDocument" implementation that is trying to call an
> > > "addOrReplaceDocument" method, this can *only* work if the services you
> > are
> > > using in the addOrReplaceDocument method do not include any of those
> that
> > > are not in IOutputDeleteActivity.  If that is the case, you should be
> > able
> > > to write a common method which accepts the appropriate common parent
> > > interface of IOutputAddActivity and IOutputDeleteActivity.  If not, you
> > > will have to rethink how you are doing this.
> > >
> >
> > Ok, assuming I don't want to include any further services.
> > I have in the deleteDocument, the IOutputDeleteActivity but the
> > addOrReplaceDocument is taking the IOutputAddActivity.
> > Which is the proper way to instantiate IOutputAddActivity from
> > the IOutputDeleteActivity ?
> > Because they are different interfaces and i don't know exactly which
> > implementation arrives there, should I do a hardcoded casting ?
> > Or what else?
> > Thank you very much for your time,
> >
> > Cheers
> >
> >
> > >
> > > Thanks,
> > > Karl
> > >
> > >
> > >
> > > On Wed, Jul 2, 2014 at 5:17 AM, Alessandro Benedetti <
> > > benedetti.alex85@gmail.com> wrote:
> > >
> > > > Hi guys,
> > > > I'm trying to implement a specific logic in a custom output connector
> > > > where, under specific conditions, in the deleteDocument method is
> then
> > > > called an AddOrUpdate method.
> > > >
> > > > This can happen when the deletion of a document  causes the update of
> > > other
> > > > documents already indexed.
> > > > I know is a very specific use case, but let's see if there is a
> > solution
> > > > ...
> > > > So far no problem until I reach the Activities management ...
> > > > I found the hierarchy of this objects really confusing, with a lot of
> > > > interfaces and different inner classes sparse in the code.
> > > >
> > > > Furthermore it appears to be really hard to create an
> > > *IOutputAddActivity*
> > > > object where you have a IOutputDeleteActivity.
> > > >
> > > > What can be the best way to instantiate correctly an
> > > > *IOutputAddActivity *inside
> > > > the DeleteDocument method *?*
> > > > Why this activities objects that seems a sort of logging/tracking
> > feature
> > > > is such coupled with the logic ?
> > > >
> > > > Thank's for the help
> > > > --
> > > > --------------------------
> > > >
> > > > Benedetti Alessandro
> > > > Visiting card : http://about.me/alessandro_benedetti
> > > >
> > > > "Tyger, tyger burning bright
> > > > In the forests of the night,
> > > > What immortal hand or eye
> > > > Could frame thy fearful symmetry?"
> > > >
> > > > William Blake - Songs of Experience -1794 England
> > > >
> > >
> >
> >
> >
> > --
> > --------------------------
> >
> > Benedetti Alessandro
> > Visiting card : http://about.me/alessandro_benedetti
> >
> > "Tyger, tyger burning bright
> > In the forests of the night,
> > What immortal hand or eye
> > Could frame thy fearful symmetry?"
> >
> > William Blake - Songs of Experience -1794 England
> >
>



-- 
--------------------------

Benedetti Alessandro
Visiting card : http://about.me/alessandro_benedetti

"Tyger, tyger burning bright
In the forests of the night,
What immortal hand or eye
Could frame thy fearful symmetry?"

William Blake - Songs of Experience -1794 England

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message