package com.revolsys.geometry.cs.parallel;
import com.revolsys.geometry.model.Geometry;
import com.revolsys.geometry.model.GeometryFactory;
import com.revolsys.parallel.channel.Channel;
import com.revolsys.parallel.process.BaseInOutProcess;
import com.revolsys.record.Record;
public class GeometryProjection extends BaseInOutProcess<Record, Record> {
private GeometryFactory geometryFactory;
public GeometryFactory getGeometryFactory() {
return this.geometryFactory;
}
@Override
protected void process(final Channel<Record> in, final Channel<Record> out, final Record object) {
final Geometry geometry = object.getGeometry();
if (geometry != null) {
final Geometry projectedGeometry = geometry.newGeometry(this.geometryFactory);
if (geometry != projectedGeometry) {
object.setGeometryValue(projectedGeometry);
}
}
out.write(object);
}
public void setGeometryFactory(final GeometryFactory geometryFactory) {
this.geometryFactory = geometryFactory;
}
}