Bug 129203

Summary: Determine some way to have package protected methods on domain objects
Product: [Retired] Red Hat Network Reporter: Mike McCune <mmccune>
Component: RHN/R&DAssignee: Mike McCune <mmccune>
Status: CLOSED CURRENTRELEASE QA Contact: Fanny Augustin <fmoquete>
Severity: medium Docs Contact:
Priority: medium    
Version: RHN Devel   
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2004-08-26 22:36:00 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 125080    

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.