@Override public <G extends Customer> CreateResponse<G> createOrRetrieveCopyInstance( MultiTenantCopyContext context) throws CloneNotSupportedException { CreateResponse<G> createResponse = context.createOrRetrieveCopyInstance(this); if (createResponse.isAlreadyPopulated()) { return createResponse; } Customer cloned = createResponse.getClone(); cloned.setAnonymous(anonymous); cloned.setChallengeAnswer(challengeAnswer); cloned.setChallengeQuestion(challengeQuestion); cloned.setCookied(cookied); for (CustomerAddress entry : customerAddresses) { CustomerAddress clonedEntry = entry.createOrRetrieveCopyInstance(context).getClone(); clonedEntry.setCustomer(cloned); cloned.getCustomerAddresses().add(clonedEntry); } for (Map.Entry<String, CustomerAttribute> entry : customerAttributes.entrySet()) { CustomerAttribute clonedEntry = entry.getValue().createOrRetrieveCopyInstance(context).getClone(); clonedEntry.setCustomer(cloned); cloned.getCustomerAttributes().put(entry.getKey(), clonedEntry); } cloned.setLoggedIn(loggedIn); cloned.setUsername(username); cloned.setUnencodedPassword(unencodedPassword); cloned.setTaxExemptionCode(taxExemptionCode); cloned.setUnencodedChallengeAnswer(unencodedChallengeAnswer); cloned.setRegistered(registered); cloned.setReceiveEmail(receiveEmail); cloned.setPasswordChangeRequired(passwordChangeRequired); cloned.setPassword(password); cloned.setLastName(lastName); cloned.setFirstName(firstName); cloned.setEmailAddress(emailAddress); cloned.setDeactivated(deactivated); for (CustomerPayment entry : customerPayments) { CustomerPayment clonedEntry = entry.createOrRetrieveCopyInstance(context).getClone(); clonedEntry.setCustomer(cloned); cloned.getCustomerPayments().add(clonedEntry); } for (CustomerPhone entry : customerPhones) { CustomerPhone clonedEntry = entry.createOrRetrieveCopyInstance(context).getClone(); clonedEntry.setCustomer(cloned); cloned.getCustomerPhones().add(clonedEntry); } return createResponse; }
@Override public <G extends SkuBundleItem> CreateResponse<G> createOrRetrieveCopyInstance( MultiTenantCopyContext context) throws CloneNotSupportedException { CreateResponse<G> createResponse = context.createOrRetrieveCopyInstance(this); if (createResponse.isAlreadyPopulated()) { return createResponse; } SkuBundleItem cloned = createResponse.getClone(); cloned.setQuantity(quantity); cloned.setSalePrice(getSalePrice()); if (sku != null) { cloned.setSku(sku.createOrRetrieveCopyInstance(context).getClone()); } if (bundle != null) { cloned.setBundle((ProductBundle) bundle.createOrRetrieveCopyInstance(context).getClone()); } return createResponse; }
@Override public <G extends StructuredContentFieldXref> CreateResponse<G> createOrRetrieveCopyInstance( MultiTenantCopyContext context) throws CloneNotSupportedException { CreateResponse<G> createResponse = context.createOrRetrieveCopyInstance(this); if (createResponse.isAlreadyPopulated()) { return createResponse; } StructuredContentFieldXref cloned = createResponse.getClone(); cloned.setKey(key); if (structuredContent != null) { cloned.setStructuredContent( structuredContent.createOrRetrieveCopyInstance(context).getClone()); } if (structuredContentField != null) { CreateResponse<StructuredContentField> clonedFieldRsp = structuredContentField.createOrRetrieveCopyInstance(context); cloned.setStrucuturedContentField(clonedFieldRsp.getClone()); } return createResponse; }