/* * Copyright 2010 Henry Coles * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and limitations under the License. */ package org.pitest.mutationtest.execute; import java.io.IOException; import java.io.OutputStream; import org.pitest.mutationtest.MutationStatusTestPair; import org.pitest.mutationtest.engine.MutationIdentifier; import org.pitest.util.ExitCode; import org.pitest.util.Id; import org.pitest.util.SafeDataOutputStream; public class DefaultReporter implements Reporter { private final SafeDataOutputStream w; DefaultReporter(final OutputStream w) { this.w = new SafeDataOutputStream(w); } @Override public synchronized void describe(final MutationIdentifier i) throws IOException { this.w.writeByte(Id.DESCRIBE); this.w.write(i); this.w.flush(); } @Override public synchronized void report(final MutationIdentifier i, final MutationStatusTestPair mutationDetected) throws IOException { this.w.writeByte(Id.REPORT); this.w.write(i); this.w.write(mutationDetected); this.w.flush(); } @Override public synchronized void done(final ExitCode exitCode) { this.w.writeByte(Id.DONE); this.w.writeInt(exitCode.getCode()); this.w.flush(); } }