001    package org.codehaus.groovy.control.messages;
002    
003    import java.io.PrintWriter;
004    
005    import org.codehaus.groovy.control.Janitor;
006    import org.codehaus.groovy.control.ProcessingUnit;
007    import org.codehaus.groovy.control.SourceUnit;
008    
009    
010    
011    /**
012     *  A base class for compilation messages.
013     *
014     *  @author <a href="mailto:cpoirier@dreaming.org">Chris Poirier</a>
015     *
016     *  @version $Id: SimpleMessage.java,v 1.2 2005/06/09 19:51:59 blackdrag Exp $
017     */
018    
019    public class SimpleMessage extends Message
020    {
021        protected String message;  // Message text
022        protected Object data;     // Data, when the message text is an I18N identifier
023        protected ProcessingUnit owner;
024        
025        public SimpleMessage( String message, ProcessingUnit source ) 
026        {
027            this( message, null, source );
028        }
029        
030        public SimpleMessage( String message, Object data, ProcessingUnit source )
031        {
032            this.message = message;
033            this.data    = null;
034            this.owner = source;
035        }
036        
037        
038        public void write( PrintWriter writer, Janitor janitor )
039        {
040            if( owner instanceof SourceUnit )
041            {
042                String name = ((SourceUnit)owner).getName();
043                writer.println( "" + name + ": " + message );
044            }
045            else
046            {
047                writer.println( message );
048            }
049        }
050        
051        
052        public String getMessage()
053        {
054            return message;
055        }
056        
057    }
058    
059    
060    
061