/** {@inheritDoc} */ @Override public final Ignite ignite() { assert ctx != null; guard(); try { return ctx.grid(); } finally { unguard(); } }
/** {@inheritDoc} */ @Override public ClusterGroupEx forSubjectId(UUID subjId) { if (subjId == null) return this; guard(); try { return ids != null ? new ClusterGroupAdapter(ctx, subjId, ids) : new ClusterGroupAdapter(ctx, subjId, p); } finally { unguard(); } }
/** {@inheritDoc} */ @Override public final ClusterMetrics metrics() { guard(); try { if (nodes().isEmpty()) throw U.convertException(U.emptyTopologyException()); return new ClusterMetricsSnapshot(this); } finally { unguard(); } }
/** {@inheritDoc} */ @Override public final ClusterGroup forNodeIds(Collection<UUID> ids) { A.notEmpty(ids, "ids"); guard(); try { Set<UUID> nodeIds = U.newHashSet(ids.size()); for (UUID id : ids) { if (contains(id)) nodeIds.add(id); } return new ClusterGroupAdapter(ctx, subjId, nodeIds); } finally { unguard(); } }
/** * @param excludeIds Node IDs. * @return New cluster group. */ private ClusterGroup forOthers(Collection<UUID> excludeIds) { assert excludeIds != null; if (ids != null) { guard(); try { Set<UUID> nodeIds = U.newHashSet(ids.size()); for (UUID id : ids) { if (!excludeIds.contains(id)) nodeIds.add(id); } return new ClusterGroupAdapter(ctx, subjId, nodeIds); } finally { unguard(); } } else return forPredicate(new OthersFilter(excludeIds)); }
/** {@inheritDoc} */ @Override public final ClusterGroup forNodes(Collection<? extends ClusterNode> nodes) { A.notEmpty(nodes, "nodes"); guard(); try { Set<UUID> nodeIds = U.newHashSet(nodes.size()); for (ClusterNode n : nodes) if (contains(n)) nodeIds.add(n.id()); return new ClusterGroupAdapter(ctx, subjId, nodeIds); } finally { unguard(); } }
/** {@inheritDoc} */ @Override public final ClusterGroup forNodeId(UUID id, UUID... ids) { A.notNull(id, "id"); guard(); try { Set<UUID> nodeIds; if (F.isEmpty(ids)) nodeIds = contains(id) ? Collections.singleton(id) : Collections.<UUID>emptySet(); else { nodeIds = U.newHashSet(ids.length + 1); for (UUID id0 : ids) { if (contains(id)) nodeIds.add(id0); } if (contains(id)) nodeIds.add(id); } return new ClusterGroupAdapter(ctx, subjId, nodeIds); } finally { unguard(); } }
/** {@inheritDoc} */ @Override public final ClusterNode node(UUID id) { A.notNull(id, "id"); guard(); try { if (ids != null) return ids.contains(id) ? ctx.discovery().node(id) : null; else { ClusterNode node = ctx.discovery().node(id); return node != null && (p == null || p.apply(node)) ? node : null; } } finally { unguard(); } }
/** {@inheritDoc} */ @Override public final ClusterGroup forNode(ClusterNode node, ClusterNode... nodes) { A.notNull(node, "node"); guard(); try { Set<UUID> nodeIds; if (F.isEmpty(nodes)) nodeIds = contains(node) ? Collections.singleton(node.id()) : Collections.<UUID>emptySet(); else { nodeIds = U.newHashSet(nodes.length + 1); for (ClusterNode n : nodes) if (contains(n)) nodeIds.add(n.id()); if (contains(node)) nodeIds.add(node.id()); } return new ClusterGroupAdapter(ctx, subjId, nodeIds); } finally { unguard(); } }
/** {@inheritDoc} */ @Override public ClusterGroup forOthers(ClusterGroup grp) { A.notNull(grp, "grp"); if (ids != null) { guard(); try { Set<UUID> nodeIds = U.newHashSet(ids.size()); for (UUID id : ids) { ClusterNode n = node(id); if (n != null && !grp.predicate().apply(n)) nodeIds.add(id); } return new ClusterGroupAdapter(ctx, subjId, nodeIds); } finally { unguard(); } } else return forPredicate(F.not(grp.predicate())); }
/** {@inheritDoc} */ @Override public ClusterGroup forPredicate(IgnitePredicate<ClusterNode> p) { A.notNull(p, "p"); guard(); try { if (p != null) ctx.resource().injectGeneric(p); return new ClusterGroupAdapter(ctx, subjId, this.p != null ? F.and(p, this.p) : p); } catch (IgniteCheckedException e) { throw U.convertException(e); } finally { unguard(); } }
/** {@inheritDoc} */ @Override public final Ignite ignite() { assert ctx != null; guard(); try { return ctx.grid(); } finally { unguard(); } }
/** {@inheritDoc} */ @Override public ClusterGroupEx forSubjectId(UUID subjId) { if (subjId == null) return this; guard(); try { return ids != null ? new ClusterGroupAdapter(ctx, subjId, ids) : new ClusterGroupAdapter(ctx, subjId, p); } finally { unguard(); } }
/** {@inheritDoc} */ @Override public final ClusterGroup forNodeIds(Collection<UUID> ids) { A.notEmpty(ids, "ids"); guard(); try { Set<UUID> nodeIds = U.newHashSet(ids.size()); for (UUID id : ids) { if (contains(id)) nodeIds.add(id); } return new ClusterGroupAdapter(ctx, subjId, nodeIds); } finally { unguard(); } }
/** {@inheritDoc} */ @Override public final ClusterMetrics metrics() { guard(); try { if (nodes().isEmpty()) throw U.convertException(U.emptyTopologyException()); return new ClusterMetricsSnapshot(this); } finally { unguard(); } }
/** {@inheritDoc} */ @Override public final ClusterGroup forNodes(Collection<? extends ClusterNode> nodes) { A.notEmpty(nodes, "nodes"); guard(); try { Set<UUID> nodeIds = U.newHashSet(nodes.size()); for (ClusterNode n : nodes) if (contains(n)) nodeIds.add(n.id()); return new ClusterGroupAdapter(ctx, subjId, nodeIds); } finally { unguard(); } }
/** {@inheritDoc} */ @Override public final ClusterNode node(UUID id) { A.notNull(id, "id"); guard(); try { if (ids != null) return ids.contains(id) ? ctx.discovery().node(id) : null; else { ClusterNode node = ctx.discovery().node(id); return node != null && (p == null || p.apply(node)) ? node : null; } } finally { unguard(); } }
/** {@inheritDoc} */ @Override public ClusterGroup forOthers(ClusterGroup grp) { A.notNull(grp, "grp"); if (ids != null) { guard(); try { Set<UUID> nodeIds = U.newHashSet(ids.size()); for (UUID id : ids) { ClusterNode n = node(id); if (n != null && !grp.predicate().apply(n)) nodeIds.add(id); } return new ClusterGroupAdapter(ctx, subjId, nodeIds); } finally { unguard(); } } else return forPredicate(F.not(grp.predicate())); }
/** {@inheritDoc} */ @Override public ClusterGroup forPredicate(IgnitePredicate<ClusterNode> p) { A.notNull(p, "p"); guard(); try { if (p != null) ctx.resource().injectGeneric(p); return new ClusterGroupAdapter(ctx, subjId, this.p != null ? F.and(p, this.p) : p); } catch (IgniteCheckedException e) { throw U.convertException(e); } finally { unguard(); } }