/** Binds POJO to ODocument. */ @Override @OBeforeSerialization public ODocument toStream() { rwSpinLock.acquireReadLock(); try { document.setInternalStatus(ORecordElement.STATUS.UNMARSHALLING); try { document.field("schemaVersion", CURRENT_VERSION_NUMBER); Set<ODocument> cc = new HashSet<ODocument>(); for (OClass c : classes.values()) cc.add(((OClassImpl) c).toStream()); document.field("classes", cc, OType.EMBEDDEDSET); List<ODocument> globalProperties = new ArrayList<ODocument>(); for (OGlobalProperty globalProperty : properties) { if (globalProperty != null) globalProperties.add(((OGlobalPropertyImpl) globalProperty).toDocument()); } document.field("globalProperties", globalProperties, OType.EMBEDDEDLIST); } finally { document.setInternalStatus(ORecordElement.STATUS.LOADED); } return document; } finally { rwSpinLock.releaseReadLock(); } }
public void acquireSchemaReadLock() { rwSpinLock.acquireReadLock(); }