Search in sources :

Example 1 with SerializableEObjectDescription

use of org.eclipse.xtext.resource.persistence.SerializableEObjectDescription in project xtext-core by eclipse.

the class SerializableResourceDescriptionTest method testSerialization.

@Test
public void testSerialization() {
    try {
        final URI uri = URI.createURI("file:/foo/bar.baz.foo");
        SerializableResourceDescription _serializableResourceDescription = new SerializableResourceDescription();
        final Procedure1<SerializableResourceDescription> _function = (SerializableResourceDescription it) -> {
            it.setURI(uri);
            SerializableReferenceDescription _serializableReferenceDescription = new SerializableReferenceDescription();
            final Procedure1<SerializableReferenceDescription> _function_1 = (SerializableReferenceDescription it_1) -> {
                it_1.setSourceEObjectUri(uri.appendFragment("foo"));
                it_1.setTargetEObjectUri(uri.appendFragment("hubble"));
                it_1.setContainerEObjectURI(uri.appendFragment("baz"));
                it_1.setEReference(EcorePackage.eINSTANCE.getEAnnotation_Contents());
                it_1.setIndexInList(1);
            };
            SerializableReferenceDescription _doubleArrow = ObjectExtensions.<SerializableReferenceDescription>operator_doubleArrow(_serializableReferenceDescription, _function_1);
            SerializableReferenceDescription _serializableReferenceDescription_1 = new SerializableReferenceDescription();
            final Procedure1<SerializableReferenceDescription> _function_2 = (SerializableReferenceDescription it_1) -> {
                it_1.setSourceEObjectUri(uri.appendFragment("foo2"));
                it_1.setTargetEObjectUri(uri.appendFragment("hubble2"));
                it_1.setContainerEObjectURI(uri.appendFragment("baz2"));
                it_1.setEReference(EcorePackage.eINSTANCE.getEAnnotation_Contents());
                it_1.setIndexInList(2);
            };
            SerializableReferenceDescription _doubleArrow_1 = ObjectExtensions.<SerializableReferenceDescription>operator_doubleArrow(_serializableReferenceDescription_1, _function_2);
            it.setReferences(Collections.<SerializableReferenceDescription>unmodifiableList(CollectionLiterals.<SerializableReferenceDescription>newArrayList(_doubleArrow, _doubleArrow_1)));
            SerializableEObjectDescription _serializableEObjectDescription = new SerializableEObjectDescription();
            final Procedure1<SerializableEObjectDescription> _function_3 = (SerializableEObjectDescription it_1) -> {
                it_1.setEObjectURI(uri.appendFragment("baz"));
                it_1.qualifiedName = QualifiedName.create("foo", "baz");
                it_1.setEClass(EcorePackage.eINSTANCE.getEAttribute());
                Pair<String, String> _mappedTo = Pair.<String, String>of("myKey", "myValue");
                it_1.userData = CollectionLiterals.<String, String>newHashMap(_mappedTo);
            };
            SerializableEObjectDescription _doubleArrow_2 = ObjectExtensions.<SerializableEObjectDescription>operator_doubleArrow(_serializableEObjectDescription, _function_3);
            it.setDescriptions(Collections.<SerializableEObjectDescription>unmodifiableList(CollectionLiterals.<SerializableEObjectDescription>newArrayList(_doubleArrow_2)));
            QualifiedName _create = QualifiedName.create("foo");
            QualifiedName _create_1 = QualifiedName.create("foo", "bar");
            it.setImportedNames(Collections.<QualifiedName>unmodifiableList(CollectionLiterals.<QualifiedName>newArrayList(_create, _create_1)));
        };
        final SerializableResourceDescription before = ObjectExtensions.<SerializableResourceDescription>operator_doubleArrow(_serializableResourceDescription, _function);
        final ByteArrayOutputStream bout = new ByteArrayOutputStream();
        final ObjectOutputStream objectOut = new ObjectOutputStream(bout);
        objectOut.writeObject(before);
        byte[] _byteArray = bout.toByteArray();
        ByteArrayInputStream _byteArrayInputStream = new ByteArrayInputStream(_byteArray);
        final ObjectInputStream in = new ObjectInputStream(_byteArrayInputStream);
        Object _readObject = in.readObject();
        final SerializableResourceDescription after = ((SerializableResourceDescription) _readObject);
        this.assertDescriptionsEqual(before, after);
    } catch (Throwable _e) {
        throw Exceptions.sneakyThrow(_e);
    }
}
Also used : SerializableReferenceDescription(org.eclipse.xtext.resource.persistence.SerializableReferenceDescription) QualifiedName(org.eclipse.xtext.naming.QualifiedName) ByteArrayOutputStream(java.io.ByteArrayOutputStream) ObjectOutputStream(java.io.ObjectOutputStream) URI(org.eclipse.emf.common.util.URI) SerializableEObjectDescription(org.eclipse.xtext.resource.persistence.SerializableEObjectDescription) ByteArrayInputStream(java.io.ByteArrayInputStream) Procedure1(org.eclipse.xtext.xbase.lib.Procedures.Procedure1) SerializableResourceDescription(org.eclipse.xtext.resource.persistence.SerializableResourceDescription) ObjectInputStream(java.io.ObjectInputStream) Test(org.junit.Test)

