class UberfireDock {

    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }

        UberfireDock that = (UberfireDock) o;

        return Objects.equals(uberfireDockPosition, that.uberfireDockPosition) &&
                Objects.equals(iconType, that.iconType) &&
                Objects.equals(imageIcon, that.imageIcon) &&
                Objects.equals(imageIconFocused, that.imageIconFocused) &&
                Objects.equals(placeRequest, that.placeRequest) &&
                Objects.equals(associatedPerspective, that.associatedPerspective) &&
                Objects.equals(size, that.size) &&
                Objects.equals(label, that.label) &&
                Objects.equals(tooltip, that.tooltip);
    }

    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);

}