/*
 * Copyright (C) 2005-2006 Kouji Sugisawa. All rights reserved.
 */

package jp.sourceforge.livez.dao;

import java.io.Serializable;

import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;

/**
 * EZweb 写真フレーム情報を提供します。
 * 
 * @author 杉澤 浩二
 */
public class EZwebFrame implements Serializable {

	private static final long serialVersionUID = 1L;

	/**
	 * デフォルトコンストラクタです。
	 */
	public EZwebFrame() {}

	/**
	 * デバイスIDを保持します。
	 */
	private String deviceType;

	/**
	 * デバイスIDを取得します。
	 * 
	 * @return デバイスID
	 */
	public String getDeviceType() {
		return deviceType;
	}

	/**
	 * デバイスIDを設定します。
	 * 
	 * @param deviceType デバイスID
	 */
	public void setDeviceType(final String deviceType) {
		this.deviceType = StringUtils.defaultIfEmpty(deviceType, null);
	}

	/**
	 * 幅を保持します。
	 */
	private Integer width;

	/**
	 * 幅を返します。
	 * 
	 * @return 幅
	 */
	public Integer getWidth() {
		return width;
	}

	/**
	 * 幅を設定します。
	 * 
	 * @param width 幅
	 */
	public void setWidth(final Integer width) {
		if (width == null || width <= 0)
			this.width = null;
		else
			this.width = width;
	}

	/**
	 * 高さを保持します。
	 */
	private Integer height;

	/**
	 * 高さを返します。
	 * 
	 * @return 高さ
	 */
	public Integer getHeight() {
		return height;
	}

	/**
	 * 高さを設定します。
	 * 
	 * @param height 高さ
	 */
	public void setHeight(final Integer height) {
		if (height == null || height <= 0)
			this.height = null;
		else
			this.height = height;
	}

	@Override
	public int hashCode() {
		return HashCodeBuilder.reflectionHashCode(this);
	}

	@Override
	public boolean equals(final Object obj) {
		return EqualsBuilder.reflectionEquals(this, obj);
	}

	@Override
	public String toString() {
		return ToStringBuilder.reflectionToString(this, ToStringStyle.MULTI_LINE_STYLE);
	}

}
