options.containsKey(BinaryResourceImpl.OPTION_VERSION)? (Version)options.get(BinaryResourceImpl.OPTION_VERSION) : BinaryResourceImpl.BinaryIO.Version.VERSION_1_0; EObjectOutputStream eObjectOutputStream = createEObjectOutputStream(outputStream, options, version, uriHandler); eObjectOutputStream.saveResource(this); eObjectOutputStream.writeCompressedInt(eObjectToIDMap.size()); for (Map.Entry<EObject, String> entry : eObjectToIDMap.entrySet()) eObjectOutputStream.saveEObject((InternalEObject)entry.getKey(), Check.NOTHING); eObjectOutputStream.writeString(entry.getValue()); eObjectOutputStream.writeCompressedInt(0); eObjectOutputStream.flush();
public void writeURI(URI uri, String fragment) throws IOException { if (uri == null) { writeCompressedInt(-1); } else { assert uri.fragment() == null; Integer id = uriToIDMap.get(uri); if (id == null) { int idValue = uriToIDMap.size(); uriToIDMap.put(uri, idValue); writeCompressedInt(idValue); writeSegmentedString(deresolve(uri).toString()); } else { writeCompressedInt(id); } writeSegmentedString(fragment); } } }
protected EPackageData writeEPackage(EPackage ePackage) throws IOException { EPackageData ePackageData = ePackageDataMap.get(ePackage); if (ePackageData == null) { ePackageData = new EPackageData(); int id = ePackageDataMap.size(); ePackageData.id = id; ePackageData.eClassData = new EClassData[ePackage.getEClassifiers().size()]; writeCompressedInt(id); writeSegmentedString(ePackage.getNsURI()); writeURI(EcoreUtil.getURI(ePackage)); ePackageDataMap.put(ePackage, ePackageData); } else { writeCompressedInt(ePackageData.id); } return ePackageData; }
saveEObject((InternalEObject)value, Check.NOTHING); break; saveEObject((InternalEObject)value, Check.RESOURCE); break; saveEObject((InternalEObject)value, Check.DIRECT_RESOURCE); break; saveEObject((InternalEObject)value, Check.RESOURCE); break; saveEObjects(internalEList, Check.NOTHING); break; saveEObjects(internalEList, Check.DIRECT_RESOURCE); break; saveEObjects(internalEList, Check.RESOURCE); break; writeBoolean((Boolean)value); break; writeByte((Byte)value); break; writeChar((Character)value); break;
EPackageData ePackageData = writeEPackage(eClass.getEPackage()); eClassData.ePackageID = ePackageData.id; writeCompressedInt(eClassData.id = ePackageData.allocateEClassID()); writeString(eClass.getName()); int featureCount = eClass.getFeatureCount(); EStructuralFeatureData [] eStructuralFeaturesData = eClassData.eStructuralFeatureData = new EStructuralFeatureData[featureCount]; writeCompressedInt(eClassData.ePackageID); writeCompressedInt(eClassData.id);
saveEObject((InternalEObject)value, Check.NOTHING); break; saveEObject((InternalEObject)value, Check.RESOURCE); break; saveEObject((InternalEObject)value, Check.DIRECT_RESOURCE); break; saveEObject((InternalEObject)value, Check.RESOURCE); break; saveEObjects(internalEList, Check.NOTHING); break; saveEObjects(internalEList, Check.DIRECT_RESOURCE); break; saveEObjects(internalEList, Check.RESOURCE); break; writeBoolean((Boolean)value); break; writeByte((Byte)value); break; writeChar((Character)value); break;
EStructuralFeatureData eStructuralFeatureData = writeEStructuralFeature(entry.getEStructuralFeature()); Object value = entry.getValue(); switch (eStructuralFeatureData.kind) saveEObject((InternalEObject)value, Check.NOTHING); break; saveEObject((InternalEObject)value, Check.DIRECT_RESOURCE); break; saveEObject((InternalEObject)value, Check.RESOURCE); break; writeBoolean((Boolean)value); break; writeByte((Byte)value); break; writeChar((Character)value); break; writeDouble((Double)value); break; writeFloat((Float)value); break; writeInt((Integer)value);
EStructuralFeatureData eStructuralFeatureData = writeEStructuralFeature(entry.getEStructuralFeature()); Object value = entry.getValue(); switch (eStructuralFeatureData.kind) saveEObject((InternalEObject)value, Check.NOTHING); break; saveEObject((InternalEObject)value, Check.DIRECT_RESOURCE); break; saveEObject((InternalEObject)value, Check.RESOURCE); break; writeBoolean((Boolean)value); break; writeByte((Byte)value); break; writeChar((Character)value); break; writeDouble((Double)value); break; writeFloat((Float)value); break; writeInt((Integer)value);
writeCompressedInt(-1); writeCompressedInt(idValue); eObjectIDMap.put(internalEObject, idValue); EClass eClass = internalEObject.eClass(); EClassData eClassData = writeEClass(eClass); boolean checkIsTransientProxy = false; switch (check) writeCompressedInt(-1); writeURI(resource.getURI(), resource.getURIFragment(internalEObject)); if ((style & STYLE_PROXY_ATTRIBUTES) == 0) writeCompressedInt(-1); writeURI(internalEObject.eProxyURI()); if ((style & STYLE_PROXY_ATTRIBUTES) == 0) writeCompressedInt(-1); writeURI(resource.getURI(), resource.getURIFragment(internalEObject)); if ((style & STYLE_PROXY_ATTRIBUTES) == 0) writeCompressedInt(-1); writeURI(internalEObject.eProxyURI()); if ((style & STYLE_PROXY_ATTRIBUTES) == 0) saveFeatureValue(internalEObject, i, structuralFeatureData); writeCompressedInt(0);
writeCompressedInt(-1); writeCompressedInt(idValue); eObjectIDMap.put(internalEObject, idValue); EClass eClass = internalEObject.eClass(); EClassData eClassData = writeEClass(eClass); boolean checkIsTransientProxy = false; switch (check) writeCompressedInt(-1); writeURI(resource.getURI(), resource.getURIFragment(internalEObject)); if ((style & STYLE_PROXY_ATTRIBUTES) == 0) writeCompressedInt(-1); writeURI(internalEObject.eProxyURI()); if ((style & STYLE_PROXY_ATTRIBUTES) == 0) writeCompressedInt(-1); writeURI(resource.getURI(), resource.getURIFragment(internalEObject)); if ((style & STYLE_PROXY_ATTRIBUTES) == 0) writeCompressedInt(-1); writeURI(internalEObject.eProxyURI()); if ((style & STYLE_PROXY_ATTRIBUTES) == 0) saveFeatureValue(internalEObject, i, structuralFeatureData); writeCompressedInt(0);
writeString(value); writeCompressedInt(-1); writeCompressedInt(idValue); if (delimiter != null) ensureSegmentCapacity(segmentCount + 2); if (start < i) writeCompressedInt(0); writeString(value); ensureSegmentCapacity(segmentCount + 1); segments[segmentCount++] = value.substring(start, end); writeCompressedInt(segmentCount); for (int i = 0; i < segmentCount; ++i) writeString(segments[i]); writeCompressedInt(id);
options.containsKey(BinaryResourceImpl.OPTION_VERSION)? (Version)options.get(BinaryResourceImpl.OPTION_VERSION) : BinaryResourceImpl.BinaryIO.Version.VERSION_1_0; EObjectOutputStream eObjectOutputStream = createEObjectOutputStream(outputStream, options, version, uriHandler); eObjectOutputStream.saveResource(this); eObjectOutputStream.writeCompressedInt(eObjectToIDMap.size()); for (Map.Entry<EObject, String> entry : eObjectToIDMap.entrySet()) eObjectOutputStream.saveEObject((InternalEObject)entry.getKey(), Check.NOTHING); eObjectOutputStream.writeString(entry.getValue()); eObjectOutputStream.writeCompressedInt(0); eObjectOutputStream.flush();
writeString(value); writeCompressedInt(-1); writeCompressedInt(idValue); if (delimiter != null) ensureSegmentCapacity(segmentCount + 2); if (start < i) writeCompressedInt(0); writeString(value); ensureSegmentCapacity(segmentCount + 1); segments[segmentCount++] = value.substring(start, end); writeCompressedInt(segmentCount); for (int i = 0; i < segmentCount; ++i) writeString(segments[i]); writeCompressedInt(id);
writeCompressedInt(-1); if (id != null) writeCompressedInt(id); return; writeCompressedInt(idValue); writeCompressedInt(length); if (characters == null || characters.length < length) if (character == 0 || character > 0xFF) writeByte((byte)0); writeChar(character); while (++i < length) writeChar(characters[i]); writeByte((byte)character);
writeCompressedInt(-1); if (id != null) writeCompressedInt(id); return; writeCompressedInt(idValue); writeCompressedInt(length); if (characters == null || characters.length < length) if (character == 0 || character > 0xFF) writeByte((byte)0); writeChar(character); while (++i < length) writeChar(characters[i]); writeByte((byte)character);
eObjectOutputStream.saveResource(this); eObjectOutputStream.flush();
eObjectOutputStream.saveResource(this); eObjectOutputStream.flush();
protected EClassData writeEClass(EClass eClass) throws IOException { EClassData eClassData = eClassDataMap.get(eClass); if (eClassData == null) { eClassData = new EClassData(); EPackageData ePackageData = writeEPackage(eClass.getEPackage()); eClassData.ePackageID = ePackageData.id; writeCompressedInt(eClassData.id = ePackageData.allocateEClassID()); writeString(eClass.getName()); int featureCount = eClass.getFeatureCount(); EStructuralFeatureData [] eStructuralFeaturesData = eClassData.eStructuralFeatureData = new EStructuralFeatureData[featureCount]; for (int i = 0; i < featureCount; ++i) { EStructuralFeature.Internal eStructuralFeature = (EStructuralFeature.Internal)eClass.getEStructuralFeature(i); eStructuralFeaturesData[i] = createEStructuralFeatureData(eStructuralFeature); } ePackageData.eClassData[eClassData.id] = eClassData; eClassDataMap.put(eClass, eClassData); } else { writeCompressedInt(eClassData.ePackageID); writeCompressedInt(eClassData.id); } return eClassData; }
@Override public void write(EObjectOutputStream eObjectOutputStream, Object value) throws IOException { if (value == null) { eObjectOutputStream.writeCompressedInt(-1); } else { Integer id = objectToIDMap.get(value); if (id == null) { int idValue = objectToIDMap.size(); objectToIDMap.put(value, idValue); eObjectOutputStream.writeCompressedInt(idValue); super.write(eObjectOutputStream, value); } else { eObjectOutputStream.writeCompressedInt(id); } } }
@Override protected void handleSaveEObject(final InternalEObject object, final BinaryResourceImpl.EObjectOutputStream out) throws IOException { super.handleSaveEObject(object, out); DocumentationAdapter documentationAdapter = null; JvmIdentifiableMetaData metaDataAdapter = null; EList<Adapter> _eAdapters = object.eAdapters(); for (final Adapter adapter : _eAdapters) { { if ((adapter instanceof DocumentationAdapter)) { documentationAdapter = ((DocumentationAdapter)adapter); } if ((adapter instanceof JvmIdentifiableMetaData)) { metaDataAdapter = ((JvmIdentifiableMetaData)adapter); } } } if ((documentationAdapter != null)) { out.writeBoolean(true); out.writeString(documentationAdapter.getDocumentation()); } else { out.writeBoolean(false); } if ((metaDataAdapter != null)) { out.writeBoolean(true); out.writeBoolean(metaDataAdapter.isSynthetic()); } else { out.writeBoolean(false); } }