package com.intellij.flex.uiDesigner.mxml; import com.intellij.flex.uiDesigner.InvalidPropertyException; import com.intellij.flex.uiDesigner.io.PrimitiveAmfOutputStream; abstract class Binding { private MxmlObjectReference target; private int propertyName; private boolean isStyle; void setTarget(MxmlObjectReference target, int propertyName, boolean isStyle) { this.target = target; this.propertyName = propertyName; this.isStyle = isStyle; } protected abstract int getType(); void write(PrimitiveAmfOutputStream out, BaseWriter writer, ValueReferenceResolver valueReferenceResolver) throws InvalidPropertyException { target.write(out, writer, valueReferenceResolver); writer.property(propertyName).getOut().write(getType() << 1 | (isStyle ? 1 : 0)); } static final class BindingType { final static int MXML_OBJECT = 0; final static int MXML_OBJECT_WRAP_TO_ARRAY = 1; final static int VARIABLE = 2; final static int EXPRESSION = 3; } }