Return-Path: Delivered-To: apmail-poi-dev-archive@www.apache.org Received: (qmail 66100 invoked from network); 2 Oct 2008 05:27:00 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 2 Oct 2008 05:27:00 -0000 Received: (qmail 51002 invoked by uid 500); 2 Oct 2008 05:26:59 -0000 Delivered-To: apmail-poi-dev-archive@poi.apache.org Received: (qmail 50972 invoked by uid 500); 2 Oct 2008 05:26:58 -0000 Mailing-List: contact dev-help@poi.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "POI Developers List" Delivered-To: mailing list dev@poi.apache.org Received: (qmail 50961 invoked by uid 99); 2 Oct 2008 05:26:58 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 01 Oct 2008 22:26:58 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 02 Oct 2008 05:25:54 +0000 Received: by brutus.apache.org (Postfix, from userid 33) id 2ADE5234C20F; Wed, 1 Oct 2008 22:26:28 -0700 (PDT) From: bugzilla@apache.org To: dev@poi.apache.org Subject: DO NOT REPLY [Bug 45919] [PATCH] Crucial classes made inheritable: HSSFWorkbook, HSSFSheet, HSSFRow and HSSFCell X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: newchanged X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: POI X-Bugzilla-Component: HSSF X-Bugzilla-Keywords: X-Bugzilla-Severity: enhancement X-Bugzilla-Who: josh@gildedtree.com X-Bugzilla-Status: RESOLVED X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: dev@poi.apache.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: Status Resolution In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Message-Id: <20081002052629.2ADE5234C20F@brutus.apache.org> Date: Wed, 1 Oct 2008 22:26:28 -0700 (PDT) X-Virus-Checked: Checked by ClamAV on apache.org https://issues.apache.org/bugzilla/show_bug.cgi?id=45919 Josh Micich changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |WONTFIX --- Comment #6 from Josh Micich 2008-10-01 22:26:27 PST --- >From a functionality perspective, you are probably tryng to do something very sensible. Can you please attach some sample code that shows your goal? However, the technical change specified in these patches is contrary POI's current direction. POI avoids allowing API classes to be extended because of the difficulties that this presents. The trouble arises because inheritance is such an intimate form of coupling. The most discernible difficulty relates to maintaining of backward (source/binary) compatibility. This link has some useful tables classifying potential changes: http://wiki.eclipse.org/index.php/Evolving_Java-based_APIs Much more subtle are the unexpected behaviour/logic consequences of inheritance. See this page for some well explained examples: http://norvig.com/java-iaq.html Most code using unwanted inheritance can be rewritten using delegation and/or the 'strategy pattern'. Don't get me wrong - inheritance isn't all bad. POI uses *plenty* of inheritance, just internally. My personal opinion is that "you should never inherit from a class that you do not control the source code of". -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org For additional commands, e-mail: dev-help@poi.apache.org