public static void printWholeCompletionMessage(MigrationOptions options){ System.out.println("Migration complete."); if(options.isVerbose()) { System.out.println("Gathering information about migrated data. If in a hurry, you can ctrl+c now."); GraknTx tx = new Grakn(options.getUri()).session(options.getKeyspace()).transaction(GraknTxType.WRITE); QueryBuilder qb = tx.graql(); StringBuilder builder = new StringBuilder(); builder.append("Graph schema contains:\n"); builder.append("\t ").append(tx.admin().getMetaEntityType().instances().count()).append(" entity types\n"); builder.append("\t ").append(tx.admin().getMetaRelationType().instances().count()).append(" relation types\n"); builder.append("\t ").append(tx.admin().getMetaRole().subs().count()).append(" roles\n\n"); builder.append("\t ").append(tx.admin().getMetaAttributeType().instances().count()).append(" resource types\n"); builder.append("\t ").append(tx.admin().getMetaRule().subs().count()).append(" rules\n\n"); builder.append("Graph data contains:\n"); builder.append("\t ").append(qb.match(var("x").isa(label(ENTITY.getLabel()))).aggregate(count()).execute()).append(" entities\n"); builder.append("\t ").append(qb.match(var("x").isa(label(RELATIONSHIP.getLabel()))).aggregate(count()).execute()).append(" relations\n"); builder.append("\t ").append(qb.match(var("x").isa(label(ATTRIBUTE.getLabel()))).aggregate(count()).execute()).append(" resources\n"); builder.append("\t ").append(qb.match(var("x").isa(label(RULE.getLabel()))).aggregate(count()).execute()).append(" rules\n\n"); System.out.println(builder); tx.close(); } }
@SuppressWarnings("unchecked") private void registerDefaultAggregates() { registerAggregate("count", 0, Integer.MAX_VALUE, args -> Graql.count()); registerAggregate("sum", 1, args -> Aggregates.sum((Var) args.get(0))); registerAggregate("max", 1, args -> Aggregates.max((Var) args.get(0))); registerAggregate("min", 1, args -> Aggregates.min((Var) args.get(0))); registerAggregate("mean", 1, args -> Aggregates.mean((Var) args.get(0))); registerAggregate("median", 1, args -> Aggregates.median((Var) args.get(0))); registerAggregate("std", 1, args -> Aggregates.std((Var) args.get(0))); registerAggregate("group", 1, 2, args -> { if (args.size() < 2) { return Aggregates.group((Var) args.get(0)); } else { return Aggregates.group((Var) args.get(0), (Aggregate) args.get(1)); } }); }