class UberfireDock {

    @Override
    public int hashCode() {
        int result = placeRequest.hashCode();
        result = 31 * result + (uberfireDockPosition != null ? uberfireDockPosition.hashCode() : 0);
        result = ~~result;
        result = 31 * result + (iconType != null ? iconType.hashCode() : 0);
        result = ~~result;
        result = 31 * result + (imageIcon != null ? imageIcon.hashCode() : 0);
        result = ~~result;
        result = 31 * result + (imageIconFocused != null ? imageIconFocused.hashCode() : 0);
        result = ~~result;
        result = 31 * result + (associatedPerspective != null ? associatedPerspective.hashCode() : 0);
        result = ~~result;
        result = 31 * result + (size != null ? size.hashCode() : 0);
        result = ~~result;
        result = 31 * result + (label != null ? label.hashCode() : 0);
        result = ~~result;
        result = 31 * result + (tooltip != null ? tooltip.hashCode() : 0);
        result = ~~result;
        return result;
    }

    public  UberfireDock(UberfireDockPosition uberfireDockPosition,
                        String iconType,
                        PlaceRequest placeRequest,
                        String associatedPerspective);
    public  UberfireDock(UberfireDockPosition uberfireDockPosition,
                        String iconType,
                        PlaceRequest placeRequest);
    public  UberfireDock(UberfireDockPosition uberfireDockPosition,
                        ImageResource imageIcon,
                        ImageResource imageIconFocused,
                        PlaceRequest placeRequest,
                        String associatedPerspective);
    public  UberfireDock(UberfireDockPosition uberfireDockPosition,
                        ImageResource imageIcon,
                        ImageResource imageIconFocused,
                        PlaceRequest placeRequest);

}