Bug 129203 - Determine some way to have package protected methods on domain objects
Summary: Determine some way to have package protected methods on domain objects
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Network
Classification: Red Hat
Component: RHN/R&D
Version: RHN Devel
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Mike McCune
QA Contact: Fanny Augustin
URL:
Whiteboard:
Depends On:
Blocks: rhnMilestone1
TreeView+ depends on / blocked
 
Reported: 2004-08-05 00:30 UTC by Mike McCune
Modified: 2007-04-18 17:10 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2004-08-26 22:36:00 UTC


Attachments (Terms of Use)

Description Mike McCune 2004-08-05 00:30:03 UTC
Currently there are a set of methods on some of our domain objects
that we would like to *not* be in the public interface and only be
callable by the members of the package.

For instance:

com.redhat.rhn.domain.user.User.setRoles() 
com.redhat.rhn.domain.org.Org.getUserGroups()
com.redhat.rhn.domain.org.Org.setUserGroups()

we don't really want public consumers of these classes being able to
call these methods, but since all methods in an interface are public
we are stuck.

Comment 1 Jesus M. Rodriguez 2004-08-16 15:25:07 UTC
Maybe we can have two (2) interfaces.  One which is package protected
the other being public.  So all non-public methods should be in the
package protected interface.

public interface User {
    long getId();
    void setId(long id);
    ...
}

interface UserProtected {
    void setRoles(List roles);
    ...
}

Then UserImpl can implement both.  Only members of
com.redhat.rhn.domain.user can access UserProtected, while others can
only use User.


Note You need to log in before you can comment on or make changes to this bug.