Package de.hybris.platform.jalo.link
Class LinkOperationHandler
- java.lang.Object
-
- de.hybris.platform.jalo.link.LinkOperationHandler
-
public class LinkOperationHandler extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description protected booleandone
-
Constructor Summary
Constructors Constructor Description LinkOperationHandler(Item item, java.util.List<Item> toBeLinked, boolean isSource, java.lang.String qualifier)Unlocalized single item links operation.LinkOperationHandler(Item item, java.util.List<Item> toBeLinked, boolean isSource, java.lang.String qualifier, Language lang)Localizable single item links operation for just one languageLinkOperationHandler(Item item, java.util.List<Item> toBeLinked, boolean isSource, java.lang.String qualifier, Language lang, boolean markModified)LinkOperationHandler(Item item, java.util.Map<Language,java.util.List<Item>> toBeLinked, boolean isSource, java.lang.String qualifier)Localized single item links operation for multiple languages at once.LinkOperationHandler(java.util.List<Item> items, java.util.List<Item> toBeLinked, boolean isSource, java.lang.String qualifier)Unlocalized multi-items links operation.LinkOperationHandler(java.util.List<Item> items, java.util.List<Item> toBeLinked, boolean isSource, java.lang.String qualifier, Language lang)Localizable multi-items links operation for just one language.LinkOperationHandler(java.util.List<Item> items, java.util.List<Item> toBeLinked, boolean isSource, java.lang.String qualifier, Language lang, boolean markModified)LinkOperationHandler(java.util.List<Item> items, java.util.Map<Language,java.util.List<Item>> toBeLinked, boolean isSource, java.lang.String qualifier, boolean localized)Localized multi-items links operation for multiple languages.LinkOperationHandler(java.util.List<Item> items, java.util.Map<Language,java.util.List<Item>> toBeLinked, boolean isSource, java.lang.String qualifier, boolean localized, boolean markModified)Localized multi-items links operation for multiple languages.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidcheckForInvalidItems()protected java.util.List<de.hybris.platform.jalo.link.LinkOperationHandler.LinkData>gatherAppendOnlyData(SessionContext ctx)protected java.util.List<de.hybris.platform.jalo.link.LinkOperationHandler.LinkData>gatherInsertData(SessionContext ctx)protected java.util.List<de.hybris.platform.jalo.link.LinkOperationHandler.LinkData>gatherReplaceAllData(SessionContext ctx)Queries existing links together with the max position of each linked item in reverse order.protected java.util.List<de.hybris.platform.jalo.link.LinkOperationHandler.LinkData>gatherUnlinkData(SessionContext ctx)protected java.util.Set<Item>getAllToBeLinked()protected java.util.List<de.hybris.platform.jalo.link.LinkOperationHandler.LinkData>getGatheredData()java.util.List<Item>getItems()The item to add/set linked items to.java.util.Set<Language>getLanguages()protected java.lang.StringgetLinkTypeCode(java.lang.String qualifier)intgetPosition()Returns the insert position for all non-replace operations.java.lang.StringgetQualifier()The link qualifier/relation name.protected java.util.Collection<Item>getToBeLinked(PK langPK)java.util.Collection<Item>getToBeLinked(Language lang)The items to be linked belonging to a given language scope.protected java.util.Set<Item>getUnlikedItems()booleanhasItemsToLink()booleanisAllowDuplicates()booleanisItemSource()Tells whether or not the given item is placed at the source or target end of the underlying relation.booleanisLocalized()Tells whether or not the operation will run in localized mode.booleanisMarkItemsModified()booleanisPreserveHiddenLanguages()booleanisReplace()Returns true if the operation will set the complete link set of the given item at once.booleanisShift()booleanisSortSrcEnd()booleanisSortTgtEnd()booleanisUnlink()booleanperform(SessionContext ctx)Performs all changes at once.protected java.util.List<java.util.List<?>>queryExistingLinks4ReplaceAll(SessionContext ctx, boolean sort, boolean sortReverse)voidsetAllowDuplicates(boolean allowDuplicates)protected voidsetGatheredData(java.util.List<de.hybris.platform.jalo.link.LinkOperationHandler.LinkData> data)voidsetMarkItemsModified(boolean markItemsModified)voidsetPosition(int position)Changes the insert position for this link operation.voidsetPreserveHiddenLanguages(boolean preserveHiddenLanguages)voidsetReplace(boolean replace)Defines whether or not the operation will set the complete link set of the given item at once.voidsetShift(boolean shift)voidsetSkipQueryExistingLinks(boolean skip)voidsetSortSrcEnd(boolean sortSrcEnd)voidsetSortTgtEnd(boolean sortTgtEnd)voidsetUnlink(boolean unlink)
-
-
-
Constructor Detail
-
LinkOperationHandler
public LinkOperationHandler(Item item, java.util.List<Item> toBeLinked, boolean isSource, java.lang.String qualifier)
Unlocalized single item links operation.- Parameters:
item-toBeLinked-isSource-qualifier-
-
LinkOperationHandler
public LinkOperationHandler(Item item, java.util.List<Item> toBeLinked, boolean isSource, java.lang.String qualifier, Language lang)
Localizable single item links operation for just one language- Parameters:
item-toBeLinked-isSource-qualifier-lang-
-
LinkOperationHandler
public LinkOperationHandler(Item item, java.util.List<Item> toBeLinked, boolean isSource, java.lang.String qualifier, Language lang, boolean markModified)
-
LinkOperationHandler
public LinkOperationHandler(Item item, java.util.Map<Language,java.util.List<Item>> toBeLinked, boolean isSource, java.lang.String qualifier)
Localized single item links operation for multiple languages at once.- Parameters:
item-toBeLinked-isSource-qualifier-
-
LinkOperationHandler
public LinkOperationHandler(java.util.List<Item> items, java.util.List<Item> toBeLinked, boolean isSource, java.lang.String qualifier)
Unlocalized multi-items links operation.- Parameters:
items-toBeLinked-isSource-qualifier-
-
LinkOperationHandler
public LinkOperationHandler(java.util.List<Item> items, java.util.List<Item> toBeLinked, boolean isSource, java.lang.String qualifier, Language lang)
Localizable multi-items links operation for just one language.- Parameters:
items-toBeLinked-isSource-qualifier-lang-
-
LinkOperationHandler
public LinkOperationHandler(java.util.List<Item> items, java.util.List<Item> toBeLinked, boolean isSource, java.lang.String qualifier, Language lang, boolean markModified)
-
LinkOperationHandler
public LinkOperationHandler(java.util.List<Item> items, java.util.Map<Language,java.util.List<Item>> toBeLinked, boolean isSource, java.lang.String qualifier, boolean localized)
Localized multi-items links operation for multiple languages.- Parameters:
items-toBeLinked-isSource-qualifier-
-
LinkOperationHandler
public LinkOperationHandler(java.util.List<Item> items, java.util.Map<Language,java.util.List<Item>> toBeLinked, boolean isSource, java.lang.String qualifier, boolean localized, boolean markModified)
Localized multi-items links operation for multiple languages.- Parameters:
items-toBeLinked-isSource-qualifier-
-
-
Method Detail
-
checkForInvalidItems
protected void checkForInvalidItems()
-
getItems
public java.util.List<Item> getItems()
The item to add/set linked items to.
-
getToBeLinked
public java.util.Collection<Item> getToBeLinked(Language lang)
The items to be linked belonging to a given language scope.- Parameters:
lang- the language to get linked items for or null for unlocalized mode
-
getAllToBeLinked
protected java.util.Set<Item> getAllToBeLinked()
-
hasItemsToLink
public boolean hasItemsToLink()
-
getUnlikedItems
protected java.util.Set<Item> getUnlikedItems()
-
perform
public boolean perform(SessionContext ctx)
Performs all changes at once.
-
getLinkTypeCode
protected java.lang.String getLinkTypeCode(java.lang.String qualifier)
-
isReplace
public boolean isReplace()
Returns true if the operation will set the complete link set of the given item at once. This means that (logically) all previously existing links are beeing replaced.Of course existing links are reused whenever possible.
-
setReplace
public void setReplace(boolean replace)
Defines whether or not the operation will set the complete link set of the given item at once. This means that (logically) all previously existing links are beeing replaced.Of course existing links are reused whenever possible.
-
getPosition
public int getPosition()
Returns the insert position for all non-replace operations. Otherwise ignored.
-
setPosition
public void setPosition(int position)
Changes the insert position for this link operation. This affects non-replace operations only! Setting a position < 0 will append all items at the end of the existing linked items collection.
-
isItemSource
public boolean isItemSource()
Tells whether or not the given item is placed at the source or target end of the underlying relation.
-
getQualifier
public java.lang.String getQualifier()
The link qualifier/relation name.
-
isLocalized
public boolean isLocalized()
Tells whether or not the operation will run in localized mode.
-
getLanguages
public java.util.Set<Language> getLanguages()
-
getGatheredData
protected java.util.List<de.hybris.platform.jalo.link.LinkOperationHandler.LinkData> getGatheredData()
- Returns:
- the gatheredData
-
setGatheredData
protected void setGatheredData(java.util.List<de.hybris.platform.jalo.link.LinkOperationHandler.LinkData> data)
-
gatherUnlinkData
protected java.util.List<de.hybris.platform.jalo.link.LinkOperationHandler.LinkData> gatherUnlinkData(SessionContext ctx)
-
queryExistingLinks4ReplaceAll
protected java.util.List<java.util.List<?>> queryExistingLinks4ReplaceAll(SessionContext ctx, boolean sort, boolean sortReverse)
-
gatherReplaceAllData
protected java.util.List<de.hybris.platform.jalo.link.LinkOperationHandler.LinkData> gatherReplaceAllData(SessionContext ctx)
Queries existing links together with the max position of each linked item in reverse order.This method issues just one db query to minimize db overhead.
-
gatherInsertData
protected java.util.List<de.hybris.platform.jalo.link.LinkOperationHandler.LinkData> gatherInsertData(SessionContext ctx)
-
gatherAppendOnlyData
protected java.util.List<de.hybris.platform.jalo.link.LinkOperationHandler.LinkData> gatherAppendOnlyData(SessionContext ctx)
-
isMarkItemsModified
public boolean isMarkItemsModified()
-
setMarkItemsModified
public void setMarkItemsModified(boolean markItemsModified)
-
isUnlink
public boolean isUnlink()
-
setUnlink
public void setUnlink(boolean unlink)
-
isShift
public boolean isShift()
-
setShift
public void setShift(boolean shift)
-
setSkipQueryExistingLinks
public void setSkipQueryExistingLinks(boolean skip)
-
isPreserveHiddenLanguages
public boolean isPreserveHiddenLanguages()
- Returns:
- the preserveHiddenLanguages
-
setPreserveHiddenLanguages
public void setPreserveHiddenLanguages(boolean preserveHiddenLanguages)
- Parameters:
preserveHiddenLanguages- the preserveHiddenLanguages to set
-
isSortTgtEnd
public boolean isSortTgtEnd()
- Returns:
- the sortTgtEnd
-
setSortTgtEnd
public void setSortTgtEnd(boolean sortTgtEnd)
- Parameters:
sortTgtEnd- the sortTgtEnd to set
-
isSortSrcEnd
public boolean isSortSrcEnd()
- Returns:
- the sortSrcEnd
-
setSortSrcEnd
public void setSortSrcEnd(boolean sortSrcEnd)
- Parameters:
sortSrcEnd- the sortSrcEnd to set
-
isAllowDuplicates
public boolean isAllowDuplicates()
- Returns:
- the allowDuplicates
-
setAllowDuplicates
public void setAllowDuplicates(boolean allowDuplicates)
- Parameters:
allowDuplicates- the allowDuplicates to set
-
-