1234567891011121314151617181920212223242526272829303132333435363738394041 |
- package com.reactnativenavigation.parse;
-
- import com.reactnativenavigation.parse.params.NullText;
- import com.reactnativenavigation.parse.params.Text;
- import com.reactnativenavigation.parse.parsers.TextParser;
-
- import org.json.JSONObject;
-
- public class Component {
- public static Component parse(JSONObject json) {
- Component result = new Component();
- if (json == null) return result;
-
- result.name = TextParser.parse(json, "name");
- result.componentId = TextParser.parse(json, "componentId");
- result.alignment = Alignment.fromString(TextParser.parse(json, "alignment").get(""));
-
- return result;
- }
-
- public Text name = new NullText();
- public Text componentId = new NullText();
- public Alignment alignment = Alignment.Default;
-
- void mergeWith(Component other) {
- if (other.componentId.hasValue()) componentId = other.componentId;
- if (other.name.hasValue()) name = other.name;
- if (other.alignment != Alignment.Default) alignment = other.alignment;
- }
-
- public void mergeWithDefault(Component defaultOptions) {
- if (!componentId.hasValue()) componentId = defaultOptions.componentId;
- if (!name.hasValue()) name = defaultOptions.name;
- if (alignment == Alignment.Default) alignment = defaultOptions.alignment;
- }
-
- public boolean hasValue() {
- return name.hasValue();
- }
- }
|