/*******************************************************************************
* Copyright (c) 2011, 2015 EclipseSource and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* EclipseSource - initial API and implementation
******************************************************************************/
package org.eclipse.rap.rwt.internal.textsize;
import org.eclipse.rap.rwt.internal.util.ParamCheck;
import org.eclipse.swt.graphics.FontData;
import org.eclipse.swt.internal.SerializableCompatibility;
class MeasurementItem implements SerializableCompatibility {
private final int wrapWidth;
private final FontData fontData;
private final String string;
private final int mode;
MeasurementItem( String textToMeasure, FontData fontData, int wrapWidth, int mode ) {
ParamCheck.notNull( textToMeasure, "textToMeasure" );
ParamCheck.notNull( fontData, "fontData" );
this.wrapWidth = wrapWidth;
this.fontData = fontData;
this.string = textToMeasure;
this.mode = mode;
}
FontData getFontData() {
return fontData;
}
String getTextToMeasure() {
return string;
}
int getWrapWidth() {
return wrapWidth;
}
int getMode() {
return mode;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + fontData.hashCode();
result = prime * result + string.hashCode();
result = prime * result + wrapWidth;
result = prime * result + mode;
return result;
}
@Override
public boolean equals( Object object ) {
boolean result = false;
if( object != null && getClass() == object.getClass() ) {
if( this == object ) {
result = true;
} else {
MeasurementItem other = ( MeasurementItem )object;
result = fontData.equals( other.fontData )
&& string.equals( other.string )
&& wrapWidth == other.wrapWidth
&& mode == other.mode;
}
}
return result;
}
}