FileDocCategorySizeDatePackage
WebResource.javaAPI DocGlassfish v2 API4392Fri May 04 22:35:24 BST 2007com.sun.enterprise.security.acl

WebResource

public class WebResource extends Resource
author
Harish Prabandham

Fields Summary
private transient boolean
wildcard
private transient String
path
Constructors Summary
public WebResource(String app, String name, String method)

        super(app,name,method);
        init(name);
    
Methods Summary
public booleanequals(java.lang.Object obj)

        if(obj == this)
            return true;
        
        if ((obj == null) || (obj.getClass() != getClass()))
            return false;
        
        Resource r = (Resource) obj;
        
        return getApplication().equals(r.getApplication()) &&
            getMethod().equals(r.getMethod()) &&
            getName().equals(r.getName());
    
public booleanimplies(Resource resource)

	if(( resource == null) || (resource.getClass() != getClass())) 
		return false;

	WebResource that = (WebResource) resource;

	// Application name is not an issue in implies .....
	if(!getMethod().equals(that.getMethod()))
            return false;
		
	if(this.wildcard) {
            if (that.wildcard)
                // one wildcard can imply another
                return that.path.startsWith(path);
            else
                // make sure ap.path is longer so a/b/* doesn't imply a/b
                return (that.path.length() > this.path.length()) &&
                    that.path.startsWith(this.path);
	} else {
	    if (that.wildcard) {
                // a non-wildcard can't imply a wildcard
                return false;
            }
            else {
                return this.path.equals(that.path);
            }
	}
    
private voidinit(java.lang.String name)

                                                                    
    	if (name == null)                                                    
            throw new IllegalArgumentException("name can't be null");
                                                                         
    	if (name.endsWith("/*") || name.equals("*")) {
            wildcard = true;
            if (name.length() == 1) {
                path = "";
            } else {
                path = name.substring(0, name.length()-1);
            }
    	} else {
            path = name;
    	}