1 16 17 package com.google.inject; 18 19 import com.google.inject.spi.Message; 20 import java.util.ArrayList ; 21 import java.util.Collection ; 22 import java.util.Collections ; 23 import java.util.Comparator ; 24 import java.util.Formatter ; 25 import java.util.List ; 26 27 34 public class CreationException extends RuntimeException { 35 36 final List <Message> errorMessages; 37 38 41 public CreationException(Collection <Message> errorMessages) { 42 super(); 43 44 this.errorMessages = new ArrayList <Message>(errorMessages); 46 Collections.sort(this.errorMessages, new Comparator <Message>() { 47 public int compare(Message a, Message b) { 48 return a.getSourceString().compareTo(b.getSourceString()); 49 } 50 }); 51 } 52 53 public String getMessage() { 54 return createErrorMessage(errorMessages); 55 } 56 57 private static String createErrorMessage(Collection <Message> errorMessages) { 58 Formatter fmt = new Formatter ().format("Guice configuration errors:%n%n"); 59 int index = 1; 60 for (Message errorMessage : errorMessages) { 61 fmt.format("%s) Error at %s:%n", index++, errorMessage.getSourceString()) 62 .format(" %s%n%n", errorMessage.getMessage()); 63 } 64 return fmt.format("%s error[s]", errorMessages.size()).toString(); 65 } 66 67 70 public Collection <Message> getErrorMessages() { 71 return Collections.unmodifiableCollection(errorMessages); 72 } 73 } 74 | Popular Tags |