Files
yoga/java/com/facebook/yoga/YogaValue.java
Sophie Alpert a2b6ddb7b1 Update license headers for MIT license
Summary:
Includes React Native and its dependencies Fresco, Metro, and Yoga. Excludes samples/examples/docs.

find: ^(?:( *)|( *(?:[\*~#]|::))( )? *)?Copyright (?:\(c\) )?(\d{4})\b.+Facebook[\s\S]+?BSD[\s\S]+?(?:this source tree|the same directory)\.$
replace: $1$2$3Copyright (c) $4-present, Facebook, Inc.\n$2\n$1$2$3This source code is licensed under the MIT license found in the\n$1$2$3LICENSE file in the root directory of this source tree.

Reviewed By: TheSavior, yungsters

Differential Revision: D7007050

fbshipit-source-id: 37dd6bf0ffec0923bfc99c260bb330683f35553e
2018-02-16 18:27:33 -08:00

83 lines
1.9 KiB
Java

/*
* Copyright (c) 2014-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
package com.facebook.yoga;
import com.facebook.proguard.annotations.DoNotStrip;
@DoNotStrip
public class YogaValue {
static final YogaValue UNDEFINED = new YogaValue(YogaConstants.UNDEFINED, YogaUnit.UNDEFINED);
static final YogaValue ZERO = new YogaValue(0, YogaUnit.POINT);
static final YogaValue AUTO = new YogaValue(YogaConstants.UNDEFINED, YogaUnit.AUTO);
public final float value;
public final YogaUnit unit;
public YogaValue(float value, YogaUnit unit) {
this.value = value;
this.unit = unit;
}
@DoNotStrip
YogaValue(float value, int unit) {
this(value, YogaUnit.fromInt(unit));
}
@Override
public boolean equals(Object other) {
if (other instanceof YogaValue) {
final YogaValue otherValue = (YogaValue) other;
if (unit == otherValue.unit) {
return unit == YogaUnit.UNDEFINED || Float.compare(value, otherValue.value) == 0;
}
}
return false;
}
@Override
public int hashCode() {
return Float.floatToIntBits(value) + unit.intValue();
}
@Override
public String toString() {
switch (unit) {
case UNDEFINED:
return "undefined";
case POINT:
return Float.toString(value);
case PERCENT:
return value + "%";
case AUTO:
return "auto";
default:
throw new IllegalStateException();
}
}
public static YogaValue parse(String s) {
if (s == null) {
return null;
}
if ("undefined".equals(s)) {
return UNDEFINED;
}
if ("auto".equals(s)) {
return AUTO;
}
if (s.endsWith("%")) {
return new YogaValue(Float.parseFloat(s.substring(0, s.length() - 1)), YogaUnit.PERCENT);
}
return new YogaValue(Float.parseFloat(s), YogaUnit.POINT);
}
}