package org.lobobrowser.html.renderer; import java.awt.Insets; import org.eclipse.jdt.annotation.NonNull; import org.lobobrowser.html.style.HtmlInsets; final class BorderOverrider { boolean leftOverridden = false; boolean rightOverridden = false; boolean bottomOverridden = false; boolean topOverridden = false; @NonNull Insets get(final @NonNull Insets borderInsets) { if (leftOverridden || rightOverridden || topOverridden || bottomOverridden) { final int topDash = topOverridden ? 0 : borderInsets.top; final int leftDash = leftOverridden ? 0 : borderInsets.left; final int bottomDash = bottomOverridden ? 0 : borderInsets.bottom; final int rightDash = rightOverridden ? 0 : borderInsets.right; return new Insets(topDash, leftDash, bottomDash, rightDash); } return borderInsets; } public void copyFrom(final BorderOverrider other) { this.topOverridden = other.topOverridden; this.leftOverridden = other.leftOverridden; this.rightOverridden = other.rightOverridden; this.bottomOverridden = other.bottomOverridden; } public HtmlInsets get(final HtmlInsets borderInsets) { if ((borderInsets != null) && (leftOverridden || rightOverridden || topOverridden || bottomOverridden)) { final int topDash = topOverridden ? 0 : borderInsets.top; final int leftDash = leftOverridden ? 0 : borderInsets.left; final int bottomDash = bottomOverridden ? 0 : borderInsets.bottom; final int rightDash = rightOverridden ? 0 : borderInsets.right; return new HtmlInsets(topDash, leftDash, bottomDash, rightDash, HtmlInsets.TYPE_PIXELS); } return borderInsets; } }