Package org.lilyproject.repository.api.filter

Examples of org.lilyproject.repository.api.filter.RecordVariantFilter


        final ArrayList<Record> result = new ArrayList<Record>();

        final RecordScan scan = new RecordScan();
        scan.setStartRecordId(newDep.id.getMaster());
        scan.setRecordFilter(new RecordVariantFilter(newDep.id.getMaster(), varProps));
        LRepository repository = indexUpdateBuilder.getRepository();
        LTable table = repository.getTable(indexUpdateBuilder.getTable());
        final IdRecordScanner scanner = table.getScannerWithIds(scan);
        IdRecord next;
        while ((next = scanner.next()) != null) {
View Full Code Here


        final Iterator<Map.Entry<String, JsonNode>> fields = variantPropertiesNode.getFields();
        while (fields.hasNext()) {
            final Map.Entry<String, JsonNode> next = fields.next();
            variantProperties.put(next.getKey(), next.getValue().getTextValue());
        }
        return new RecordVariantFilter(repository.getIdGenerator().fromString(recordId), variantProperties);
    }
View Full Code Here

        if (!(uncastFilter instanceof RecordVariantFilter)) {
            return null;
        }

        final RecordVariantFilter filter = (RecordVariantFilter) uncastFilter;

        if (filter.getMasterRecordId() == null) {
            throw new IllegalArgumentException("Record ID should be specified in RecordVariantFilter");
        }

        if (filter.getVariantProperties() == null) {
            throw new IllegalArgumentException("VariantProperties should be specified in RecordVariantFilter");
        }

        return new FilterList(Arrays.<Filter>asList(
                new PrefixFilter(filter.getMasterRecordId().getMaster().toBytes()),
                new LilyRecordVariantFilter(filter.getVariantProperties())));

    }
View Full Code Here

                .create();

        {
            // master scan
            final RecordScan scan = new RecordScan();
            scan.setRecordFilter(new RecordVariantFilter(master, new HashMap<String, String>()));
            RecordScanner scanner = repository.getScanner(scan);
            assertEquals(master, scanner.next().getId());
            assertNull(scanner.next());
            scanner.close();
        }

        {
            // variant scan
            final HashMap<String, String> variantProperties = new HashMap<String, String>();
            variantProperties.put("foo", null);
            variantProperties.put("bar", null);

            final RecordScan scan = new RecordScan();
            scan.setRecordFilter(new RecordVariantFilter(variant.getMaster(), variantProperties));
            RecordScanner scanner = repository.getScanner(scan);
            assertNull(scanner.next()); // it doesn't match anything
            scanner.close();
        }

        {
            // variant scan for something completely different
            final HashMap<String, String> variantProperties = new HashMap<String, String>();
            variantProperties.put("key1", null);
            variantProperties.put("key2", null);

            final RecordScan scan = new RecordScan();
            scan.setRecordFilter(new RecordVariantFilter(variant.getMaster(), variantProperties));
            RecordScanner scanner = repository.getScanner(scan);
            assertEquals(variant, scanner.next().getId());
            assertEquals(variantWithOtherValues, scanner.next().getId());
            assertNull(scanner.next()); // it doesn't match the extendedVariant!
            scanner.close();
        }

        {
            // extended variant scan
            final HashMap<String, String> variantProperties = new HashMap<String, String>();
            variantProperties.put("key1", null);
            variantProperties.put("key2", null);
            variantProperties.put("key3", null);

            final RecordScan scan = new RecordScan();
            scan.setRecordFilter(
                    new RecordVariantFilter(extendedVariant.getMaster(), variantProperties));
            RecordScanner scanner = repository.getScanner(scan);
            assertEquals(extendedVariant, scanner.next().getId());
            assertNull(scanner.next());
            scanner.close();
        }
View Full Code Here

            final HashMap<String, String> variantProperties = new HashMap<String, String>();
            variantProperties.put("key1", "value1");
            variantProperties.put("key2", "value2");

            final RecordScan scan = new RecordScan();
            scan.setRecordFilter(new RecordVariantFilter(variant.getMaster(), variantProperties));
            RecordScanner scanner = repository.getScanner(scan);
            assertEquals(variant, scanner.next().getId());
            assertNull(scanner.next()); // it doesn't match the other variants
            scanner.close();
        }

        {
            // variant scan with specific value for key2 only
            final HashMap<String, String> variantProperties = new HashMap<String, String>();
            variantProperties.put("key1", null);
            variantProperties.put("key2", "value2");

            final RecordScan scan = new RecordScan();
            scan.setRecordFilter(new RecordVariantFilter(variant.getMaster(), variantProperties));
            RecordScanner scanner = repository.getScanner(scan);
            assertEquals(variant, scanner.next().getId());
            assertEquals(variantWithOtherValues, scanner.next().getId()); // has same value for key2
            assertNull(scanner.next()); // it doesn't match the other variants
            scanner.close();
        }

        {
            // variant scan with specific value for key1 only
            final HashMap<String, String> variantProperties = new HashMap<String, String>();
            variantProperties.put("key1", "value1");
            variantProperties.put("key2", null);

            final RecordScan scan = new RecordScan();
            scan.setRecordFilter(new RecordVariantFilter(variant.getMaster(), variantProperties));
            RecordScanner scanner = repository.getScanner(scan);
            assertEquals(variant, scanner.next().getId());
            assertNull(scanner.next()); // it doesn't match the other variants
            scanner.close();
        }
View Full Code Here

        variantProperties.put("branch", null);

        RecordId recordId = idGenerator.newRecordId("foo");

        RecordScan scan = new RecordScan();
        scan.setRecordFilter(new RecordVariantFilter(recordId, variantProperties));

        byte[] data = scanToBytes(scan);
        RecordScan parsedScan = scanFromBytes(data);

        assertNotNull(parsedScan.getRecordFilter());
View Full Code Here

TOP

Related Classes of org.lilyproject.repository.api.filter.RecordVariantFilter

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.