de.hybris.platform.mpintgproductcockpit.cmscockpit.services.impl.SynchronizationServiceImpl.java Source code

Java tutorial

Introduction

Here is the source code for de.hybris.platform.mpintgproductcockpit.cmscockpit.services.impl.SynchronizationServiceImpl.java

Source

/*
 *  
 * [y] hybris Platform
 *  
 * Copyright (c) 2000-2016 hybris AG
 * All rights reserved.
 *  
 * This software is the confidential and proprietary information of hybris
 * ("Confidential Information"). You shall not disclose such Confidential
 * Information and shall use it only in accordance with the terms of the
 * license agreement you entered into with hybris.
 *  
 */
package de.hybris.platform.mpintgproductcockpit.cmscockpit.services.impl;

import de.hybris.platform.catalog.daos.ItemSyncTimestampDao;
import de.hybris.platform.catalog.jalo.Catalog;
import de.hybris.platform.catalog.jalo.CatalogManager;
import de.hybris.platform.catalog.jalo.CatalogVersion;
import de.hybris.platform.catalog.jalo.ItemSyncTimestamp;
import de.hybris.platform.catalog.jalo.SyncItemCronJob;
import de.hybris.platform.catalog.jalo.SyncItemCronJob.Configurator;
import de.hybris.platform.catalog.jalo.SyncItemJob;
import de.hybris.platform.catalog.jalo.SyncItemJob.CompletionInfo;
import de.hybris.platform.catalog.jalo.SyncItemJob.SyncItemCopyContext;
import de.hybris.platform.catalog.jalo.synchronization.CatalogVersionSyncCronJob;
import de.hybris.platform.catalog.model.CatalogVersionModel;
import de.hybris.platform.catalog.model.SyncItemJobModel;
import de.hybris.platform.category.jalo.Category;
import de.hybris.platform.category.model.CategoryModel;
import de.hybris.platform.cockpit.daos.SynchronizationServiceDao;
import de.hybris.platform.cockpit.jalo.CockpitManager;
import de.hybris.platform.cockpit.model.meta.BaseType;
import de.hybris.platform.cockpit.model.meta.ObjectType;
import de.hybris.platform.cockpit.model.meta.PropertyDescriptor;
import de.hybris.platform.cockpit.model.meta.PropertyDescriptor.Multiplicity;
import de.hybris.platform.cockpit.model.meta.TypedObject;
import de.hybris.platform.cockpit.services.SystemService;
import de.hybris.platform.cockpit.services.impl.AbstractServiceImpl;
import de.hybris.platform.cockpit.services.meta.TypeService;
import de.hybris.platform.cockpit.services.sync.SynchronizationService;
import de.hybris.platform.cockpit.services.sync.SynchronizationService.SyncContext;
import de.hybris.platform.cockpit.services.values.ObjectValueContainer;
import de.hybris.platform.cockpit.services.values.ObjectValueContainer.ObjectValueHolder;
import de.hybris.platform.cockpit.services.values.ObjectValueHandlerRegistry;
import de.hybris.platform.cockpit.session.UISession;
import de.hybris.platform.cockpit.session.UISessionUtils;
import de.hybris.platform.cockpit.util.TypeTools;
import de.hybris.platform.core.PK;
import de.hybris.platform.core.model.ItemModel;
import de.hybris.platform.core.model.product.ProductModel;
import de.hybris.platform.cronjob.jalo.Job;
import de.hybris.platform.jalo.Item;
import de.hybris.platform.jalo.JaloSession;
import de.hybris.platform.jalo.SessionContext;
import de.hybris.platform.jalo.flexiblesearch.FlexibleSearch;
import de.hybris.platform.jalo.product.Product;
import de.hybris.platform.jalo.type.ComposedType;
import de.hybris.platform.jalo.type.TypeManager;
import de.hybris.platform.jalo.user.User;
import de.hybris.platform.servicelayer.model.ModelService;
import de.hybris.platform.util.Config;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.NoSuchElementException;
import java.util.Set;

import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Required;

public class SynchronizationServiceImpl extends AbstractServiceImpl implements SynchronizationService {
    private static final Logger LOG = Logger.getLogger(SynchronizationServiceImpl.class);
    public static final String DISABLE_RESTRICTION = "disableRestrictions";
    private static final char RIGHT_ARROW = 8594;
    private static final String LEFT_ROUND_BRACKET = " (";
    private static final String RIGHT_ROUND_BRACKET = ") ";
    private static final String LEFT_ANGLE_BRACKET = "< ";
    private static final String RIGHT_ANGLE_BRACKET = "> ";
    private static final String INIT_SYNCHRONIZATION_CHECK_METHOD = "catalog.synchronization.initialinit.check.timestamps";
    private SystemService systemService;
    private ObjectValueHandlerRegistry valueHandlerRegistry;
    private final CatalogManager catalogManager = CatalogManager.getInstance();
    private final TypeManager typeManager = TypeManager.getInstance();
    private SynchronizationServiceDao synchronizationServiceDao;
    private Map<String, List<String>> relatedReferencesTypesMap = new HashMap();
    private int relatedReferencesMaxDepth = -1;
    private volatile Map<ObjectType, Set<PropertyDescriptor>> relatedProperties = new HashMap();
    private ItemSyncTimestampDao itemSyncTimestampDao;
    private Boolean disabledSearchRestrictions = null;

