List of usage examples for org.apache.commons.lang3.tuple Triple getLeft
public abstract L getLeft();
Gets the left element from this triple.
From source file:org.apache.syncope.client.console.panels.DashboardOverviewPanel.java
public DashboardOverviewPanel(final String id) { super(id);/* ww w . ja v a2 s. c o m*/ NumbersInfo numbers = restClient.numbers(); WebMarkupContainer container = new WebMarkupContainer("container"); container.setOutputMarkupId(true); add(container); totalUsers = new NumberWidget("totalUsers", "bg-yellow", numbers.getTotalUsers(), getString("users"), "ion ion-person"); container.add(totalUsers); totalGroups = new NumberWidget("totalGroups", "bg-red", numbers.getTotalGroups(), getString("groups"), "ion ion-person-stalker"); container.add(totalGroups); Triple<Integer, String, String> built = buildTotalAny1OrRoles(numbers); totalAny1OrRoles = new NumberWidget("totalAny1OrRoles", "bg-green", built.getLeft(), built.getMiddle(), built.getRight()); container.add(totalAny1OrRoles); built = buildTotalAny2OrResources(numbers); totalAny2OrResources = new NumberWidget("totalAny2OrResources", "bg-aqua", built.getLeft(), built.getMiddle(), built.getRight()); container.add(totalAny2OrResources); usersByStatus = new UsersByStatusWidget("usersByStatus", numbers.getUsersByStatus()); container.add(usersByStatus); completeness = new CompletenessWidget("completeness", numbers.getConfCompleteness()); container.add(completeness); anyByRealm = new AnyByRealmWidget("anyByRealm", numbers.getUsersByRealm(), numbers.getGroupsByRealm(), numbers.getAnyType1(), numbers.getAny1ByRealm(), numbers.getAnyType2(), numbers.getAny2ByRealm()); container.add(anyByRealm); load = new LoadWidget("load", restClient.system()); container.add(load); container.add(new IndicatorAjaxTimerBehavior(Duration.seconds(60)) { private static final long serialVersionUID = -4426283634345968585L; @Override protected void onTimer(final AjaxRequestTarget target) { NumbersInfo numbers = restClient.numbers(); if (totalUsers.refresh(numbers.getTotalUsers())) { target.add(totalUsers); } if (totalGroups.refresh(numbers.getTotalGroups())) { target.add(totalGroups); } Triple<Integer, String, String> updatedBuild = buildTotalAny1OrRoles(numbers); if (totalAny1OrRoles.refresh(updatedBuild.getLeft())) { target.add(totalAny1OrRoles); } updatedBuild = buildTotalAny2OrResources(numbers); if (totalAny2OrResources.refresh(updatedBuild.getLeft())) { target.add(totalAny2OrResources); } if (usersByStatus.refresh(numbers.getUsersByStatus())) { target.add(usersByStatus); } if (completeness.refresh(numbers.getConfCompleteness())) { target.add(completeness); } if (anyByRealm.refresh(numbers.getUsersByRealm(), numbers.getGroupsByRealm(), numbers.getAnyType1(), numbers.getAny1ByRealm(), numbers.getAnyType2(), numbers.getAny2ByRealm())) { target.add(anyByRealm); } load.refresh(restClient.system()); target.add(load); } }); }
From source file:org.apache.syncope.core.logic.AbstractJobLogic.java
protected List<JobTO> doListJobs() { List<JobTO> jobTOs = new ArrayList<>(); try {/*from w ww. ja v a2 s . co m*/ for (JobKey jobKey : scheduler.getScheduler() .getJobKeys(GroupMatcher.jobGroupEquals(Scheduler.DEFAULT_GROUP))) { JobTO jobTO = new JobTO(); Triple<JobType, String, String> reference = getReference(jobKey); if (reference != null) { jobTOs.add(jobTO); jobTO.setType(reference.getLeft()); jobTO.setRefKey(reference.getMiddle()); jobTO.setRefDesc(reference.getRight()); List<? extends Trigger> jobTriggers = scheduler.getScheduler().getTriggersOfJob(jobKey); if (jobTriggers.isEmpty()) { jobTO.setScheduled(false); } else { jobTO.setScheduled(true); jobTO.setStart(jobTriggers.get(0).getStartTime()); } jobTO.setRunning(jobManager.isRunning(jobKey)); } } } catch (SchedulerException e) { LOG.debug("Problems while retrieving scheduled jobs", e); } return jobTOs; }
From source file:org.apache.syncope.core.logic.ResourceLogic.java
@PreAuthorize("hasRole('" + StandardEntitlement.RESOURCE_GET_CONNOBJECT + "')") @Transactional(readOnly = true)/*from w ww . j av a 2 s . c o m*/ public ConnObjectTO readConnObject(final String key, final String anyTypeKey, final String anyKey) { Triple<ExternalResource, AnyType, Provision> init = connObjectInit(key, anyTypeKey); // 1. find any Any<?> any = init.getMiddle().getKind() == AnyTypeKind.USER ? userDAO.find(anyKey) : init.getMiddle().getKind() == AnyTypeKind.ANY_OBJECT ? anyObjectDAO.find(anyKey) : groupDAO.find(anyKey); if (any == null) { throw new NotFoundException(init.getMiddle() + " " + anyKey); } // 2. build connObjectKeyItem Optional<MappingItem> connObjectKeyItem = MappingUtils.getConnObjectKeyItem(init.getRight()); if (!connObjectKeyItem.isPresent()) { throw new NotFoundException( "ConnObjectKey mapping for " + init.getMiddle() + " " + anyKey + " on resource '" + key + "'"); } Optional<String> connObjectKeyValue = mappingManager.getConnObjectKeyValue(any, init.getRight()); // 3. determine attributes to query Set<MappingItem> linkinMappingItems = virSchemaDAO.findByProvision(init.getRight()).stream() .map(virSchema -> virSchema.asLinkingMappingItem()).collect(Collectors.toSet()); Iterator<MappingItem> mapItems = new IteratorChain<>(init.getRight().getMapping().getItems().iterator(), linkinMappingItems.iterator()); // 4. read from the underlying connector Connector connector = connFactory.getConnector(init.getLeft()); ConnectorObject connectorObject = connector.getObject(init.getRight().getObjectClass(), AttributeBuilder.build(connObjectKeyItem.get().getExtAttrName(), connObjectKeyValue.get()), MappingUtils.buildOperationOptions(mapItems)); if (connectorObject == null) { throw new NotFoundException("Object " + connObjectKeyValue.get() + " with class " + init.getRight().getObjectClass() + " not found on resource " + key); } // 5. build result Set<Attribute> attributes = connectorObject.getAttributes(); if (AttributeUtil.find(Uid.NAME, attributes) == null) { attributes.add(connectorObject.getUid()); } if (AttributeUtil.find(Name.NAME, attributes) == null) { attributes.add(connectorObject.getName()); } return ConnObjectUtils.getConnObjectTO(connectorObject); }
From source file:org.apache.syncope.core.logic.ResourceLogic.java
@PreAuthorize("hasRole('" + StandardEntitlement.RESOURCE_LIST_CONNOBJECT + "')") @Transactional(readOnly = true)/*from w ww . j a v a 2s. c o m*/ public Pair<SearchResult, List<ConnObjectTO>> listConnObjects(final String key, final String anyTypeKey, final int size, final String pagedResultsCookie, final List<OrderByClause> orderBy) { ExternalResource resource; ObjectClass objectClass; OperationOptions options; if (SyncopeConstants.REALM_ANYTYPE.equals(anyTypeKey)) { resource = resourceDAO.authFind(key); if (resource == null) { throw new NotFoundException("Resource '" + key + "'"); } if (resource.getOrgUnit() == null) { throw new NotFoundException("Realm provisioning for resource '" + key + "'"); } objectClass = resource.getOrgUnit().getObjectClass(); options = MappingUtils.buildOperationOptions( MappingUtils.getPropagationItems(resource.getOrgUnit().getItems()).iterator()); } else { Triple<ExternalResource, AnyType, Provision> init = connObjectInit(key, anyTypeKey); resource = init.getLeft(); objectClass = init.getRight().getObjectClass(); init.getRight().getMapping().getItems(); Set<MappingItem> linkinMappingItems = virSchemaDAO.findByProvision(init.getRight()).stream() .map(virSchema -> virSchema.asLinkingMappingItem()).collect(Collectors.toSet()); Iterator<MappingItem> mapItems = new IteratorChain<>(init.getRight().getMapping().getItems().iterator(), linkinMappingItems.iterator()); options = MappingUtils.buildOperationOptions(mapItems); } final List<ConnObjectTO> connObjects = new ArrayList<>(); SearchResult searchResult = connFactory.getConnector(resource).search(objectClass, null, new ResultsHandler() { private int count; @Override public boolean handle(final ConnectorObject connectorObject) { connObjects.add(ConnObjectUtils.getConnObjectTO(connectorObject)); // safety protection against uncontrolled result size count++; return count < size; } }, size, pagedResultsCookie, orderBy, options); return ImmutablePair.of(searchResult, connObjects); }
From source file:org.apache.syncope.core.persistence.jpa.dao.ElasticsearchAnySearchDAO.java
private QueryBuilder getQueryBuilder(final AnyCond cond, final AnyTypeKind kind) { Triple<PlainSchema, PlainAttrValue, AnyCond> checked; try {//from ww w .j ava2s. c om checked = check(cond, kind); } catch (IllegalArgumentException e) { return EMPTY_QUERY_BUILDER; } return fillAttrQuery(checked.getLeft(), checked.getMiddle(), checked.getRight()); }
From source file:org.apache.syncope.core.persistence.jpa.dao.JPAAnySearchDAO.java
private String getQuery(final AnyCond cond, final boolean not, final List<Object> parameters, final SearchSupport svs) { Triple<PlainSchema, PlainAttrValue, AnyCond> checked; try {//w w w . ja v a 2 s. com checked = check(cond, svs.anyTypeKind); } catch (IllegalArgumentException e) { return EMPTY_QUERY; } StringBuilder query = new StringBuilder("SELECT DISTINCT any_id FROM ").append(svs.field().name) .append(" WHERE "); fillAttrQuery(query, checked.getMiddle(), checked.getLeft(), checked.getRight(), not, parameters, svs); return query.toString(); }
From source file:org.apache.syncope.core.provisioning.java.data.AccessTokenDataBinderImpl.java
@Override public Pair<String, Date> create(final String subject, final Map<String, Object> claims, final byte[] authorities, final boolean replaceExisting) { String body = null;// ww w . jav a 2 s. co m Date expiryTime = null; AccessToken existing = accessTokenDAO.findByOwner(subject); if (existing != null) { body = existing.getBody(); expiryTime = existing.getExpiryTime(); } if (replaceExisting || body == null) { Triple<String, String, Date> created = generateJWT(subject, confDAO.find("jwt.lifetime.minutes", 120L), claims); body = created.getMiddle(); expiryTime = created.getRight(); AccessToken accessToken = entityFactory.newEntity(AccessToken.class); accessToken.setKey(created.getLeft()); accessToken.setBody(body); accessToken.setExpiryTime(expiryTime); accessToken.setOwner(subject); if (!adminUser.equals(accessToken.getOwner())) { accessToken.setAuthorities(authorities); } accessTokenDAO.save(accessToken); } if (replaceExisting && existing != null) { accessTokenDAO.delete(existing); } return Pair.of(body, expiryTime); }
From source file:org.apache.zeppelin.notebook.ParagraphTest.java
@Test public void testCursorPosition() { Paragraph paragraph = spy(new Paragraph()); // left = buffer, middle = cursor position into source code, right = cursor position after parse List<Triple<String, Integer, Integer>> dataSet = Arrays.asList(Triple.of("%jdbc schema.", 13, 7), Triple.of(" %jdbc schema.", 16, 7), Triple.of(" \n%jdbc schema.", 15, 7), Triple.of("%jdbc schema.table. ", 19, 13), Triple.of("%jdbc schema.\n\n", 13, 7), Triple.of(" %jdbc schema.tab\n\n", 18, 10), Triple.of(" \n%jdbc schema.\n \n", 16, 7), Triple.of(" \n%jdbc schema.\n \n", 16, 7), Triple.of(" \n%jdbc\n\n schema\n \n", 17, 6), Triple.of("%another\n\n schema.", 18, 7), Triple.of("\n\n schema.", 10, 7), Triple.of("schema.", 7, 7), Triple.of("schema. \n", 7, 7), Triple.of(" \n %jdbc", 11, 0), Triple.of("\n %jdbc", 9, 0), Triple.of("%jdbc \n schema", 16, 6), Triple.of("%jdbc \n \n schema", 20, 6)); for (Triple<String, Integer, Integer> data : dataSet) { paragraph.setText(data.getLeft()); Integer actual = paragraph.calculateCursorPosition(data.getLeft(), data.getMiddle()); assertEquals(data.getRight(), actual); }/*from w ww. j a va2s . c om*/ }
From source file:org.dllearner.algorithms.qtl.operations.lgg.AbstractLGGGenerator.java
protected RDFResourceTree computeLGG(RDFResourceTree tree1, RDFResourceTree tree2, boolean learnFilters) { subCalls++;//w ww .j a v a2 s. c o m // 1. compare the root nodes // a) if both root nodes have same URI or literal value, just return one of the two trees as LGG if ((tree1.isResourceNode() || tree1.isLiteralValueNode()) && tree1.getData().equals(tree2.getData())) { logger.trace("Early termination. Tree 1 {} and tree 2 {} describe the same resource.", tree1, tree2); return tree1; } // b) handle literal nodes if (tree1.isLiteralNode() && tree2.isLiteralNode()) { return processLiteralNodes(tree1, tree2); } // c) handle class nodes if (tree1.isClassNode()) { return processClassNodes(tree1, tree2); } // d) else create new empty tree RDFResourceTree lgg = new RDFResourceTree(); // 2. compare the edges // we only have to compare edges which are // a) contained in both trees // b) related via subsumption, i.e. p1 p2 // get edges of tree 2 connected via subsumption Set<Triple<Node, Node, Node>> relatedEdges = getRelatedEdges(tree1, tree2); for (Triple<Node, Node, Node> entry : relatedEdges) { if (stop || isTimeout()) { complete = false; break; } Node edge1 = entry.getLeft(); Node edge2 = entry.getMiddle(); Node lcs = entry.getRight(); Set<RDFResourceTree> addedChildren = new HashSet<>(); // loop over children of first tree for (RDFResourceTree child1 : tree1.getChildren(edge1)) {//System.out.println("c1:" + child1); if (stop || isTimeout()) { complete = false; break; } // loop over children of second tree for (RDFResourceTree child2 : tree2.getChildren(edge2)) {//System.out.println("c2:" + child2); if (stop || isTimeout()) { complete = false; break; } RDFResourceTree lggChild = computeLGG(child1, child2, learnFilters); // check if there was already a more specific child computed before // and if so don't add the current one boolean add = true; for (Iterator<RDFResourceTree> it = addedChildren.iterator(); it.hasNext();) { RDFResourceTree addedChild = it.next(); if (isSubTreeOf(addedChild, lggChild)) { // logger.trace("Skipped adding: Previously added child {} is subsumed by {}.", // addedChild.getStringRepresentation(), // lggChild.getStringRepresentation()); add = false; break; } else if (isSubTreeOf(lggChild, addedChild)) { // logger.trace("Removing child node: {} is subsumed by previously added child {}.", // lggChild.getStringRepresentation(), // addedChild.getStringRepresentation()); lgg.removeChild(addedChild, lgg.getEdgeToChild(addedChild)); it.remove(); } } if (add) { lgg.addChild(lggChild, lcs); addedChildren.add(lggChild); // logger.trace("Adding child {}", lggChild.getStringRepresentation()); } } } } return lgg; }
From source file:org.dllearner.algorithms.qtl.operations.lgg.AbstractLGGGenerator.java
protected RDFResourceTree processClassNodes(RDFResourceTree tree1, RDFResourceTree tree2) { RDFResourceTree lgg = new RDFResourceTree(); Set<Triple<Node, Node, Node>> relatedEdges = getRelatedEdges(tree1, tree2); for (Triple<Node, Node, Node> entry : relatedEdges) { if (stop || isTimeout()) { complete = false;/*from w w w. j a v a 2s . c o m*/ break; } Node edge1 = entry.getLeft(); Node edge2 = entry.getMiddle(); Node lcs = entry.getRight(); Set<RDFResourceTree> addedChildren = new HashSet<>(); // loop over children of first tree for (RDFResourceTree child1 : tree1.getChildren(edge1)) {//System.out.println("c1:" + child1); if (stop || isTimeout()) { complete = false; break; } // loop over children of second tree for (RDFResourceTree child2 : tree2.getChildren(edge2)) {//System.out.println("c2:" + child2); if (stop || isTimeout()) { complete = false; break; } RDFResourceTree lggChild = computeLGG(child1, child2, false); // check if there was already a more specific child computed before // and if so don't add the current one boolean add = true; for (Iterator<RDFResourceTree> it = addedChildren.iterator(); it.hasNext();) { RDFResourceTree addedChild = it.next(); if (isSubTreeOf(addedChild, lggChild)) { // logger.trace("Skipped adding: Previously added child {} is subsumed by {}.", // addedChild.getStringRepresentation(), // lggChild.getStringRepresentation()); add = false; break; } else if (isSubTreeOf(lggChild, addedChild)) { // logger.trace("Removing child node: {} is subsumed by previously added child {}.", // lggChild.getStringRepresentation(), // addedChild.getStringRepresentation()); lgg.removeChild(addedChild, lgg.getEdgeToChild(addedChild)); it.remove(); } } if (add) { lgg.addChild(lggChild, lcs); addedChildren.add(lggChild); // logger.trace("Adding child {}", lggChild.getStringRepresentation()); } } } } return lgg; }