package edu.asu.spring.quadriga.domain.factory.impl.dictionary; import org.springframework.stereotype.Service; import edu.asu.spring.quadriga.domain.dictionary.IDictionary; import edu.asu.spring.quadriga.domain.factory.dictionary.IDictionaryFactory; import edu.asu.spring.quadriga.domain.impl.dictionary.Dictionary; import edu.asu.spring.quadriga.exceptions.QuadrigaStorageException; /** * Factory class for creating {@link Dictionary}. * * @author Lohith Dwaraka * */ @Service public class DictionaryFactory implements IDictionaryFactory { @Override public IDictionary createDictionaryObject() { return new Dictionary(); } @Override public IDictionary cloneDictionaryObject(IDictionary dictionary) throws QuadrigaStorageException { IDictionary clone = createDictionaryObject(); clone.setDictionaryId(dictionary.getDictionaryId()); clone.setDictionaryName(dictionary.getDictionaryName()); clone.setDescription(dictionary.getDescription()); clone.setOwner(dictionary.getOwner()); try { clone.setDictionaryCollaborators(dictionary.getDictionaryCollaborators()); clone.setDictionaryItems(dictionary.getDictionaryItems()); clone.setDictionaryProjects(dictionary.getDictionaryProjects()); clone.setDictionaryWorkspaces(dictionary.getDictionaryWorkspaces()); } catch(QuadrigaStorageException ex) { throw new QuadrigaStorageException(); } clone.setCreatedBy(dictionary.getCreatedBy()); clone.setCreatedDate(dictionary.getCreatedDate()); clone.setUpdatedBy(dictionary.getUpdatedBy()); clone.setUpdatedDate(dictionary.getUpdatedDate()); return clone; } }