package pl.com.bottega.documentmanagement.api; import org.springframework.stereotype.Component; import pl.com.bottega.documentmanagement.domain.Document; import pl.com.bottega.documentmanagement.domain.DocumentNumberGenerator; import pl.com.bottega.documentmanagement.domain.PrintCostCalculator; /** * Created by maciuch on 17.08.16. */ @Component public class DocumentFactory { private DocumentNumberGenerator documentNumberGenerator; private PrintCostCalculator printCostCalculator; private UserManager userManager; private DocumentListenerManager documentListenerManager; public DocumentFactory(DocumentNumberGenerator documentNumberGenerator, UserManager userManager, PrintCostCalculator printCostCalculator, DocumentListenerManager documentListenerManager) { this.documentNumberGenerator = documentNumberGenerator; this.userManager = userManager; this.printCostCalculator = printCostCalculator; this.documentListenerManager = documentListenerManager; } public Document create(String title, String content) { Document document = new Document(documentNumberGenerator.generate(), content, title, userManager.currentEmployee(), printCostCalculator); documentListenerManager.subscribeListeners(document); return document; } }