Package org.lilyproject.repository.api

Examples of org.lilyproject.repository.api.FieldType


    }

    @Override
    public FieldType createOrUpdateFieldType(FieldType fieldType) throws RepositoryException, InterruptedException {
        try {
            FieldType newFieldType = converter.convert(lilyProxy.createOrUpdateFieldType(converter.convert(fieldType)), this);
            updateFieldTypeCache(newFieldType);
            return newFieldType;
        } catch (AvroRepositoryException e) {
            throw converter.convert(e);
        } catch (AvroGenericException e) {
View Full Code Here


    @Override
    public FieldType updateFieldType(FieldType fieldType) throws RepositoryException, InterruptedException {

        try {
            FieldType newFieldType = converter.convert(lilyProxy.updateFieldType(converter.convert(fieldType)), this);
            updateFieldTypeCache(newFieldType);
            return newFieldType;
        } catch (AvroRepositoryException e) {
            throw converter.convert(e);
        } catch (AvroGenericException e) {
View Full Code Here

            throws InterruptedException, RepositoryException {

        Map<SchemaId, Long> vtags = new HashMap<SchemaId, Long>();

        for (Map.Entry<SchemaId, Object> field : record.getFieldsById().entrySet()) {
            FieldType fieldType;
            try {
                fieldType = typeManager.getFieldTypeById(field.getKey());
            } catch (FieldTypeNotFoundException e) {
                // A field whose field type does not exist: skip it
                continue;
            }

            if (VersionTag.isVersionTag(fieldType)) {
                vtags.put(fieldType.getId(), (Long) field.getValue());
            }
        }

        vtags.put(getLastVTag(), record.getVersion() == null ? 0 : record.getVersion());
View Full Code Here

        for (Scope scope : Scope.values()) {
            result.put(scope, new HashSet<FieldType>());
        }

        for (SchemaId fieldId : fieldIds) {
            FieldType fieldType;
            try {
                fieldType = typeManager.getFieldTypeById(fieldId);
            } catch (FieldTypeNotFoundException e) {
                // A field whose field type does not exist: skip it
                continue;
            }
            if (fieldFilter.accept(fieldType)) {
                result.get(fieldType.getScope()).add(fieldType);
            }
        }

        return result;
    }
View Full Code Here

    @Test
    public void testRecordRecreateFromVersionedToNonVersioned() throws Exception {
        QName vfield = new QName("recreate", "vfield");
        QName nvfield = new QName("recreate", "nvfield");

        FieldType vfieldtype = typeManager.newFieldType(typeManager.getValueType("STRING"), vfield, Scope.VERSIONED);
        vfieldtype = typeManager.createFieldType(vfieldtype);

        FieldType nvfieldtype =
                typeManager.newFieldType(typeManager.getValueType("STRING"), nvfield, Scope.NON_VERSIONED);
        nvfieldtype = typeManager.createFieldType(nvfieldtype);

        RecordType rt = typeManager.newRecordType(new QName("reinc", "rt"));
        rt.addFieldTypeEntry(vfieldtype.getId(), false);
        rt.addFieldTypeEntry(nvfieldtype.getId(), false);
        rt = typeManager.createRecordType(rt);

        // Create a record with versions
        RecordId recordId = repository.getIdGenerator().newRecordId();
        Record record = repository.newRecord(recordId);
View Full Code Here

    @Test
    public void testRecordRecreateNonVersionedOnly() throws Exception {
        QName nvfield = new QName("recreate", "OnlyNonVersioned");

        FieldType nvfieldtype =
                typeManager.newFieldType(typeManager.getValueType("STRING"), nvfield, Scope.NON_VERSIONED);
        nvfieldtype = typeManager.createFieldType(nvfieldtype);

        QName rtName = new QName("recreate", "rtOnlyNonVersioned");
        RecordType rt = typeManager.newRecordType(rtName);
        rt.addFieldTypeEntry(nvfieldtype.getId(), false);
        rt = typeManager.createRecordType(rt);

        // Create a record with versions
        RecordId recordId = repository.getIdGenerator().newRecordId();
        Record record = repository.newRecord(recordId);
View Full Code Here

        assertNull(record);
    }

    @Test
    public void testRecordWithLinkFields() throws Exception {
        FieldType linkFieldType = typeManager.createFieldType(typeManager
                .newFieldType(typeManager.getValueType("LINK"), new QName("testRecordWithLinkFields", "linkFieldType"),
                        Scope.NON_VERSIONED));

        RecordType recordTypeWithLink = typeManager.newRecordType(new QName(namespace, "recordTypeWithLink"));
        recordTypeWithLink.addFieldTypeEntry(typeManager.newFieldTypeEntry(linkFieldType.getId(), false));
        recordTypeWithLink = typeManager.createRecordType(recordTypeWithLink);

        // Create records to link to
        Record record = createDefaultRecord();
        Record record2 = createDefaultRecord();

        // Create record with link to record
        Record recordWithLinks = repository.newRecord();
        recordWithLinks.setRecordType(recordTypeWithLink.getName());
        Link link = Link.newBuilder().recordId(record.getId()).copyAll(false).create();
        recordWithLinks.setField(linkFieldType.getName(), link);
        recordWithLinks = repository.create(recordWithLinks);

        // Validate link is created
        link = (Link) recordWithLinks.getField(linkFieldType.getName());
        assertEquals(record.getId(), link.getMasterRecordId());

        // Read record again and validate link is there
        recordWithLinks = repository.read(recordWithLinks.getId());
        link = (Link) recordWithLinks.getField(linkFieldType.getName());
        assertEquals(record.getId(), link.getMasterRecordId());

        // Update record with link to record2
        recordWithLinks = repository.newRecord(recordWithLinks.getId());
        link = Link.newBuilder().recordId(record2.getId()).copyAll(false).create();
        recordWithLinks.setField(linkFieldType.getName(), link);
        recordWithLinks = repository.update(recordWithLinks);

        // Validate link is updated
        link = (Link) recordWithLinks.getField(linkFieldType.getName());
        assertEquals(record2.getId(), link.getMasterRecordId());

        // Read record and validate link is still updated
        recordWithLinks = repository.read(recordWithLinks.getId());
        link = (Link) recordWithLinks.getField(linkFieldType.getName());
        assertEquals(record2.getId(), link.getMasterRecordId());
    }
View Full Code Here

        QName ft1Name = new QName(namespace, "ft1");
        QName ft2Name = new QName(namespace, "ft2");
        QName ft3Name = new QName(namespace, "ft3");
        typeManager.recordTypeBuilder().name(rvtRTName).field(fieldType1.getId(), false).create();
        ValueType rvt = typeManager.getValueType("RECORD<" + rvtRTName.toString() + ">");
        FieldType ft1 = typeManager.createFieldType(typeManager.newFieldType(rvt, ft1Name, Scope.NON_VERSIONED));
        FieldType ft2 = typeManager.createFieldType(typeManager.newFieldType(rvt, ft2Name, Scope.VERSIONED));
        FieldType ft3 = typeManager.createFieldType(typeManager.newFieldType(rvt, ft3Name, Scope.VERSIONED_MUTABLE));
        typeManager.recordTypeBuilder().name(rtName).field(ft1.getId(), false).field(ft2.getId(), false)
                .field(ft3.getId(), false).create();

        Record ft1Value1 = repository.recordBuilder().field(fieldType1.getName(), "ft1abc").build();
        Record ft1Value2 = repository.recordBuilder().field(fieldType1.getName(), "ft1def").build();
        Record ft2Value1 = repository.recordBuilder().field(fieldType1.getName(), "ft2abc").build();
        Record ft2Value2 = repository.recordBuilder().field(fieldType1.getName(), "ft2def").build();
View Full Code Here

        QName ft1Name = new QName(namespace, "ft1");
        QName ft2Name = new QName(namespace, "ft2");

        typeManager.recordTypeBuilder().name(rvtRTName).field(fieldType1.getId(), false).create();
        ValueType rvt = typeManager.getValueType("RECORD");
        FieldType ft1 = typeManager.createFieldType(typeManager.newFieldType(rvt, ft1Name, Scope.NON_VERSIONED));
        FieldType ft2 = typeManager.createFieldType(typeManager.newFieldType(rvt, ft2Name, Scope.VERSIONED));
        typeManager.recordTypeBuilder().name(rtName).field(ft1.getId(), false).field(ft2.getId(), false).create();

        Record ft1Value1 = repository.recordBuilder().recordType(rvtRTName).field(fieldType1.getName(), "ft1abc")
                .build();

        // Create nested record
View Full Code Here

        }
    }

    @Test
    public void testByteArrayValueType() throws Exception {
        FieldType byteArrayValueType = typeManager.createFieldType("BYTEARRAY", new QName("testByteArrayValueType",
                "field1"), Scope.NON_VERSIONED);
        RecordType recordType = typeManager.recordTypeBuilder().defaultNamespace("testByteArrayValueType")
                .name("recordType1")
                .field(byteArrayValueType.getId(), false).create();
        Record record = repository.recordBuilder().defaultNamespace("testByteArrayValueType").recordType("recordType1")
                .field("field1", new ByteArray(Bytes.toBytes("some bytes"))).create();
        Record readRecord = repository.read(record.getId());
        ByteArray readValue = readRecord.getField(new QName("testByteArrayValueType", "field1"));
        assertEquals("some bytes", Bytes.toString(readValue.getBytesUnsafe()));
View Full Code Here

TOP

Related Classes of org.lilyproject.repository.api.FieldType

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.