List of usage examples for org.apache.commons.lang3.tuple Pair getKey
@Override public final L getKey()
Gets the key from this pair.
This method implements the Map.Entry interface returning the left element as the key.
From source file:org.deeplearning4j.clustering.cluster.ClusterSet.java
/** * * @param point// w ww . j a v a2s . c o m * @param moveClusterCenter * @return */ public PointClassification classifyPoint(Point point, boolean moveClusterCenter) { Pair<Cluster, Double> nearestCluster = nearestCluster(point); Cluster newCluster = nearestCluster.getKey(); boolean locationChange = isPointLocationChange(point, newCluster); addPointToCluster(point, newCluster, moveClusterCenter); return new PointClassification(nearestCluster.getKey(), nearestCluster.getValue(), locationChange); }
From source file:org.deeplearning4j.clustering.kdtree.KDTree.java
public List<Pair<Double, INDArray>> knn(INDArray point, double distance) { List<Pair<Double, INDArray>> best = new ArrayList<>(); knn(root, point, rect, distance, best, 0); Collections.sort(best, new Comparator<Pair<Double, INDArray>>() { @Override/*from w ww . ja va 2 s.co m*/ public int compare(Pair<Double, INDArray> o1, Pair<Double, INDArray> o2) { return Double.compare(o1.getKey(), o2.getKey()); } }); return best; }
From source file:org.deeplearning4j.clustering.kdtree.KDTree.java
private Pair<Double, INDArray> nn(KDNode node, INDArray point, HyperRect rect, double dist, INDArray best, int _disc) { if (node == null || rect.minDistance(point) > dist) return Pair.of(Double.POSITIVE_INFINITY, null); int _discNext = (_disc + 1) % dims; double dist2 = Nd4j.getExecutioner().execAndReturn(new EuclideanDistance(point)).getFinalResult() .doubleValue();//from w w w. j a v a 2s. c om if (dist2 < dist) { best = node.getPoint(); dist = dist2; } HyperRect lower = rect.getLower(node.point, _disc); HyperRect upper = rect.getUpper(node.point, _disc); if (point.getDouble(_disc) < node.point.getDouble(_disc)) { Pair<Double, INDArray> left = nn(node.getLeft(), point, lower, dist, best, _discNext); Pair<Double, INDArray> right = nn(node.getRight(), point, upper, dist, best, _discNext); if (left.getKey() < dist) return left; else if (right.getKey() < dist) return right; } else { Pair<Double, INDArray> left = nn(node.getRight(), point, upper, dist, best, _discNext); Pair<Double, INDArray> right = nn(node.getLeft(), point, lower, dist, best, _discNext); if (left.getKey() < dist) return left; else if (right.getKey() < dist) return right; } return Pair.of(dist, best); }
From source file:org.deeplearning4j.clustering.kdtree.KDTree.java
private KDNode delete(KDNode delete, int _disc) { if (delete.getLeft() != null && delete.getRight() != null) { if (delete.getParent() != null) { if (delete.getParent().getLeft() == delete) delete.getParent().setLeft(null); else//from w ww. ja v a 2 s . c o m delete.getParent().setRight(null); } return null; } int disc = _disc; _disc = (_disc + 1) % dims; Pair<KDNode, Integer> qd = null; if (delete.getRight() != null) { qd = min(delete.getRight(), disc, _disc); } else if (delete.getLeft() != null) qd = max(delete.getLeft(), disc, _disc); delete.point = qd.getKey().point; KDNode qFather = qd.getKey().getParent(); if (qFather.getLeft() == qd.getKey()) { qFather.setLeft(delete(qd.getKey(), disc)); } else if (qFather.getRight() == qd.getKey()) { qFather.setRight(delete(qd.getKey(), disc)); } return delete; }
From source file:org.deeplearning4j.clustering.kdtree.KDTree.java
private Pair<KDNode, Integer> max(KDNode node, int disc, int _disc) { int discNext = (_disc + 1) % dims; if (_disc == disc) { KDNode child = node.getLeft();/* w w w . j a v a 2 s.c o m*/ if (child != null) { return max(child, disc, discNext); } } else if (node.getLeft() != null || node.getRight() != null) { Pair<KDNode, Integer> left = null, right = null; if (node.getLeft() != null) left = max(node.getLeft(), disc, discNext); if (node.getRight() != null) right = max(node.getRight(), disc, discNext); if (left != null && right != null) { double pointLeft = left.getKey().getPoint().getDouble(disc); double pointRight = right.getKey().getPoint().getDouble(disc); if (pointLeft > pointRight) return left; else return right; } else if (left != null) return left; else return right; } return Pair.of(node, _disc); }
From source file:org.deeplearning4j.clustering.kdtree.KDTree.java
private Pair<KDNode, Integer> min(KDNode node, int disc, int _disc) { int discNext = (_disc + 1) % dims; if (_disc == disc) { KDNode child = node.getLeft();//from w w w . j a v a2 s . c om if (child != null) { return min(child, disc, discNext); } } else if (node.getLeft() != null || node.getRight() != null) { Pair<KDNode, Integer> left = null, right = null; if (node.getLeft() != null) left = min(node.getLeft(), disc, discNext); if (node.getRight() != null) right = min(node.getRight(), disc, discNext); if (left != null && right != null) { double pointLeft = left.getKey().getPoint().getDouble(disc); double pointRight = right.getKey().getPoint().getDouble(disc); if (pointLeft < pointRight) return left; else return right; } else if (left != null) return left; else return right; } return Pair.of(node, _disc); }
From source file:org.deeplearning4j.clustering.kdtree.KDTreeTest.java
@Test public void testNN() { int n = 10;/* w ww .java 2 s . c om*/ // make a KD-tree of dimension {#n} KDTree kdTree = new KDTree(n); for (int i = -1; i < n; i++) { // Insert a unit vector along each dimension List<Double> vec = new ArrayList<>(n); // i = -1 ensures the origin is in the Tree for (int k = 0; k < n; k++) { vec.add((k == i) ? 1.0 : 0.0); } INDArray indVec = Nd4j.create(Nd4j.createBuffer(Doubles.toArray(vec))); kdTree.insert(indVec); } Random rand = new Random(); // random point in the Hypercube List<Double> pt = new ArrayList(n); for (int k = 0; k < n; k++) { pt.add(rand.nextDouble()); } Pair<Double, INDArray> result = kdTree.nn(Nd4j.create(Nd4j.createBuffer(Doubles.toArray(pt)))); // Always true for points in the unitary hypercube assertTrue(result.getKey() < Double.MAX_VALUE); }
From source file:org.esigate.Driver.java
/** * Perform rendering on a single url content, and append result to "writer". Automatically follows redirects * //ww w .j a va 2 s .c o m * @param pageUrl * Address of the page containing the template * @param incomingRequest * originating request object * @param renderers * the renderers to use in order to transform the output * @return The resulting response * @throws IOException * If an IOException occurs while writing to the writer * @throws HttpErrorPage * If an Exception occurs while retrieving the template */ public CloseableHttpResponse render(String pageUrl, IncomingRequest incomingRequest, Renderer... renderers) throws IOException, HttpErrorPage { DriverRequest driverRequest = new DriverRequest(incomingRequest, this, pageUrl); // Replace ESI variables in URL // TODO: should be performed in the ESI extension String resultingPageUrl = VariablesResolver.replaceAllVariables(pageUrl, driverRequest); String targetUrl = ResourceUtils.getHttpUrlWithQueryString(resultingPageUrl, driverRequest, false); String currentValue; CloseableHttpResponse response; // Retrieve URL // Get from cache to prevent multiple request to the same url if // multiple fragments are used. String cacheKey = CACHE_RESPONSE_PREFIX + targetUrl; Pair<String, CloseableHttpResponse> cachedValue = incomingRequest.getAttribute(cacheKey); // content and response were not in cache if (cachedValue == null) { OutgoingRequest outgoingRequest = requestExecutor.createOutgoingRequest(driverRequest, targetUrl, false); headerManager.copyHeaders(driverRequest, outgoingRequest); response = requestExecutor.execute(outgoingRequest); int redirects = MAX_REDIRECTS; try { while (redirects > 0 && redirectStrategy.isRedirected(outgoingRequest, response, outgoingRequest.getContext())) { redirects--; outgoingRequest = requestExecutor.createOutgoingRequest(driverRequest, redirectStrategy .getLocationURI(outgoingRequest, response, outgoingRequest.getContext()).toString(), false); headerManager.copyHeaders(driverRequest, outgoingRequest); response = requestExecutor.execute(outgoingRequest); } } catch (ProtocolException e) { throw new HttpErrorPage(HttpStatus.SC_BAD_GATEWAY, "Invalid response from server", e); } response = headerManager.copyHeaders(outgoingRequest, incomingRequest, response); currentValue = HttpResponseUtils.toString(response, this.eventManager); // Cache cachedValue = new ImmutablePair<String, CloseableHttpResponse>(currentValue, response); incomingRequest.setAttribute(cacheKey, cachedValue); } currentValue = cachedValue.getKey(); response = cachedValue.getValue(); logAction("render", pageUrl, renderers); // Apply renderers currentValue = performRendering(pageUrl, driverRequest, response, currentValue, renderers); response.setEntity(new StringEntity(currentValue, HttpResponseUtils.getContentType(response))); return response; }
From source file:org.forgerock.openidm.security.impl.CertificateResourceProvider.java
@Override public void createDefaultEntry(String alias) throws Exception { Pair<X509Certificate, PrivateKey> pair = generateCertificate("local.openidm.forgerock.org", "OpenIDM Self-Signed Certificate", "None", "None", "None", "None", DEFAULT_ALGORITHM, DEFAULT_KEY_SIZE, DEFAULT_SIGNATURE_ALGORITHM, null, null); Certificate cert = pair.getKey(); store.getStore().setCertificateEntry(alias, cert); store.store();//from w ww .j av a2 s . c o m }
From source file:org.forgerock.openidm.security.impl.KeystoreResourceProvider.java
@Override public Promise<ActionResponse, ResourceException> actionInstance(Context context, ActionRequest request) { try {//www .j a v a2 s. c om String alias = request.getContent().get("alias").asString(); if (ACTION_GENERATE_CERT.equalsIgnoreCase(request.getAction()) || ACTION_GENERATE_CSR.equalsIgnoreCase(request.getAction())) { if (alias == null) { return new BadRequestException("A valid resource ID must be specified in the request") .asPromise(); } String algorithm = request.getContent().get("algorithm").defaultTo(DEFAULT_ALGORITHM).asString(); String signatureAlgorithm = request.getContent().get("signatureAlgorithm") .defaultTo(DEFAULT_SIGNATURE_ALGORITHM).asString(); int keySize = request.getContent().get("keySize").defaultTo(DEFAULT_KEY_SIZE).asInteger(); JsonValue result = null; if (ACTION_GENERATE_CERT.equalsIgnoreCase(request.getAction())) { // Generate self-signed certificate if (store.getStore().containsAlias(alias)) { return new ConflictException("The resource with ID '" + alias + "' could not be created because there is already another resource with the same ID") .asPromise(); } else { logger.info("Generating a new self-signed certificate with the alias {}", alias); String domainName = request.getContent().get("domainName").required().asString(); String validFrom = request.getContent().get("validFrom").asString(); String validTo = request.getContent().get("validTo").asString(); // Generate the cert Pair<X509Certificate, PrivateKey> pair = generateCertificate(domainName, algorithm, keySize, signatureAlgorithm, validFrom, validTo); Certificate cert = pair.getKey(); PrivateKey key = pair.getValue(); // Add it to the store and reload logger.debug("Adding certificate entry under the alias {}", alias); store.getStore().setEntry(alias, new KeyStore.PrivateKeyEntry(key, new Certificate[] { cert }), new KeyStore.PasswordProtection(store.getPassword().toCharArray())); store.store(); manager.reload(); // Save the store to the repo (if clustered) saveStore(); result = returnCertificate(alias, cert); if (request.getContent().get("returnPrivateKey").defaultTo(false).asBoolean()) { result.put("privateKey", getKeyMap(key)); } } } else { // Generate CSR Pair<PKCS10CertificationRequest, PrivateKey> csr = generateCSR(alias, algorithm, signatureAlgorithm, keySize, request.getContent()); result = returnCertificateRequest(alias, csr.getKey()); if (request.getContent().get("returnPrivateKey").defaultTo(false).asBoolean()) { result.put("privateKey", getKeyMap(csr.getRight())); } } return Responses.newActionResponse(result).asPromise(); } else { return new BadRequestException("Unsupported action " + request.getAction()).asPromise(); } } catch (JsonValueException e) { return new BadRequestException(e.getMessage(), e).asPromise(); } catch (Exception e) { return new InternalServerErrorException(e).asPromise(); } }