1 28 29 package com.idaremedia.antx.feedback; 30 31 import java.io.PrintStream ; 32 33 import org.apache.tools.ant.types.Reference; 34 35 import com.idaremedia.antx.AntX; 36 import com.idaremedia.antx.NoiseLevel; 37 import com.idaremedia.antx.starters.EchoThingTask; 38 39 58 59 public class CheckpointTask extends EchoThingTask implements EmitConfigurable 60 { 61 64 public CheckpointTask() 65 { 66 super(AntX.feedback); 67 setThingRefId("_"); 68 } 69 70 71 76 public EmitConfiguration getDefaults() 77 { 78 return EmitContext.getConfigurationNoNull(); 79 } 80 81 82 88 public void setWith(Reference r) 89 { 90 require_(r!=null,"setWith- nonzro refid"); 91 m_withEC= r; 92 } 93 94 95 100 public final Reference getWith() 101 { 102 return m_withEC; 103 } 104 105 106 107 116 public void setIncludeSource(boolean include) 117 { 118 m_includeSource = include; 119 } 120 121 122 123 128 public final boolean willIncludeSource() 129 { 130 return m_includeSource; 131 } 132 133 134 135 142 protected synchronized EmitConfiguration getEmitHelper() 143 { 144 if (m_ECInstance!=null) { 145 return m_ECInstance; 146 } 147 if (getWith()!=null) { 148 m_ECInstance = (EmitConfiguration)getReferencedObject 149 (getProject(), getWith().getRefId(), EmitConfiguration.class); 150 } 151 else { 152 m_ECInstance = getDefaults(); 153 } 154 return m_ECInstance; 155 } 156 157 158 162 protected void echoThing() 163 { 164 final long NOW = System.currentTimeMillis(); 165 166 EmitConfiguration helper = getEmitHelper(); 167 168 String finalMsg, userMsg = getMsg(); 169 if (userMsg.length()!=0) { 170 if (willIncludeSource()) { 171 finalMsg = uistrs(). 172 get("emit.checkpoint", 173 getOwningTarget().getName(), 174 helper.stampify(NOW), 175 userMsg); 176 } else { 177 finalMsg = uistrs(). 178 get("emit.checkpoint.nosource", 179 helper.stampify(NOW), 180 userMsg); 181 } 182 } else { 183 finalMsg = helper.stampify(NOW); 184 } 185 186 if (getToFile()==null) { 187 Emit.broadcast(helper.getEmitter(), finalMsg, null, NoiseLevel.INFO); 188 } else { 189 PrintStream out = new PrintStream (getOutputStream()); 190 out.println(finalMsg); 191 out.flush(); 192 out.close(); 193 } 194 } 195 196 197 private Reference m_withEC; 198 private EmitConfiguration m_ECInstance; 199 private boolean m_includeSource=true;} 201 202 203 | Popular Tags |