package org.xmind.ui.internal.svgsupport;
import org.eclipse.swt.graphics.RGB;
/**
*
* @author Enki Xiong
*
*/
class SVGColor {
private LinearGradient linearGradient;
private RGB rgb;
public SVGColor(int rgb) {
setRGB(rgb);
}
public SVGColor(LinearGradient linearGradient) {
setLinearGradient(linearGradient);
}
private void setRGB(int rgb) {
int red = (rgb >> 16) & 0xFF;
int green = (rgb >> 8) & 0xFF;
int blue = rgb & 0xFF;
this.rgb = new RGB(red, green, blue);
}
RGB getRGB() {
return rgb;
}
LinearGradient getLinearGradient() {
return linearGradient;
}
private void setLinearGradient(LinearGradient linearGradient) {
this.linearGradient = linearGradient;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj instanceof SVGColor) {
SVGColor color = (SVGColor) obj;
if (rgb != null)
return rgb.equals(color.rgb);
else
return linearGradient.equals(color.linearGradient);
}
return false;
}
@Override
public int hashCode() {
int result = 17;
if (rgb != null)
result = result * 31 + rgb.hashCode();
else if (linearGradient != null)
result = result * 31 + linearGradient.hashCode();
return result;
}
@Override
public String toString() {
if (rgb != null)
return rgb.toString();
else if (linearGradient != null)
return linearGradient.toString();
return SVGDefinitionConstants.NONE;
}
}