use of com.khartec.waltz.model.measurable.Measurable in project waltz by khartec.
the class MeasurableHarness method main.
public static void main(String[] args) {
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(DIConfiguration.class);
MeasurableIdSelectorFactory factory = ctx.getBean(MeasurableIdSelectorFactory.class);
MeasurableService measurableService = ctx.getBean(MeasurableService.class);
EntityReference ref = mkRef(EntityKind.FLOW_DIAGRAM, 2);
IdSelectionOptions options = mkOpts(ref, HierarchyQueryScope.EXACT);
Select<Record1<Long>> selector = factory.apply(options);
System.out.println("--selector");
System.out.println(selector);
System.out.println("---");
List<Measurable> measurables = measurableService.findByMeasurableIdSelector(options);
measurables.forEach(System.out::println);
System.out.println("-----");
measurables.stream().filter(m -> OptionalUtilities.contentsEqual(m.id(), 486L)).forEach(System.out::println);
System.out.println("-----");
}
use of com.khartec.waltz.model.measurable.Measurable in project waltz by khartec.
the class MeasurableRatingService method remove.
public Collection<MeasurableRating> remove(RemoveMeasurableRatingCommand command) {
checkNotNull(command, "command cannot be null");
Measurable measurable = measurableDao.getById(command.measurableId());
boolean success = measurableRatingDao.remove(command);
perspectiveRatingDao.cascadeRemovalOfMeasurableRating(command.entityReference(), command.measurableId());
if (success && measurable != null) {
writeChangeLogEntry(command, format("Removed: %s", measurable.name()), Operation.REMOVE);
}
return findForEntity(command.entityReference());
}
use of com.khartec.waltz.model.measurable.Measurable in project waltz by khartec.
the class MeasurableRatingService method save.
// -- HELPERS --
private Collection<MeasurableRating> save(SaveMeasurableRatingCommand command, Function<SaveMeasurableRatingCommand, Boolean> action, String messageTemplate, Operation operation) {
checkNotNull(command, "command cannot be null");
Measurable measurable = measurableDao.getById(command.measurableId());
checkNotNull(measurable, format("Unknown measurable with id: %d", command.measurableId()));
checkTrue(measurable.concrete(), "Cannot rate against an abstract measurable");
boolean success = action.apply(command);
if (success) {
writeChangeLogEntry(command, format(messageTemplate, measurable.name(), command.rating()), operation);
}
return findForEntity(command.entityReference());
}
use of com.khartec.waltz.model.measurable.Measurable in project waltz by khartec.
the class MeasurableRelationshipsGenerator method main.
public static void main(String[] args) throws IOException {
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(DIConfiguration.class);
DSLContext dsl = ctx.getBean(DSLContext.class);
MeasurableDao measurableDao = ctx.getBean(MeasurableDao.class);
List<Measurable> regions = loadMeasurablesForCategory(measurableDao, REGION_CATEGORY_EXTERNAL_ID);
List<Measurable> functions = loadMeasurablesForCategory(measurableDao, FUNCTION_CATEGORY_EXTERNAL_ID);
final int maxRelationshipCount = 50;
final int minRelationshipCount = 5;
final Random random = new Random();
List<EntityRelationshipRecord> relationshipRecords = functions.stream().flatMap(function -> {
int relationshipCount = random.nextInt(maxRelationshipCount - minRelationshipCount) + minRelationshipCount;
return IntStream.range(0, relationshipCount).mapToObj(i -> ListUtilities.randomPick(regions)).distinct().map(region -> creatRelationshipRecord(function, region, ArrayUtilities.randomPick(RelationshipKind.RELATES_TO)));
}).collect(toList());
System.out.println("Deleting existing Measurable relationships ...");
int deleteCount = dsl.deleteFrom(ENTITY_RELATIONSHIP).where(ENTITY_RELATIONSHIP.PROVENANCE.eq(PROVENANCE).and(ENTITY_RELATIONSHIP.KIND_A.eq(EntityKind.MEASURABLE.name())).and(ENTITY_RELATIONSHIP.KIND_B.eq(EntityKind.MEASURABLE.name()))).execute();
System.out.println("Deleted: " + deleteCount + " existing Measurable relationships");
System.out.println("Inserting Measurable relationships ...");
int[] insertCount = dsl.batchInsert(relationshipRecords).execute();
System.out.println("Inserted: " + insertCount.length + " Measurable relationships ...");
}
use of com.khartec.waltz.model.measurable.Measurable in project waltz by khartec.
the class SqlServerMeasurableSearch method search.
@Override
public List<Measurable> search(DSLContext dsl, String query, EntitySearchOptions options) {
List<String> terms = mkTerms(query);
if (terms.isEmpty()) {
return emptyList();
}
Condition externalIdCondition = terms.stream().map(term -> MEASURABLE.EXTERNAL_ID.like("%" + term + "%")).collect(Collectors.reducing(DSL.trueCondition(), (acc, frag) -> acc.and(frag)));
List<Measurable> measurablesViaExternalId = dsl.selectDistinct(MEASURABLE.fields()).from(MEASURABLE).where(externalIdCondition).orderBy(MEASURABLE.EXTERNAL_ID).limit(options.limit()).fetch(MeasurableDao.TO_DOMAIN_MAPPER);
Condition nameCondition = terms.stream().map(term -> MEASURABLE.NAME.like("%" + term + "%")).collect(Collectors.reducing(DSL.trueCondition(), (acc, frag) -> acc.and(frag)));
List<Measurable> measurablesViaName = dsl.selectDistinct(MEASURABLE.fields()).from(MEASURABLE).where(nameCondition).orderBy(MEASURABLE.NAME).limit(options.limit()).fetch(MeasurableDao.TO_DOMAIN_MAPPER);
List<Measurable> measurablesViaFullText = dsl.selectFrom(MEASURABLE).where(JooqUtilities.MSSQL.mkContainsPrefix(terms)).limit(options.limit()).fetch(MeasurableDao.TO_DOMAIN_MAPPER);
return new ArrayList<>(orderedUnion(measurablesViaExternalId, measurablesViaName, measurablesViaFullText));
}
Aggregations