You are viewing a plain text version of this content. The canonical link for it is here.
Posted to bsf-dev@jakarta.apache.org by se...@apache.org on 2009/03/25 00:46:38 UTC

svn commit: r758092 - /jakarta/bsf/trunk/bsf3/bsf-api/src/main/java/javax/script/SimpleScriptContext.java

Author: sebb
Date: Tue Mar 24 23:46:37 2009
New Revision: 758092

URL: http://svn.apache.org/viewvc?rev=758092&view=rev
Log:
Add name checks as per spec.
Use inherited Javadoc

Modified:
    jakarta/bsf/trunk/bsf3/bsf-api/src/main/java/javax/script/SimpleScriptContext.java

Modified: jakarta/bsf/trunk/bsf3/bsf-api/src/main/java/javax/script/SimpleScriptContext.java
URL: http://svn.apache.org/viewvc/jakarta/bsf/trunk/bsf3/bsf-api/src/main/java/javax/script/SimpleScriptContext.java?rev=758092&r1=758091&r2=758092&view=diff
==============================================================================
--- jakarta/bsf/trunk/bsf3/bsf-api/src/main/java/javax/script/SimpleScriptContext.java (original)
+++ jakarta/bsf/trunk/bsf3/bsf-api/src/main/java/javax/script/SimpleScriptContext.java Tue Mar 24 23:46:37 2009
@@ -63,20 +63,26 @@
         writer = new PrintWriter(System.out, true);
         errorWriter = new PrintWriter(System.err, true);
 	}
+	
+	/**
+	 * Check if name is null or empty string
+	 * @param name to be checked
+	 */
+	private void checkName(String name){
+	    if (name == null){
+	        throw new NullPointerException("name must not be null");
+	    }
+	    if (name.length() == 0){
+	        throw new IllegalArgumentException("name must not be an empty string");
+	    }
+	}
     
-    /**
-     * Retrieves the value for getAttribute(String, int) for the 
-     * lowest scope in which it returns a non-null value.
-     * 
-     * @param name the name of the attribute 
-     * @return the value of the attribute
-     */
-    public Object getAttribute(String name) {
+
+	/** {@inheritDoc} */
+	public Object getAttribute(String name) {
+
+	    checkName(name);
       
-        if (name == null) {
-            throw new IllegalArgumentException("name cannot be null");
-        }
-        
         if (engineScope.get(name) != null) {
             return engineScope.get(name);
         } else if (globalScope.get(name) != null) {
@@ -86,21 +92,10 @@
         }
     }
     
-    /**
-     * Retrieves the value associated with specified name in the 
-     * specified level of scope. Returns null if no value is 
-     * associated with specified key in specified level of scope.
-     *  
-     * @param name   the name of the attribute
-     * @param scope the level of scope
-     * @return the value value associated with the specified name in
-     *         specified level of scope
-     */
+    /** {@inheritDoc} */
     public Object getAttribute(String name, int scope) {
     	
-        if (name == null) {
-            throw new IllegalArgumentException("name cannot be null");
-        }
+        checkName(name);
         
         switch (scope) {
         	case ENGINE_SCOPE:
@@ -112,17 +107,12 @@
         }
     }
 
-    /**
-     * Retrieves the lowest value of scopes for which the attribute 
-     * is defined. If there is no associate scope with the given 
-     * attribute (-1) is returned.
-     * 
-     * @param  name the name of attribute
-     * @return the value of level of scope  
-     */
+    /** {@inheritDoc} */
     public int getAttributesScope(String name) {
      
-    	if (engineScope.containsKey(name)) {
+        checkName(name);
+
+        if (engineScope.containsKey(name)) {
             return ENGINE_SCOPE;
         } else if(globalScope.containsKey(name)) {
             return GLOBAL_SCOPE;
@@ -131,14 +121,7 @@
         return -1;
     }
     
-    /**
-     * Retrieves the Namespace instance associated with the specified
-     * level of scope.
-     * 
-     * @param scope the level of the scope
-     * @return the namespace associated with the specified level of 
-     *         scope
-     */
+    /** {@inheritDoc} */
     public Bindings getBindings(int scope) {
         
     	switch (scope) {
@@ -147,24 +130,14 @@
         	case GLOBAL_SCOPE:
         		return globalScope;
         	default:
-        		return null; // shouldn't I throw an IllegalArgumentException
+        		throw new IllegalArgumentException("invalid scope");
         }
     }
     
-    /**
-     * Removes the specified attribute form the specified level of 
-     * scope.
-     * 
-     * @param name the name of the attribute
-     * @param scope the level of scope 
-     * @return value which is removed
-     * @throws IllegalArgumentException
-     */
+    /** {@inheritDoc} */
     public Object removeAttribute(String name, int scope) { 
        
-    	if (name == null) {
-            throw new IllegalArgumentException("name is null");
-        }
+        checkName(name);
         
         switch (scope) {
         	case ENGINE_SCOPE:
@@ -176,21 +149,10 @@
         }        
     }
     
-    /**
-     * Sets an attribute specified by the name in specified level of 
-     * scope.
-     *  
-     * @param name   the name of the attribute
-     * @param value the value of the attribute
-     * @param scope the level of the scope
-     * @throws IllegalArgumentException if the name is null scope is
-     *         invalid
-     */
+    /** {@inheritDoc} */
     public void setAttribute(String name, Object value, int scope) {
        
-    	if (name == null) {
-            throw new IllegalArgumentException("name is null");
-        }
+        checkName(name);
         
         switch (scope) {
         	case ENGINE_SCOPE:
@@ -200,18 +162,11 @@
         		globalScope.put(name, value);
         		break;
         	default:
-        		throw new IllegalArgumentException("invaild scope");
+        		throw new IllegalArgumentException("invalid scope");
         }
     }
 	
-	/**
-	 * Associates the specified namespace with specified level of 
-     * scope.
-	 * 
-	 * @param namespace the namespace to be associated with specified
-     *                  level of scope
-     * @param scope     the level of scope 
-	 */	
+    /** {@inheritDoc} */
 	public void setBindings(Bindings namespace, int scope) {
 	
 		switch (scope) {
@@ -225,34 +180,41 @@
 				globalScope = namespace;
 				break;
 			default:
-				throw new IllegalArgumentException("invaild scope");
+				throw new IllegalArgumentException("invalid scope");
 		}
     }
 
+    /** {@inheritDoc} */
 	public List getScopes() {
 		return SCOPES;
 	}
 
+    /** {@inheritDoc} */
 	public Reader getReader() {
 		return reader;
 	}
 
+    /** {@inheritDoc} */
 	public void setReader(Reader reader) {
 		this.reader = reader;
 	}
 
+    /** {@inheritDoc} */
 	public Writer getWriter() {
 		return writer;
 	}
 
+    /** {@inheritDoc} */
 	public void setWriter(Writer writer) {
 		this.writer = writer;
 	}
 
+    /** {@inheritDoc} */
 	public Writer getErrorWriter() {
 		return errorWriter;
 	}
 
+    /** {@inheritDoc} */
 	public void setErrorWriter(Writer writer) {
 		this.errorWriter = writer;
 	}



---------------------------------------------------------------------
To unsubscribe, e-mail: bsf-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: bsf-dev-help@jakarta.apache.org