/** * Returns the class in which this mutation is located * * @return class in which mutation is located */ public ClassName getClassName() { return this.id.getClassName(); }
/** * Returns the ClassLine in which this mutation is located * * @return the ClassLine in which this mutation is located */ public ClassLine getClassLine() { return new ClassLine(this.id.getClassName(), this.lineNumber); }
@Override public Mutant getMutation(final MutationIdentifier id) { final ClassContext context = new ClassContext(); context.setTargetMutation(Optional.ofNullable(id)); final Optional<byte[]> bytes = this.byteSource.getBytes(id.getClassName() .asJavaName()); final ClassReader reader = new ClassReader(bytes.get()); final ClassWriter w = new ComputeClassWriter(this.byteSource, this.computeCache, FrameOptions.pickFlags(bytes.get())); final MutatingClassVisitor mca = new MutatingClassVisitor(w, context, filterMethods(), FCollection.filter(this.mutators, isMutatorFor(id))); reader.accept(mca, ClassReader.EXPAND_FRAMES); final List<MutationDetails> details = context.getMutationDetails(context .getTargetMutation().get()); return new Mutant(details.get(0), w.toByteArray()); }
/** * Returns the class in which this mutation is located * * @return class in which mutation is located */ public ClassName getClassName() { return this.id.getClassName(); }
/** * Returns the ClassLine in which this mutation is located * * @return the ClassLine in which this mutation is located */ public ClassLine getClassLine() { return new ClassLine(this.id.getClassName(), this.lineNumber); }
private byte[] createMutant(MutationIdentifier mID) { Optional<byte[]> bytes = byteSource.getBytes(mID.getClassName().asJavaName()); //So does the original PIT ClassReader reader = new ClassReader(bytes.get()); ClassWriter writer = new ClassWriter(ClassWriter.COMPUTE_MAXS | ClassWriter.COMPUTE_FRAMES); MutationClassAdapter adapter = new MutationClassAdapter(mID, writer); reader.accept(adapter, 0); return writer.toByteArray(); }
@Override public Mutant getMutation(final MutationIdentifier id) { final ClassContext context = new ClassContext(); context.setTargetMutation(Optional.ofNullable(id)); final Optional<byte[]> bytes = this.byteSource.getBytes(id.getClassName() .asJavaName()); final ClassReader reader = new ClassReader(bytes.get()); final ClassWriter w = new ComputeClassWriter(this.byteSource, this.computeCache, FrameOptions.pickFlags(bytes.get())); final MutatingClassVisitor mca = new MutatingClassVisitor(w, context, filterMethods(), FCollection.filter(this.mutators, isMutatorFor(id))); reader.accept(mca, ClassReader.EXPAND_FRAMES); final List<MutationDetails> details = context.getMutationDetails(context .getTargetMutation().get()); return new Mutant(details.get(0), w.toByteArray()); }