package com.intellij.flex.uiDesigner.mxml; import com.intellij.flex.uiDesigner.io.PrimitiveAmfOutputStream; final class MxmlObjectReference implements ValueReference { final int id; StaticInstanceReferenceInDeferredParentInstance staticReferenceInDeferredParentInstance; public MxmlObjectReference(int id) { this.id = id; } @Override public void write(PrimitiveAmfOutputStream out, BaseWriter writer, ValueReferenceResolver valueReferenceResolver) { if (staticReferenceInDeferredParentInstance == null || staticReferenceInDeferredParentInstance.isWritten()) { out.writeUInt29(id << 1); } else { out.writeUInt29((staticReferenceInDeferredParentInstance.getObjectInstance() << 1) | 1); out.writeUInt29(staticReferenceInDeferredParentInstance.getDeferredParentInstance()); out.writeUInt29(id); staticReferenceInDeferredParentInstance.markAsWritten(); } } }