Example 2 with SerializableEObjectDescription

use of org.eclipse.xtext.resource.persistence.SerializableEObjectDescription in project xtext-core by eclipse.

the class SerializableResourceDescription method createCopy.

private static SerializableEObjectDescription createCopy(final IEObjectDescription desc) {
    if ((desc instanceof SerializableEObjectDescriptionProvider)) {
        return ((SerializableEObjectDescriptionProvider) desc).toSerializableEObjectDescription();
    }
    SerializableEObjectDescription _serializableEObjectDescription = new SerializableEObjectDescription();
    final Procedure1<SerializableEObjectDescription> _function = (SerializableEObjectDescription it) -> {
        it.setEClass(desc.getEClass());
        it.setEObjectURI(desc.getEObjectURI());
        it.qualifiedName = desc.getQualifiedName();
        int _size = ((List<String>) Conversions.doWrapArray(desc.getUserDataKeys())).size();
        HashMap<String, String> _hashMap = new HashMap<String, String>(_size);
        it.userData = _hashMap;
        String[] _userDataKeys = desc.getUserDataKeys();
        for (final String key : _userDataKeys) {
            it.userData.put(key, desc.getUserData(key));
        }
    };
    return ObjectExtensions.<SerializableEObjectDescription>operator_doubleArrow(_serializableEObjectDescription, _function);
}
Also used : SerializableEObjectDescription(org.eclipse.xtext.resource.persistence.SerializableEObjectDescription) HashMap(java.util.HashMap) SerializableEObjectDescriptionProvider(org.eclipse.xtext.resource.persistence.SerializableEObjectDescriptionProvider)

Example 3 with SerializableEObjectDescription

use of org.eclipse.xtext.resource.persistence.SerializableEObjectDescription in project xtext-core by eclipse.

the class SerializableResourceDescription method readExternal.

@Override
public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException {
    this.setURI(SerializationExtensions.readURI(in));
    final int descriptionsSize = in.readInt();
    ArrayList<SerializableEObjectDescription> _arrayList = new ArrayList<SerializableEObjectDescription>(descriptionsSize);
    this.descriptions = _arrayList;
    ExclusiveRange _doubleDotLessThan = new ExclusiveRange(0, descriptionsSize, true);
    for (final Integer i : _doubleDotLessThan) {
        this.descriptions.add(SerializationExtensions.<SerializableEObjectDescription>readCastedObject(in));
    }
    final int referencesSize = in.readInt();
    ArrayList<SerializableReferenceDescription> _arrayList_1 = new ArrayList<SerializableReferenceDescription>(referencesSize);
    this.references = _arrayList_1;
    ExclusiveRange _doubleDotLessThan_1 = new ExclusiveRange(0, referencesSize, true);
    for (final Integer i_1 : _doubleDotLessThan_1) {
        this.references.add(SerializationExtensions.<SerializableReferenceDescription>readCastedObject(in));
    }
    final int importedNamesSize = in.readInt();
    ArrayList<QualifiedName> _arrayList_2 = new ArrayList<QualifiedName>(importedNamesSize);
    this.importedNames = _arrayList_2;
    ExclusiveRange _doubleDotLessThan_2 = new ExclusiveRange(0, importedNamesSize, true);
    for (final Integer i_2 : _doubleDotLessThan_2) {
        this.importedNames.add(SerializationExtensions.readQualifiedName(in));
    }
}
Also used : SerializableEObjectDescription(org.eclipse.xtext.resource.persistence.SerializableEObjectDescription) SerializableReferenceDescription(org.eclipse.xtext.resource.persistence.SerializableReferenceDescription) QualifiedName(org.eclipse.xtext.naming.QualifiedName) ArrayList(java.util.ArrayList) ExclusiveRange(org.eclipse.xtext.xbase.lib.ExclusiveRange)

Example 4 with SerializableEObjectDescription

use of org.eclipse.xtext.resource.persistence.SerializableEObjectDescription in project xtext-core by eclipse.

the class SerializableResourceDescription method writeExternal.

