@Override public <G extends OfferInfo> CreateResponse<G> createOrRetrieveCopyInstance(MultiTenantCopyContext context) throws CloneNotSupportedException { CreateResponse<G> createResponse = context.createOrRetrieveCopyInstance(this); if (createResponse.isAlreadyPopulated()) { return createResponse; } OfferInfo cloned = createResponse.getClone(); for(Map.Entry<String,String> entry : fieldValues.entrySet()) { cloned.getFieldValues().put(entry.getKey(),entry.getValue()); } return createResponse; } }
protected <T> T performCopy(final MultiTenantCopyContext context, final MultiTenantCloneable<T> entity, Map<String, String> copyHints, final EntityDuplicateModifier... modifiers) throws Exception { context.getCopyHints().putAll(copyHints); context.setForDuplicate(true); persistCopyObjectTree(new CopyOperation<T, CloneNotSupportedException>() { @Override public T execute(T original) throws CloneNotSupportedException { T response = entity.createOrRetrieveCopyInstance(context).getClone(); for (EntityDuplicateModifier modifier : modifiers) { modifier.modifyInitialDuplicateState(response); } return response; } }, (Class<T>) entity.getClass(), (T) entity, context); return context.getClonedVersion((Class<T>) entity.getClass(), genericEntityService.getIdentifier(entity)); } }
protected void tearDownContext(BroadleafRequestContext context) { context.setCurrentCatalog(getFromCatalog()); context.setCurrentProfile(getFromSite()); context.setSite(getFromSite()); }
protected <G> CreateResponse<G> handleStandardEntity(Object instance, BroadleafRequestContext context, Class<?> instanceClass) throws CloneNotSupportedException { CreateResponse<G> createResponse; Long originalId = getIdentifier(instance); Object previousClone = getPreviousClone(instanceClass, originalId); G response; boolean alreadyPopulate; if (previousClone != null) { response = (G) previousClone; alreadyPopulate = true; } else { boolean shouldClone = checkCloneStatus(instance); if (!shouldClone) { response = (G) instance; alreadyPopulate = true; } else { alreadyPopulate = false; response = performCopy(instance, instanceClass, originalId); } } createResponse = new CreateResponse<G>(response, alreadyPopulate); return createResponse; }
@Override public <G extends Translation> CreateResponse<G> createOrRetrieveCopyInstance(MultiTenantCopyContext context) throws CloneNotSupportedException { CreateResponse<G> createResponse = context.createOrRetrieveCopyInstance(this); if (createResponse.isAlreadyPopulated()) { return createResponse; } Translation cloned = createResponse.getClone(); //this assumes that TranslationImpl copying occurs last after all other entity copying Object referenceClone; try { referenceClone = context.getPreviousClone(Class.forName(getEntityType().getType()), Long.parseLong(entityId)); } catch (ClassNotFoundException e) { throw ExceptionHelper.refineException(e); } String convertedId = entityId; if (referenceClone != null) { convertedId = String.valueOf(context.getIdentifier(referenceClone)); } cloned.setEntityId(convertedId); cloned.setFieldName(fieldName); cloned.setLocaleCode(localeCode); cloned.setTranslatedValue(translatedValue); cloned.setEntityType(getEntityType()); return createResponse; }
@Override public <G extends Offer> CreateResponse<G> createOrRetrieveCopyInstance(MultiTenantCopyContext context) throws CloneNotSupportedException { CreateResponse<G> createResponse = context.createOrRetrieveCopyInstance(this); if (createResponse.isAlreadyPopulated()) { return createResponse; cloned.setTotalitarianOffer(totalitarianOffer); cloned.setType(getType()); if (!BooleanUtils.toBoolean(context.getCopyHints().get(EXCLUDE_OFFERCODE_COPY_HINT))) { for (OfferCode entry : offerCodes) { OfferCode clonedEntry = entry.createOrRetrieveCopyInstance(context).getClone();
try { Site currentSite = BroadleafRequestContext.getBroadleafRequestContext().getNonPersistentSite(); MultiTenantCopyContext context = new MultiTenantCopyContext(null, null, currentSite, currentSite, genericEntityService, mtCopierExtensionManager); if (extensionManager != null) { ExtensionResultHolder<MultiTenantCopyContext> contextResponse = new ExtensionResultHolder<MultiTenantCopyContext>();
public <G extends LegacyOfferUses> CreateResponse<G> createOrRetrieveCopyInstance(MultiTenantCopyContext context) throws CloneNotSupportedException { CreateResponse<G> createResponse = context.createOrRetrieveCopyInstance(this); LegacyOfferUses clone = createResponse.getClone(); clone.setUses(uses); return createResponse; } }
@Override public void copyEntities(MultiTenantCopyContext context) throws Exception { Site fromSite = context.getFromSite(); Catalog fromCatalog = context.getFromCatalog(); copyEntitiesOfType(MenuImpl.class, fromSite, fromCatalog, context); }
@Override public <G extends StructuredContentRule> CreateResponse<G> createOrRetrieveCopyInstance(MultiTenantCopyContext context) throws CloneNotSupportedException { CreateResponse<G> createResponse = context.createOrRetrieveCopyInstance(this); if (createResponse.isAlreadyPopulated()) { return createResponse; } StructuredContentRule cloned = createResponse.getClone(); cloned.setMatchRule(matchRule); return createResponse; } }
@Override public <G extends OfferRule> CreateResponse<G> createOrRetrieveCopyInstance(MultiTenantCopyContext context) throws CloneNotSupportedException { CreateResponse<G> createResponse = context.createOrRetrieveCopyInstance(this); if (createResponse.isAlreadyPopulated()) { return createResponse; } OfferRule cloned = createResponse.getClone(); cloned.setMatchRule(matchRule); return createResponse; } }
@Override public <G extends PageRule> CreateResponse<G> createOrRetrieveCopyInstance(MultiTenantCopyContext context) throws CloneNotSupportedException { CreateResponse<G> createResponse = context.createOrRetrieveCopyInstance(this); if (createResponse.isAlreadyPopulated()) { return createResponse; } PageRule cloned = createResponse.getClone(); cloned.setMatchRule(matchRule); return createResponse; } }
@Override public <G extends StaticAssetDescription> CreateResponse<G> createOrRetrieveCopyInstance(MultiTenantCopyContext context) throws CloneNotSupportedException { CreateResponse<G> createResponse = context.createOrRetrieveCopyInstance(this); if (createResponse.isAlreadyPopulated()) { return createResponse; } StaticAssetDescription cloned = createResponse.getClone(); cloned.setDescription(description); cloned.setLongDescription(longDescription); return createResponse; } }
@Override public <G extends OfferItemCriteria> CreateResponse<G> createOrRetrieveCopyInstance(MultiTenantCopyContext context) throws CloneNotSupportedException { CreateResponse<G> createResponse = context.createOrRetrieveCopyInstance(this); if (createResponse.isAlreadyPopulated()) { return createResponse; } OfferItemCriteria cloned = createResponse.getClone(); cloned.setQuantity(quantity); cloned.setMatchRule(orderItemMatchRule); return createResponse; } }
@Override public <G extends Weight> CreateResponse<G> createOrRetrieveCopyInstance(MultiTenantCopyContext context) throws CloneNotSupportedException { CreateResponse<G> createResponse = context.createOrRetrieveCopyInstance(this); Weight clone = createResponse.getClone(); clone.setWeight(weight); if (weightUnitOfMeasure != null) { clone.setWeightUnitOfMeasure(getWeightUnitOfMeasure()); } return createResponse; }
@Override public <G extends CustomerPayment> CreateResponse<G> createOrRetrieveCopyInstance(MultiTenantCopyContext context) throws CloneNotSupportedException { CreateResponse<G> createResponse = context.createOrRetrieveCopyInstance(this); if (createResponse.isAlreadyPopulated()) { return createResponse; } CustomerPayment cloned = createResponse.getClone(); // dont clone cloned.setCustomer(customer); cloned.setBillingAddress(billingAddress.createOrRetrieveCopyInstance(context).getClone()); cloned.setIsDefault(isDefault); cloned.setPaymentToken(paymentToken); for (Map.Entry<String, String> entry : additionalFields.entrySet()) { cloned.getAdditionalFields().put(entry.getKey(), entry.getValue()); } return createResponse; }
@Override public <G extends RequiredFacet> CreateResponse<G> createOrRetrieveCopyInstance(MultiTenantCopyContext context) throws CloneNotSupportedException { CreateResponse<G> createResponse = context.createOrRetrieveCopyInstance(this); if (createResponse.isAlreadyPopulated()) { return createResponse; } RequiredFacet cloned = createResponse.getClone(); if (requiredFacet != null) { cloned.setRequiredFacet(requiredFacet); } if (searchFacet != null) { cloned.setSearchFacet(searchFacet); } return createResponse; } }
@Override public <G extends StructuredContentFieldTemplate> CreateResponse<G> createOrRetrieveCopyInstance(MultiTenantCopyContext context) throws CloneNotSupportedException { CreateResponse<G> createResponse = context.createOrRetrieveCopyInstance(this); if (createResponse.isAlreadyPopulated()) { return createResponse; } StructuredContentFieldTemplate cloned = createResponse.getClone(); cloned.setName(name); for (StructuredContentFieldGroupXref entry : fieldGroupXrefs) { CreateResponse<StructuredContentFieldGroupXref> clonedGroupRsp = entry.createOrRetrieveCopyInstance(context); cloned.getFieldGroupXrefs().add(clonedGroupRsp.getClone()); } return createResponse; }
@Override public <G extends StructuredContentFieldGroupXref> CreateResponse<G> createOrRetrieveCopyInstance(MultiTenantCopyContext context) throws CloneNotSupportedException { CreateResponse<G> createResponse = context.createOrRetrieveCopyInstance(this); if (createResponse.isAlreadyPopulated()) { return createResponse; } StructuredContentFieldGroupXref cloned = createResponse.getClone(); cloned.setGroupOrder(groupOrder); cloned.setTemplate(template); cloned.setFieldGroup(fieldGroup); return createResponse; }
@Override public <G extends StructuredContentField> CreateResponse<G> createOrRetrieveCopyInstance(MultiTenantCopyContext context) throws CloneNotSupportedException { CreateResponse<G> createResponse = context.createOrRetrieveCopyInstance(this); if (createResponse.isAlreadyPopulated()) { return createResponse; } StructuredContentField cloned = createResponse.getClone(); cloned.setFieldKey(fieldKey); cloned.setValue(this.getValue()); return createResponse; } }