package com.csound.wizard.layout.param;
import java.io.Serializable;
import org.json.simple.JSONObject;
import com.csound.wizard.layout.Json;
public class Param implements Serializable {
private static final long serialVersionUID = -3483730145256635807L;
private ColorParam mColor;
private LayoutParam mLayout;
private TextParam mText;
private RangeParam mRange;
private NamesParam mNames;
private TouchParam mTouch;
public ColorParam getColor() { return mColor; }
public LayoutParam getLayout() { return mLayout; }
public TextParam getText() { return mText; }
public RangeParam getRange() { return mRange; }
public NamesParam getNames() { return mNames; }
public TouchParam getTouch() { return mTouch; }
public Param() {
mColor = new ColorParam();
mLayout = new LayoutParam();
mText = new TextParam();
mRange = new RangeParam();
mNames = new NamesParam();
mTouch = new TouchParam();
}
public Param(LayoutParam layout, ColorParam color, TextParam text, RangeParam range, NamesParam names, TouchParam touch) {
mLayout = layout;
mColor = color;
mText = text;
mRange = range;
mNames = names;
mTouch = touch;
}
public static Param parse(Object obj) {
if (Json.isObject(obj)) {
JSONObject jobj = (JSONObject) obj;
LayoutParam layout = LayoutParam.parse(jobj);
ColorParam color = ColorParam.parse(jobj);
TextParam text = TextParam.parse(jobj);
RangeParam range = RangeParam.parse(jobj);
NamesParam names = NamesParam.parse(jobj);
TouchParam touch = TouchParam.parse(jobj);
return new Param(layout, color, text, range, names, touch);
}
return null;
}
public static Param merge(Param a, Param b) {
if (a == null) {
return b;
}
if (b == null) {
return a;
}
return new Param(
LayoutParam.merge(a.mLayout, b.mLayout),
ColorParam.merge(a.mColor, b.mColor),
TextParam.merge(a.mText, b.mText),
RangeParam.merge(a.mRange, b.mRange),
NamesParam.merge(a.mNames, b.mNames),
TouchParam.merge(a.mTouch, b.mTouch));
}
public static Object mergeObjects(Object a, Object b) {
if (a != null) {
return a;
} else {
return b;
}
}
}