@Override
public void writeExternal(final ObjectOutput out) throws IOException {
    SerializationExtensions.writeURI(out, this.uRI);
    out.writeInt(this.descriptions.size());
    for (final SerializableEObjectDescription desc : this.descriptions) {
        out.writeObject(desc);
    }
    out.writeInt(this.references.size());
    for (final SerializableReferenceDescription ref : this.references) {
        out.writeObject(ref);
    }
    out.writeInt(this.importedNames.size());
    for (final QualifiedName name : this.importedNames) {
        SerializationExtensions.writeQualifiedName(out, name);
    }
}
Also used : SerializableEObjectDescription(org.eclipse.xtext.resource.persistence.SerializableEObjectDescription) SerializableReferenceDescription(org.eclipse.xtext.resource.persistence.SerializableReferenceDescription) QualifiedName(org.eclipse.xtext.naming.QualifiedName)

Example 5 with SerializableEObjectDescription

use of org.eclipse.xtext.resource.persistence.SerializableEObjectDescription in project xtext-core by eclipse.

the class SerializableResourceDescriptionTest method testNullSafeSerialization.

@Test
public void testNullSafeSerialization() {
    try {
        final URI uri = URI.createURI("file:/foo/bar.baz.foo");
        SerializableResourceDescription _serializableResourceDescription = new SerializableResourceDescription();
        final Procedure1<SerializableResourceDescription> _function = (SerializableResourceDescription it) -> {
            it.setURI(uri);
            SerializableReferenceDescription _serializableReferenceDescription = new SerializableReferenceDescription();
            final Procedure1<SerializableReferenceDescription> _function_1 = (SerializableReferenceDescription it_1) -> {
                it_1.setSourceEObjectUri(uri.appendFragment("foo"));
                it_1.setTargetEObjectUri(null);
                it_1.setContainerEObjectURI(uri.appendFragment("baz"));
                it_1.setEReference(EcorePackage.eINSTANCE.getEAnnotation_Contents());
                it_1.setIndexInList(1);
            };
            SerializableReferenceDescription _doubleArrow = ObjectExtensions.<SerializableReferenceDescription>operator_doubleArrow(_serializableReferenceDescription, _function_1);
            SerializableReferenceDescription _serializableReferenceDescription_1 = new SerializableReferenceDescription();
            final Procedure1<SerializableReferenceDescription> _function_2 = (SerializableReferenceDescription it_1) -> {
                it_1.setSourceEObjectUri(null);
                it_1.setTargetEObjectUri(uri.appendFragment("hubble2"));
                it_1.setContainerEObjectURI(uri.appendFragment("baz2"));
                it_1.setEReference(EcorePackage.eINSTANCE.getEAnnotation_Contents());
                it_1.setIndexInList(2);
            };
            SerializableReferenceDescription _doubleArrow_1 = ObjectExtensions.<SerializableReferenceDescription>operator_doubleArrow(_serializableReferenceDescription_1, _function_2);
            SerializableReferenceDescription _serializableReferenceDescription_2 = new SerializableReferenceDescription();
            final Procedure1<SerializableReferenceDescription> _function_3 = (SerializableReferenceDescription it_1) -> {
                it_1.setSourceEObjectUri(uri.appendFragment("foo"));
                it_1.setTargetEObjectUri(uri.appendFragment("hubble2"));
                it_1.setContainerEObjectURI(null);
                it_1.setEReference(EcorePackage.eINSTANCE.getEAnnotation_Contents());
                it_1.setIndexInList(2);
            };
            SerializableReferenceDescription _doubleArrow_2 = ObjectExtensions.<SerializableReferenceDescription>operator_doubleArrow(_serializableReferenceDescription_2, _function_3);
            SerializableReferenceDescription _serializableReferenceDescription_3 = new SerializableReferenceDescription();
            final Procedure1<SerializableReferenceDescription> _function_4 = (SerializableReferenceDescription it_1) -> {
                it_1.setSourceEObjectUri(uri.appendFragment("foo"));
                it_1.setTargetEObjectUri(null);
                it_1.setContainerEObjectURI(null);
                it_1.setEReference(EcorePackage.eINSTANCE.getEAnnotation_Contents());
                it_1.setIndexInList(2);
            };
            SerializableReferenceDescription _doubleArrow_3 = ObjectExtensions.<SerializableReferenceDescription>operator_doubleArrow(_serializableReferenceDescription_3, _function_4);
            SerializableReferenceDescription _serializableReferenceDescription_4 = new SerializableReferenceDescription();
            final Procedure1<SerializableReferenceDescription> _function_5 = (SerializableReferenceDescription it_1) -> {
                it_1.setSourceEObjectUri(null);
                it_1.setTargetEObjectUri(null);
                it_1.setContainerEObjectURI(null);
                it_1.setEReference(EcorePackage.eINSTANCE.getEAnnotation_Contents());
                it_1.setIndexInList(2);
            };
            SerializableReferenceDescription _doubleArrow_4 = ObjectExtensions.<SerializableReferenceDescription>operator_doubleArrow(_serializableReferenceDescription_4, _function_5);
            it.setReferences(Collections.<SerializableReferenceDescription>unmodifiableList(CollectionLiterals.<SerializableReferenceDescription>newArrayList(_doubleArrow, _doubleArrow_1, _doubleArrow_2, _doubleArrow_3, _doubleArrow_4)));
            SerializableEObjectDescription _serializableEObjectDescription = new SerializableEObjectDescription();
            final Procedure1<SerializableEObjectDescription> _function_6 = (SerializableEObjectDescription it_1) -> {
                it_1.setEObjectURI(uri.appendFragment("baz"));
                it_1.qualifiedName = QualifiedName.create("foo", "baz");
                it_1.setEClass(EcorePackage.eINSTANCE.getEAttribute());
                Pair<String, String> _mappedTo = Pair.<String, String>of("myKey", "myValue");
                it_1.userData = CollectionLiterals.<String, String>newHashMap(_mappedTo);
            };
            SerializableEObjectDescription _doubleArrow_5 = ObjectExtensions.<SerializableEObjectDescription>operator_doubleArrow(_serializableEObjectDescription, _function_6);
            it.setDescriptions(Collections.<SerializableEObjectDescription>unmodifiableList(CollectionLiterals.<SerializableEObjectDescription>newArrayList(_doubleArrow_5)));
            QualifiedName _create = QualifiedName.create("foo");
            QualifiedName _create_1 = QualifiedName.create("foo", "bar");
            it.setImportedNames(Collections.<QualifiedName>unmodifiableList(CollectionLiterals.<QualifiedName>newArrayList(_create, _create_1)));
        };
        final SerializableResourceDescription before = ObjectExtensions.<SerializableResourceDescription>operator_doubleArrow(_serializableResourceDescription, _function);
        final ByteArrayOutputStream bout = new ByteArrayOutputStream();
        final ObjectOutputStream objectOut = new ObjectOutputStream(bout);
        objectOut.writeObject(before);
        byte[] _byteArray = bout.toByteArray();
        ByteArrayInputStream _byteArrayInputStream = new ByteArrayInputStream(_byteArray);
        final ObjectInputStream in = new ObjectInputStream(_byteArrayInputStream);
        Object _readObject = in.readObject();
        final SerializableResourceDescription after = ((SerializableResourceDescription) _readObject);
        this.assertDescriptionsEqual(before, after);
    } catch (Throwable _e) {
        throw Exceptions.sneakyThrow(_e);
    }
}
Also used : SerializableReferenceDescription(org.eclipse.xtext.resource.persistence.SerializableReferenceDescription) QualifiedName(org.eclipse.xtext.naming.QualifiedName) ByteArrayOutputStream(java.io.ByteArrayOutputStream) ObjectOutputStream(java.io.ObjectOutputStream) URI(org.eclipse.emf.common.util.URI) SerializableEObjectDescription(org.eclipse.xtext.resource.persistence.SerializableEObjectDescription) ByteArrayInputStream(java.io.ByteArrayInputStream) Procedure1(org.eclipse.xtext.xbase.lib.Procedures.Procedure1) SerializableResourceDescription(org.eclipse.xtext.resource.persistence.SerializableResourceDescription) ObjectInputStream(java.io.ObjectInputStream) Test(org.junit.Test)

Aggregations

SerializableEObjectDescription (org.eclipse.xtext.resource.persistence.SerializableEObjectDescription)6 SerializableReferenceDescription (org.eclipse.xtext.resource.persistence.SerializableReferenceDescription)5 QualifiedName (org.eclipse.xtext.naming.QualifiedName)4 ByteArrayInputStream (java.io.ByteArrayInputStream)2 ByteArrayOutputStream (java.io.ByteArrayOutputStream)2 ObjectInputStream (java.io.ObjectInputStream)2 ObjectOutputStream (java.io.ObjectOutputStream)2 URI (org.eclipse.emf.common.util.URI)2 SerializableResourceDescription (org.eclipse.xtext.resource.persistence.SerializableResourceDescription)2 ExclusiveRange (org.eclipse.xtext.xbase.lib.ExclusiveRange)2 Procedure1 (org.eclipse.xtext.xbase.lib.Procedures.Procedure1)2 Test (org.junit.Test)2 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 SerializableEObjectDescriptionProvider (org.eclipse.xtext.resource.persistence.SerializableEObjectDescriptionProvider)1