use of org.openstreetmap.osmosis.core.domain.v0_6.Node in project grpc-java by grpc.
the class CsdsServiceTest method verifyClientConfigNode.
/**
* Assuming {@link io.grpc.xds.EnvoyProtoDataTest#convertNode} passes, perform a minimal check,
* just verify the node itself is the one we expect.
*/
private static void verifyClientConfigNode(ClientConfig clientConfig) {
Node node = clientConfig.getNode();
assertThat(node.getId()).isEqualTo(NODE_ID);
assertThat(node).isEqualTo(BOOTSTRAP_NODE.toEnvoyProtoNode());
}
use of org.openstreetmap.osmosis.core.domain.v0_6.Node in project ignite by apache.
the class GridConcurrentLinkedDequeMultiThreadedTest method testQueueMultiThreaded.
/**
* @throws Exception If failed.
*/
@Test
public void testQueueMultiThreaded() throws Exception {
final AtomicBoolean done = new AtomicBoolean();
final ConcurrentLinkedDeque8<Byte> queue = new ConcurrentLinkedDeque8<>();
// Poll thread.
IgniteInternalFuture<?> pollFut = multithreadedAsync(new Callable<Object>() {
@Nullable
@Override
public Object call() throws Exception {
info("Thread started.");
while (!done.get()) try {
queue.poll();
} catch (Throwable t) {
error("Error in poll thread.", t);
done.set(true);
}
info("Thread finished.");
return null;
}
}, 5, "queue-poll");
// Producer thread.
IgniteInternalFuture<?> prodFut = multithreadedAsync(new Callable<Object>() {
@Nullable
@Override
public Object call() throws Exception {
info("Thread started.");
while (!done.get()) {
Node<Byte> n = queue.addx((byte) 1);
if (RND.nextBoolean())
queue.unlinkx(n);
}
info("Thread finished.");
return null;
}
}, 5, "queue-prod");
Thread.sleep(20 * 1000);
done.set(true);
pollFut.get();
prodFut.get();
}
use of org.openstreetmap.osmosis.core.domain.v0_6.Node in project voltdb by VoltDB.
the class VoltDBOsmSink method process.
public void process(WayContainer wayContainer) {
Way way;
List<Long> nodeIds;
way = wayContainer.getEntity();
nodeIds = new ArrayList<Long>(way.getWayNodes().size());
for (WayNode wayNode : way.getWayNodes()) {
nodeIds.add(wayNode.getNodeId());
}
// Keep invalid ways out of the database if desired by the user
if (way.getWayNodes().size() > 1 || keepInvalidWays) {
for (Tag tag : way.getTags()) {
try {
client.callProcedure(new InsertCallback(), INS_WAY_TAGS_PROC, way.getId(), tag.getKey(), tag.getValue());
} catch (NoConnectionsException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
// Add these to the ways_nodes_table;
int sequence = 0;
for (Long nodeId : nodeIds) {
try {
client.callProcedure(new InsertCallback(), INS_WAYS_NODES_PROC, way.getId(), nodeId, sequence);
} catch (NoConnectionsException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
sequence++;
}
StringBuffer sb = new StringBuffer();
// if the first node id == the last nodeId, we know that this is a
// closed loop.
long n0 = nodeIds.get(0);
long nn = nodeIds.get(nodeIds.size() - 1);
if (n0 == nn) {
if (enableBboxBuilder) {
Polygon pg = wayGeometryBuilder.createPolygon(way);
pg.outerWKT(sb);
}
} else {
// it's a lineString, but we don't support it yet.
if (enableLinestringBuilder) {
LineString lineString = wayGeometryBuilder.createWayLinestring(way);
lineString.outerWKT(sb);
} else {
return;
}
}
String bbox = sb.toString();
try {
client.callProcedure(new InsertCallback(), INS_WAYS_PROC, way.getId(), way.getVersion(), way.getUser().getId(), way.getTimestamp(), way.getChangesetId(), bbox);
} catch (NoConnectionsException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
use of org.openstreetmap.osmosis.core.domain.v0_6.Node in project GeoGig by boundlessgeo.
the class CreateOSMChangesetOp method _call.
/**
* Executes the diff operation.
*
* @return an iterator to a set of differences between the two trees
* @see DiffEntry
*/
@Override
protected Iterator<ChangeContainer> _call() {
Iterator<DiffEntry> nodeIterator = command(DiffOp.class).setFilter(OSMUtils.NODE_TYPE_NAME).setNewVersion(newRefSpec).setOldVersion(oldRefSpec).setReportTrees(false).call();
Iterator<DiffEntry> wayIterator = command(DiffOp.class).setFilter(OSMUtils.WAY_TYPE_NAME).setNewVersion(newRefSpec).setOldVersion(oldRefSpec).setReportTrees(false).call();
Iterator<DiffEntry> iterator = Iterators.concat(nodeIterator, wayIterator);
final EntityConverter converter = new EntityConverter();
Function<DiffEntry, ChangeContainer> function = new Function<DiffEntry, ChangeContainer>() {
@Override
@Nullable
public ChangeContainer apply(@Nullable DiffEntry diff) {
NodeRef ref = diff.changeType().equals(ChangeType.REMOVED) ? diff.getOldObject() : diff.getNewObject();
RevFeature revFeature = command(RevObjectParse.class).setObjectId(ref.objectId()).call(RevFeature.class).get();
RevFeatureType revFeatureType = command(RevObjectParse.class).setObjectId(ref.getMetadataId()).call(RevFeatureType.class).get();
SimpleFeatureBuilder featureBuilder = new SimpleFeatureBuilder((SimpleFeatureType) revFeatureType.type());
ImmutableList<PropertyDescriptor> descriptors = revFeatureType.sortedDescriptors();
ImmutableList<Optional<Object>> values = revFeature.getValues();
for (int i = 0; i < descriptors.size(); i++) {
PropertyDescriptor descriptor = descriptors.get(i);
Optional<Object> value = values.get(i);
featureBuilder.set(descriptor.getName(), value.orNull());
}
SimpleFeature feature = featureBuilder.buildFeature(ref.name());
Entity entity = converter.toEntity(feature, id);
EntityContainer container;
if (entity instanceof Node) {
container = new NodeContainer((Node) entity);
} else {
container = new WayContainer((Way) entity);
}
ChangeAction action = diff.changeType().equals(ChangeType.ADDED) ? ChangeAction.Create : diff.changeType().equals(ChangeType.MODIFIED) ? ChangeAction.Modify : ChangeAction.Delete;
return new ChangeContainer(container, action);
}
};
return Iterators.transform(iterator, function);
}
use of org.openstreetmap.osmosis.core.domain.v0_6.Node in project GeoGig by boundlessgeo.
the class EntityConverter method buildNodesString.
protected String buildNodesString(List<WayNode> wayNodes) {
StringBuilder sb = new StringBuilder();
for (Iterator<WayNode> it = wayNodes.iterator(); it.hasNext(); ) {
WayNode node = it.next();
sb.append(Long.toString(node.getNodeId()));
if (it.hasNext()) {
sb.append(";");
}
}
return sb.toString();
}
Aggregations