    protected Map<String, List<String>> getRelatedReferencesTypesMap() {
        return this.relatedReferencesTypesMap;
    }

    public void setRelatedReferencesTypesMap(Map<String, List<String>> relatedReferencesTypesMap) {
        this.relatedReferencesTypesMap = relatedReferencesTypesMap;
    }

    protected int getRelatedReferencesMaxDepth() {
        return this.relatedReferencesMaxDepth;
    }

    public void setRelatedReferencesMaxDepth(int relatedReferencesMaxDepth) {
        this.relatedReferencesMaxDepth = relatedReferencesMaxDepth;
    }

    public TypeManager getTypeManager() {
        return this.typeManager;
    }

    public CatalogManager getCatalogManager() {
        return this.catalogManager;
    }

    public Collection<TypedObject> getSyncSources(TypedObject object) {
        return getTypeService().wrapItems(
                this.synchronizationServiceDao.getSyncSources((ItemModel) object.getObject()).getResult());
    }

    public Collection<TypedObject> getSyncTargets(TypedObject object) {
        return getTypeService().wrapItems(
                this.synchronizationServiceDao.getSyncTargets((ItemModel) object.getObject()).getResult());
    }

    public Collection<TypedObject> getSyncSourcesAndTargets(TypedObject object) {
        return getTypeService().wrapItems(this.synchronizationServiceDao
                .getSyncSourcesAndTargets((ItemModel) object.getObject()).getResult());
    }

    public void performPullSynchronization(List<TypedObject> targetItems) {
        @SuppressWarnings("rawtypes")
        Map syncMap = new HashMap();

    }

    public Collection<TypedObject> performSynchronization(Collection<? extends Object> items,
            List<String> syncJobPkList, CatalogVersionModel targetCatalogVersion, String qualifier) {
        if ((items == null) || (items.isEmpty())) {
            return Collections.EMPTY_LIST;
        }

        return null;
    }

    private void processSingleRuleSync(CatalogVersionModel target, List<TypedObject> products, String qualifier) {
        Map syncPool = new HashMap();

        if ((products == null) || (products.isEmpty())) {
            return;
        }

        boolean isCategory = ((TypedObject) products.get(0)).getObject() instanceof CategoryModel;

        SyncItemJob existingSyncJob = null;

    }

    @Override
    public int getPullSyncStatus(TypedObject paramTypedObject) {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public List<SyncItemJobModel>[] getTargetCatalogVersions(TypedObject paramTypedObject) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public CatalogVersionModel getCatalogVersionForItem(TypedObject paramTypedObject) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public Map<String, String>[] getAllSynchronizationRules(Collection paramCollection) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public boolean hasMultipleRules(Collection paramCollection) {
        // TODO Auto-generated method stub
        return false;
    }

    @Override
    public List<String> getSynchronizationStatuses(List<SyncItemJobModel> paramList, TypedObject paramTypedObject) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public void performCatalogVersionSynchronization(Collection<CatalogVersionModel> paramCollection,
            List<String> paramList, CatalogVersionModel paramCatalogVersionModel, String paramString) {
        // TODO Auto-generated method stub

    }

    @Override
    public boolean isVersionSynchronizedAtLeastOnce(List paramList) {
        // TODO Auto-generated method stub
        return false;
    }

    @Override
    public List<SyncItemJobModel>[] getSyncJobs(ItemModel paramItemModel, ObjectType paramObjectType) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public SyncContext getSyncContext(TypedObject paramTypedObject) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public SyncContext getSyncContext(TypedObject paramTypedObject, boolean paramBoolean) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public int isObjectSynchronized(TypedObject paramTypedObject) {
        // TODO Auto-generated method stub
        return 0;
    }

    public void setItemSyncTimestampDao(ItemSyncTimestampDao itemSyncTimestampDao) {
        this.itemSyncTimestampDao = itemSyncTimestampDao;
    }

    public SystemService getSystemService() {
        return systemService;
    }

    public void setSystemService(SystemService systemService) {
        this.systemService = systemService;
    }

    public ObjectValueHandlerRegistry getValueHandlerRegistry() {
        return valueHandlerRegistry;
    }

    public void setValueHandlerRegistry(ObjectValueHandlerRegistry valueHandlerRegistry) {
        this.valueHandlerRegistry = valueHandlerRegistry;
    }

    public SynchronizationServiceDao getSynchronizationServiceDao() {
        return synchronizationServiceDao;
    }

    public void setSynchronizationServiceDao(SynchronizationServiceDao synchronizationServiceDao) {
        this.synchronizationServiceDao = synchronizationServiceDao;
    }

    public Map<ObjectType, Set<PropertyDescriptor>> getRelatedProperties() {
        return relatedProperties;
    }

    public void setRelatedProperties(Map<ObjectType, Set<PropertyDescriptor>> relatedProperties) {
        this.relatedProperties = relatedProperties;
    }

    public Boolean getDisabledSearchRestrictions() {
        return disabledSearchRestrictions;
    }

    public void setDisabledSearchRestrictions(Boolean disabledSearchRestrictions) {
        this.disabledSearchRestrictions = disabledSearchRestrictions;
    }

    public ItemSyncTimestampDao getItemSyncTimestampDao() {
        return itemSyncTimestampDao;
    }

}