package com.intellij.flex.uiDesigner.mxml; import com.intellij.flex.uiDesigner.io.ByteRange; class SetPropertyOrStyle extends OverrideBase { int targetId = -1; private ByteRange targetRange; private int reference = -1; private int referencePosition = -1; public void setTargetRange(ByteRange targetRange) { this.targetRange = targetRange; } SetPropertyOrStyle(ByteRange dataRange) { super(dataRange); } @Override void write(BaseWriter writer, StateWriter stateWriter) { if (referencePosition == -1) { referencePosition = writer.referableHeader(); writer.getOut().write(AmfExtendedTypes.OBJECT); writer.getBlockOut().append(dataRange); reference = -1; if (targetRange == null) { writer.property(stateWriter.TARGET).objectReference(targetId); } else { writer.getBlockOut().append(targetRange); } writer.endObject(); } else { if (reference == -1) { reference = writer.allocateAbsoluteStaticObjectId(); StaticObjectContext.initializeReference(reference, writer.getOut(), referencePosition); } writer.objectReference(reference); } } }