Changeset 15103


Ignore:
Timestamp:
03/16/10 21:22:12 (2 years ago)
Author:
sys
Message:

Push de des propriétés de l'item dans les Src des wsp.

Location:
trunk
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/Jav_Src/src/com/scenari/src/feature/fields/IFieldsUpdaterAspect.java

    r14602 r15103  
    6060         * à {@link #updateField(String, Object)}. L'envoi des données peut ainsi être buffurisé  
    6161         * pour un envoi groupé vers le système de stockage. L'implémentation peut ne pas prendre 
    62          * en considération cette indice et mettre à jour le système de stockage à chaque 
     62         * en considération cet indice et mettre à jour le système de stockage à chaque 
    6363         * appel à {@link #updateField(String, Object)}.</p> 
    6464         *  
  • trunk/Jav_Wsp/src/com/scenari/m/bdp/item/ItemDataKeys.java

    r14471 r15103  
    8989 
    9090        /** 
     91         * DataKey pour placer l'objet {@link IHItem} dans un field. Attention, un tel champ 
     92         * peut ne pas être sérialisable. 
     93         */ 
     94        public static final String DATAKEY_ITEMOBJECT = "itItemObject"; 
     95 
     96        /** 
    9197         * Alias de DataKeys regroupant les fields de base des items. 
    9298         * <ul> 
  • trunk/Jav_Wsp/src/com/scenari/m/bdp/item/fs/WspSrcNodeItem.java

    r15098 r15103  
    8484import com.scenari.src.feature.fields.IFieldsCollector; 
    8585import com.scenari.src.feature.fields.IFieldsProviderAspect; 
     86import com.scenari.src.feature.fields.IFieldsUpdaterAspect; 
    8687import com.scenari.src.feature.ids.IFindContentByIdAspect; 
    8788import com.scenari.src.feature.ids.IFindNodeByIdAspect; 
     
    334335 
    335336        public void writeFrom(InputStream pIn) throws Exception { 
    336                 HWorkspaceFs vWsp = fItemCacheData.getItemCache().getWsp(); 
    337                 HStreamHandler vStreamHandler = new HStreamHandler(pIn); 
    338                 IHItemDef vItemDef; 
    339                 synchronized (vWsp) { 
    340                         vItemDef = fItemCacheData.getItemCache().hCreateItemDefFromCache(); 
    341                 } 
    342                 IHItemType vItemType = HTreatIdentif.findItemType(vWsp, getSrcUri(), null, vStreamHandler); 
    343                 IUser vUser = ThreadUser.getUser(); 
    344                 int vClientId = ContextBdp.getThreadClientInt(); 
    345                 vItemType.hGetModuleSave().hSaveItem(vItemDef, xGetUriRes(), vStreamHandler, vUser != null ? vUser.getAccount() : null, vClientId, null); 
     337                IFieldsUpdaterAspect vFieldsUpdater = getSubSrcNode().getAspect(IFieldsUpdaterAspect.TYPE); 
     338                try { 
     339                        if (vFieldsUpdater != null) vFieldsUpdater.startUpdateFields(); 
     340                        HWorkspaceFs vWsp = fItemCacheData.getItemCache().getWsp(); 
     341                        HStreamHandler vStreamHandler = new HStreamHandler(pIn); 
     342                        IHItemDef vItemDef; 
     343                        synchronized (vWsp) { 
     344                                vItemDef = fItemCacheData.getItemCache().hCreateItemDefFromCache(); 
     345                        } 
     346                        IHItemType vItemType = HTreatIdentif.findItemType(vWsp, getSrcUri(), null, vStreamHandler); 
     347                        IUser vUser = ThreadUser.getUser(); 
     348                        int vClientId = ContextBdp.getThreadClientInt(); 
     349                        IHItem vNewItem = vItemType.hGetModuleSave().hSaveItem(vItemDef, xGetUriRes(), vStreamHandler, vUser != null ? vUser.getAccount() : null, vClientId, null); 
     350                        if (vFieldsUpdater != null) vFieldsUpdater.updateField(ItemDataKeys.DATAKEY_ITEMOBJECT, vNewItem); 
     351                } finally { 
     352                        if (vFieldsUpdater != null) vFieldsUpdater.endUpdateFields(); 
     353                } 
    346354        } 
    347355 
     
    379387                                vRenamingPlan = new HRenamingPlanItem(pFrom.getSrcUri(), SrcFeatureIds.getSrcId(pFrom), getSrcUri(), SrcFeatureIds.getSrcId(getSubSrcNode())); 
    380388                        } 
    381                         vRenameModuleFrom.hRenameItem(vRenamingPlan, vItemDefFrom, vItemDefTo, vUser, vClientId, null); 
     389                        IFieldsUpdaterAspect vFieldsUpdater = getSubSrcNode().getAspect(IFieldsUpdaterAspect.TYPE); 
     390                        try { 
     391                                if (vFieldsUpdater != null) vFieldsUpdater.startUpdateFields(); 
     392                                IHItem vNewItem = vRenameModuleFrom.hRenameItem(vRenamingPlan, vItemDefFrom, vItemDefTo, vUser, vClientId, null); 
     393                                if (vFieldsUpdater != null) vFieldsUpdater.updateField(ItemDataKeys.DATAKEY_ITEMOBJECT, vNewItem); 
     394                        } finally { 
     395                                if (vFieldsUpdater != null) vFieldsUpdater.endUpdateFields(); 
     396                        } 
    382397                } else { 
    383398                        //Pas de module de renommage 
     
    391406                if (vSubCopyMove != null) { 
    392407                        //Notre item renommé est géré par ID et la sub-source gère le copy-move 
     408                        IFieldsUpdaterAspect vFromFieldsUpdater = pFrom.getAspect(IFieldsUpdaterAspect.TYPE); 
     409                        IFieldsUpdaterAspect vTargetFieldsUpdater = getAspect(IFieldsUpdaterAspect.TYPE); 
    393410                        try { 
    394                                 vSubCopyMove.moveFrom(pFrom); 
     411                                if (vFromFieldsUpdater != null) vFromFieldsUpdater.startUpdateFields(); 
     412                                if (vTargetFieldsUpdater != null) vTargetFieldsUpdater.startUpdateFields(); 
     413                                try { 
     414                                        vSubCopyMove.moveFrom(pFrom); 
     415                                } finally { 
     416                                        //On force une revalidation de l'item source et target. 
     417                                        IHItem vFromItem = xValidateItem(pFrom); 
     418                                        if (vFromItem != null && vFromFieldsUpdater != null) vFromFieldsUpdater.updateField(ItemDataKeys.DATAKEY_ITEMOBJECT, vFromItem); 
     419                                        IHItem vTargetItem = xValidateItem(this); 
     420                                        if (vTargetItem != null && vTargetFieldsUpdater != null) vFromFieldsUpdater.updateField(ItemDataKeys.DATAKEY_ITEMOBJECT, vTargetItem); 
     421                                } 
    395422                        } finally { 
    396                                 //On force un revalidation de l'item source et target. 
    397                                 //FIXME sauf si listener auto sur subSrc 
    398                                 xValidateItem(pFrom); 
    399                                 xValidateItem(this); 
     423                                if (vFromFieldsUpdater != null) vFromFieldsUpdater.endUpdateFields(); 
     424                                if (vTargetFieldsUpdater != null) vTargetFieldsUpdater.endUpdateFields(); 
    400425                        } 
    401426                        String vIdTarget = SrcFeatureIds.getSrcId(getSubSrcNode()); 
     
    430455         * Revalide un item suite à des modif directement effectuées par les SubSources. 
    431456         */ 
    432         protected void xValidateItem(ISrcNode pFrom) { 
     457        protected IHItem xValidateItem(ISrcNode pSrc) { 
    433458                try { 
    434                         if (pFrom.getContentStatus() <= ISrcContent.STATUS_NONE) { 
    435                                 IHWorkspace vWspFrom = pFrom.getAspect(IWspSrc.WORKSPACE_ASPECT_TYPE); 
     459                        if (pSrc.getContentStatus() <= ISrcContent.STATUS_NONE) { 
     460                                IHWorkspace vWspFrom = pSrc.getAspect(IWspSrc.WORKSPACE_ASPECT_TYPE); 
    436461                                if (vWspFrom != null) { 
    437                                         vWspFrom.refreshUri(pFrom.getSrcUri()); 
     462                                        vWspFrom.refreshUri(pSrc.getSrcUri()); 
    438463                                } 
    439464                        } else { 
    440                                 IHItemDef vItemDefFrom = pFrom.getAspect(IWspSrc.ITEMDEF_ASPECT_TYPE); 
     465                                IHItemDef vItemDefFrom = pSrc.getAspect(IWspSrc.ITEMDEF_ASPECT_TYPE); 
    441466                                if (vItemDefFrom != null) { 
    442                                         InputStream vIn = pFrom.newInputStream(false); 
     467                                        InputStream vIn = pSrc.newInputStream(false); 
    443468                                        HStreamHandler vStreamHandler = vIn != null ? new HStreamHandler(vIn) : null; 
    444469                                        try { 
    445                                                 IHItemType vItemType = HTreatIdentif.findItemType(vItemDefFrom.hGetWorkspace(), pFrom.getSrcUri(), null, vStreamHandler); 
     470                                                IHItemType vItemType = HTreatIdentif.findItemType(vItemDefFrom.hGetWorkspace(), pSrc.getSrcUri(), null, vStreamHandler); 
    446471                                                IUser vUser = ThreadUser.getUser(); 
    447472                                                int vClientId = ContextBdp.getThreadClientInt(); 
    448                                                 vItemType.hGetModuleSave().hValidateItem(vItemDefFrom, vStreamHandler, vUser != null ? vUser.getAccount() : null, vClientId, null); 
     473                                                return vItemType.hGetModuleSave().hValidateItem(vItemDefFrom, vStreamHandler, vUser != null ? vUser.getAccount() : null, vClientId, null); 
    449474                                        } finally { 
    450475                                                if (vStreamHandler != null) vStreamHandler.hCloseAndPurgeCache(); 
     
    455480                        LogMgr.publishException(e); 
    456481                } 
     482                return null; 
    457483        } 
    458484 
     
    483509                                                                IHModuleRename vModuleRename = vItemType.hGetModuleRename(); 
    484510                                                                if (vModuleRename != null) { 
    485                                                                         vModuleRename.hRenameItem(vRenamingPlan, vItemDef, vItemDef, vUser, IContextBdp.CLIENTID_NONE, null); 
     511                                                                        IFieldsUpdaterAspect vFieldsUpdater = getSubSrcNode().getAspect(IFieldsUpdaterAspect.TYPE); 
     512                                                                        try { 
     513                                                                                if (vFieldsUpdater != null) vFieldsUpdater.startUpdateFields(); 
     514                                                                                IHItem vNewItem = vModuleRename.hRenameItem(vRenamingPlan, vItemDef, vItemDef, vUser, IContextBdp.CLIENTID_NONE, null); 
     515                                                                                if (vFieldsUpdater != null) vFieldsUpdater.updateField(ItemDataKeys.DATAKEY_ITEMOBJECT, vNewItem); 
     516                                                                        } finally { 
     517                                                                                if (vFieldsUpdater != null) vFieldsUpdater.endUpdateFields(); 
     518                                                                        } 
    486519                                                                } 
    487520                                                        } 
     
    505538                Iterator<ISearchResultRow> vIt = SrcFeatureSearch.execute(vReq, getWorkspace().findNodeByUri(URI_ROOT)); 
    506539                while (vIt.hasNext()) { 
    507                         XItemCache vItemCache = fItemCacheData.getItemCache().getWsp().xGetOrCreateItemCache(vIt.next().getRowUri(), false); 
    508                         vItemCache.xUnlinkChilds(); 
    509                         vItemCache.xLinkChilds(); 
     540                        HWorkspaceFs vWsp = fItemCacheData.getItemCache().getWsp(); 
     541                        synchronized (vWsp) { 
     542                                XItemCache vItemCache = vWsp.xGetOrCreateItemCache(vIt.next().getRowUri(), false); 
     543                                vItemCache.xUnlinkChilds(); 
     544                                vItemCache.xLinkChilds(); 
     545                        } 
    510546                } 
    511547        } 
  • trunk/Jav_Wsp/src/com/scenari/m/bdp/item/fs/XItemCache.java

    r15098 r15103  
    705705                                fItemType = null; 
    706706                                fAttrs = null; 
     707                                fTitle = null; 
    707708                                fFirstContentProblem = null; 
    708709                                fMemLastModif = ISrcContent.LAST_MODIF_SRCNULL; 
  • trunk/Jav_Wsp/src/com/scenari/m/bdp/module/rename/HModuleRenameXsl.java

    r14497 r15103  
    4444 
    4545import com.scenari.m.bdp.context.IContextBdp; 
     46import com.scenari.m.bdp.item.IHItem; 
    4647import com.scenari.m.bdp.item.IHItemDef; 
    4748import com.scenari.m.bdp.itemtype.IHItemType; 
     
    8889         * 
    8990         */ 
    90         public void hRenameItem(IHRenamingPlan pRenamingPlan, IHItemDef pItemSrc, IHItemDef pItemDst, IUser pUser, int pClientId, IHTransaction pTransaction) throws Exception { 
     91        public IHItem hRenameItem(IHRenamingPlan pRenamingPlan, IHItemDef pItemSrc, IHItemDef pItemDst, IUser pUser, int pClientId, IHTransaction pTransaction) throws Exception { 
    9192                InputStream vStreamSrc = null; 
    9293                HStreamHandler vStream = null; 
     
    105106                        } 
    106107                        //Enregistrment 
    107                         vItemType.hGetModuleSave().hSaveItem(pItemDst, null, vStream, (pUser != null) ? pUser.getAccount() : null, IContextBdp.CLIENTID_NONE, null); 
     108                        return vItemType.hGetModuleSave().hSaveItem(pItemDst, null, vStream, (pUser != null) ? pUser.getAccount() : null, IContextBdp.CLIENTID_NONE, null); 
    108109                } catch (Exception e) { 
    109110                        throw (Exception) LogMgr.addMessage(e, "Echec au renommage de l'item " + pItemSrc); 
  • trunk/Jav_Wsp/src/com/scenari/m/bdp/module/rename/IHModuleRename.java

    r14497 r15103  
    4141import java.io.InputStream; 
    4242 
     43import com.scenari.m.bdp.item.IHItem; 
    4344import com.scenari.m.bdp.item.IHItemDef; 
    4445import com.scenari.m.bdp.module.IHModule; 
     
    6667         *  
    6768         */ 
    68         public void hRenameItem(IHRenamingPlan pRenamingPlan, IHItemDef pItemSrc, IHItemDef pItemDst, IUser pUser, int pClientId, IHTransaction pTransaction) throws Exception; 
     69        public IHItem hRenameItem(IHRenamingPlan pRenamingPlan, IHItemDef pItemSrc, IHItemDef pItemDst, IUser pUser, int pClientId, IHTransaction pTransaction) throws Exception; 
    6970 
    7071} 
  • trunk/Jav_Wsp/src/com/scenari/m/bdp/module/rename/multi/HModuleRenameMulti.java

    r14497 r15103  
    4444import java.util.regex.Pattern; 
    4545 
     46import com.scenari.m.bdp.item.IHItem; 
    4647import com.scenari.m.bdp.item.IHItemDef; 
    4748import com.scenari.m.bdp.item.IHProblem; 
     
    107108         * 
    108109         */ 
    109         public void hRenameItem(IHRenamingPlan pRenamingPlan, IHItemDef pItemSrc, IHItemDef pItemDst, IUser pUser, int pClientId, IHTransaction pTransaction) throws Exception { 
     110        public IHItem hRenameItem(IHRenamingPlan pRenamingPlan, IHItemDef pItemSrc, IHItemDef pItemDst, IUser pUser, int pClientId, IHTransaction pTransaction) throws Exception { 
    110111                IHWorkspace vDestWsp = pItemDst.hGetWorkspace(); 
    111112                try { 
     
    152153 
    153154                        //Validation finale de l'item renommé. 
    154                         vItemType.hGetModuleSave().hValidateItem(pItemDst, null, (pUser != null) ? pUser.getAccount() : null, pClientId, null); 
     155                        return vItemType.hGetModuleSave().hValidateItem(pItemDst, null, (pUser != null) ? pUser.getAccount() : null, pClientId, null); 
    155156                } catch (Exception e) { 
    156157                        throw e; 
  • trunk/Jav_Wsp/src/com/scenari/m/bdp/module/rename/uii/HModuleRenameUii.java

    r14497 r15103  
    4242 
    4343import com.scenari.m.bdp.item.HQCode; 
     44import com.scenari.m.bdp.item.IHItem; 
    4445import com.scenari.m.bdp.item.IHItemDef; 
    4546import com.scenari.m.bdp.itemtype.IHItemType; 
     
    8889         * 
    8990         */ 
    90         public void hRenameItem(IHRenamingPlan pRenamingPlan, IHItemDef pItemSrc, IHItemDef pItemDst, IUser pUser, int pClientId, IHTransaction pTransaction) throws Exception { 
     91        public IHItem hRenameItem(IHRenamingPlan pRenamingPlan, IHItemDef pItemSrc, IHItemDef pItemDst, IUser pUser, int pClientId, IHTransaction pTransaction) throws Exception { 
    9192                InputStream vStreamSrc = null; 
    9293                HStreamHandler vStream = null; 
     
    105106                        } 
    106107                        //Enregistrment 
    107                         vItemType.hGetModuleSave().hSaveItem(pItemDst, null, vStream, (pUser != null) ? pUser.getAccount() : null, pClientId, pTransaction); 
     108                        return vItemType.hGetModuleSave().hSaveItem(pItemDst, null, vStream, (pUser != null) ? pUser.getAccount() : null, pClientId, pTransaction); 
    108109                } catch (Exception e) { 
    109110                        throw (Exception) LogMgr.addMessage(e, "Echec au renommage de l'item " + pItemSrc); 
  • trunk/Jav_Wsp/src/eu/scenari/wsp/provider/IWspProvider.java

    r14498 r15103  
    9999         */ 
    100100        public int removeWspDefListener(IWspDefListener pListener, int pOrder); 
     101 
     102        /** 
     103         * Méthodes optionnelles supplémentaires. 
     104         */ 
     105        public interface IWspProviderInternal extends IWspProvider { 
     106 
     107                /** 
     108                 * Repository associé à ce provider. 
     109                 */ 
     110                public void setRepository(IRepository pRepos); 
     111        } 
    101112} 
  • trunk/Jav_Wsp/src/eu/scenari/wsp/service/repos/SvcRepos.java

    r15005 r15103  
    4747 
    4848import eu.scenari.wsp.provider.IWspProvider; 
     49import eu.scenari.wsp.provider.IWspProvider.IWspProviderInternal; 
    4950 
    5051/** 
     
    108109                ((HRepositoryFs2) fRepos).wInitFs2(vInternData, fUpdtMgr, vSsOfSs, fWspProvider, vTransfCache, vModeAllItemsLoaded, vCheckUpdateItems, vSharedWspTypes); 
    109110                fRepos.addWspHandlerListener(this); 
     111                if (fWspProvider instanceof IWspProviderInternal) { 
     112                        ((IWspProviderInternal) fWspProvider).setRepository(fRepos); 
     113                } 
    110114        } 
    111115 
Note: See TracChangeset for help on using the changeset viewer.