dgraham 2003/03/17 18:42:59
Modified: src/share/org/apache/struts/taglib/tiles InsertTag.java
Log:
Formatting changes only (in preparation of bug fix).
Revision Changes Path
1.13 +168 -98
jakarta-struts/src/share/org/apache/struts/taglib/tiles/InsertTag.java
Index: InsertTag.java
===================================================================
RCS file:
/home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/tiles/InsertTag.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- InsertTag.java 8 Mar 2003 19:23:49 -0000 1.12
+++ InsertTag.java 18 Mar 2003 02:42:59 -0000 1.13
@@ -83,10 +83,10 @@
import org.apache.struts.tiles.DefinitionAttribute;
import org.apache.struts.tiles.DefinitionNameAttribute;
import org.apache.struts.tiles.DefinitionsFactoryException;
-import org.apache.struts.tiles.TilesUtil;
import org.apache.struts.tiles.DirectStringAttribute;
import org.apache.struts.tiles.FactoryNotFoundException;
import org.apache.struts.tiles.NoSuchDefinitionException;
+import org.apache.struts.tiles.TilesUtil;
/**
* This is the tag handler for <tiles:insert>, which includes
@@ -97,7 +97,9 @@
* @author Cedric Dumoulin
* @version $Revision$ $Date$
*/
-public class InsertTag extends DefinitionTagSupport implements PutTagParent,
ComponentConstants, PutListTagParent {
+public class InsertTag
+ extends DefinitionTagSupport
+ implements PutTagParent, ComponentConstants, PutListTagParent {
/** Commons Logging instance. */
protected static Log log = LogFactory.getLog(InsertTag.class);
@@ -346,7 +348,7 @@
&& !((HttpServletRequest) pageContext.getRequest()).isUserInRole(
role)) { // not allowed : skip attribute
return;
- } // end if
+ }
putAttribute(nestedTag.getName(), nestedTag.getRealValue());
}
@@ -364,11 +366,12 @@
&& !((HttpServletRequest) pageContext.getRequest()).isUserInRole(
role)) { // not allowed : skip attribute
return;
- } // end if
+ }
// Check if a name is defined
- if (nestedTag.getName() == null)
+ if (nestedTag.getName() == null) {
throw new JspException("Error - PutList : attribute name is not
defined. It is mandatory as the list is added as attribute of 'insert'.");
+ }
// now add attribute to enclosing parent (i.e. : this object).
putAttribute(nestedTag.getName(), nestedTag.getList());
}
@@ -384,7 +387,7 @@
&& !((HttpServletRequest) pageContext.getRequest()).isUserInRole(
role)) { // not allowed : skip attribute
return;
- } // end if
+ }
putAttribute(nestedTag.getName(), nestedTag.getList());
}
@@ -413,7 +416,9 @@
return null;
}
try {
- return ComponentDefinition.createController(controllerName,
controllerType);
+ return ComponentDefinition.createController(
+ controllerName,
+ controllerType);
} catch (InstantiationException ex) {
throw new JspException(ex.getMessage());
}
@@ -428,16 +433,16 @@
* <li> direct String
* </ul>
* Handlers also contain sub-component context.
- *
*/
public int doStartTag() throws JspException {
// Check role immediatly to avoid useless stuff.
// In case of insertion of a "definition", definition's role still checked
later.
// This lead to a double check of "role" ;-(
- if (role != null && !((HttpServletRequest)
pageContext.getRequest()).isUserInRole(role)) {
+ if (role != null
+ && !((HttpServletRequest) pageContext.getRequest()).isUserInRole(role))
{
processEndTag = false;
return SKIP_BODY;
- } // end if
+ }
// Now, real stuff
try {
@@ -503,8 +508,10 @@
if (value instanceof AttributeDefinition) {
// We have a type => return appropriate IncludeType
return processTypedAttribute((AttributeDefinition) value);
- } else if (value instanceof ComponentDefinition)
+
+ } else if (value instanceof ComponentDefinition) {
return processDefinition((ComponentDefinition) value);
+ }
// Value must denote a valid String
return processAsDefinitionOrURL(value.toString());
@@ -526,8 +533,9 @@
public TagHandler processName(String name) throws JspException {
Object attrValue = getCurrentContext().getAttribute(name);
- if (attrValue != null)
+ if (attrValue != null) {
return processObjectValue(attrValue);
+ }
return processAsDefinitionOrURL(name);
}
@@ -552,39 +560,49 @@
*/
protected TagHandler processDefinitionName(String name) throws JspException {
- try {
- ComponentDefinition definition = TilesUtil.getDefinition(name,
(HttpServletRequest)pageContext.getRequest(),pageContext.getServletContext());
- if (definition == null) { // is it possible ?
- throw new NoSuchDefinitionException();
- }
- return processDefinition(definition);
-
- } catch (NoSuchDefinitionException ex) {
- throw new JspException(
- "Error - Tag Insert : Can't get definition '"
- + definitionName
- + "'. Check if this name exist in definitions factory.");
- } catch (FactoryNotFoundException ex) { // factory not found.
- throw new JspException(ex.getMessage());
- } // end catch
- catch (DefinitionsFactoryException ex) {
- if (log.isDebugEnabled())
- ex.printStackTrace();
- // Save exception to be able to show it later
- pageContext.setAttribute(Globals.EXCEPTION_KEY, ex,
PageContext.REQUEST_SCOPE);
- throw new JspException(ex.getMessage());
- } // end catch
+ try {
+ ComponentDefinition definition =
+ TilesUtil.getDefinition(
+ name,
+ (HttpServletRequest) pageContext.getRequest(),
+ pageContext.getServletContext());
+
+ if (definition == null) { // is it possible ?
+ throw new NoSuchDefinitionException();
+ }
+ return processDefinition(definition);
+
+ } catch (NoSuchDefinitionException ex) {
+ throw new JspException(
+ "Error - Tag Insert : Can't get definition '"
+ + definitionName
+ + "'. Check if this name exist in definitions factory.");
+ } catch (FactoryNotFoundException ex) {
+ throw new JspException(ex.getMessage());
+
+ } catch (DefinitionsFactoryException ex) {
+ if (log.isDebugEnabled()) {
+ ex.printStackTrace();
+ }
+ // Save exception to be able to show it later
+ pageContext.setAttribute(
+ Globals.EXCEPTION_KEY,
+ ex,
+ PageContext.REQUEST_SCOPE);
+ throw new JspException(ex.getMessage());
+ }
}
/**
* End of Process tag attribute "definition".
- * Overload definition with tag attributes "template" and "role".
- * Then, create appropriate tag handler.
+ * Overload definition with tag attributes "template" and "role".
+ * Then, create appropriate tag handler.
* @param definition Definition to process.
* @return Appropriate TagHandler.
- * @throws JspException InstantiationException Can't create requested controller
+ * @throws JspException InstantiationException Can't create requested controller
*/
- protected TagHandler processDefinition(ComponentDefinition definition) throws
JspException {
+ protected TagHandler processDefinition(ComponentDefinition definition)
+ throws JspException {
// Declare local variable in order to not change Tag attribute values.
String role = this.role;
String page = this.page;
@@ -594,15 +612,25 @@
controller = definition.getOrCreateController();
// Overload definition with tag's template and role.
- if (role == null)
+ if (role == null) {
role = definition.getRole();
- if (page == null)
+ }
+ if (page == null) {
page = definition.getTemplate();
- if (controllerName != null)
- controller = ComponentDefinition.createController(controllerName,
controllerType);
+ }
+ if (controllerName != null) {
+ controller =
+ ComponentDefinition.createController(
+ controllerName,
+ controllerType);
+ }
// Can check if page is set
- return new InsertHandler(definition.getAttributes(), page, role,
controller);
+ return new InsertHandler(
+ definition.getAttributes(),
+ page,
+ role,
+ controller);
} catch (InstantiationException ex) {
throw new JspException(ex.getMessage());
}
@@ -616,13 +644,22 @@
* @param beanScope bean scope, or null.
* @return Appropriate TagHandler.
* @throws JspException - NoSuchDefinitionException No value associated to bean.
- * @throws JspException an error occur while reading bean, or no definition
found.
- * @throws JspException - Throws by underlying nested call to
processDefinitionName()
+ * @throws JspException an error occur while reading bean, or no definition
found.
+ * @throws JspException - Throws by underlying nested call to
processDefinitionName()
*/
- protected TagHandler processBean(String beanName, String beanProperty, String
beanScope)
+ protected TagHandler processBean(
+ String beanName,
+ String beanProperty,
+ String beanScope)
throws JspException {
+
Object beanValue =
- TagUtils.getRealValueFromBean(beanName, beanProperty, beanScope,
pageContext);
+ TagUtils.getRealValueFromBean(
+ beanName,
+ beanProperty,
+ beanScope,
+ pageContext);
+
if (beanValue == null) {
//throw new NoSuchDefinitionException();
throw new JspException(
@@ -633,7 +670,7 @@
+ "' in scope '"
+ beanScope
+ "'.");
- } // end if
+ }
return processObjectValue(beanValue);
}
@@ -649,9 +686,10 @@
public TagHandler processAttribute(String name) throws JspException {
Object attrValue = getCurrentContext().getAttribute(name);
- if (attrValue == null)
+ if (attrValue == null) {
throw new JspException(
"Error - Tag Insert : No value found for attribute '" + name +
"'.");
+ }
return processObjectValue(attrValue);
}
@@ -663,10 +701,16 @@
*/
public TagHandler processAsDefinitionOrURL(String name) throws JspException {
try {
- ComponentDefinition definition = TilesUtil.getDefinition(name,
pageContext.getRequest(), pageContext.getServletContext());
- if (definition != null)
+ ComponentDefinition definition =
+ TilesUtil.getDefinition(
+ name,
+ pageContext.getRequest(),
+ pageContext.getServletContext());
+ if (definition != null) {
return processDefinition(definition);
- } catch (DefinitionsFactoryException ex) { // silently failed, because we
can choose to not define a factory.
+ }
+ } catch (DefinitionsFactoryException ex) {
+ // silently failed, because we can choose to not define a factory.
}
// no definition found, try as url
return processUrl(name);
@@ -678,14 +722,15 @@
* @return appropriate TagHandler.
* @throws JspException - Throws by underlying nested call to
processDefinitionName()
*/
- public TagHandler processTypedAttribute(AttributeDefinition value) throws
JspException {
- if (value instanceof DirectStringAttribute)
+ public TagHandler processTypedAttribute(AttributeDefinition value)
+ throws JspException {
+ if (value instanceof DirectStringAttribute) {
return new DirectStringHandler((String) value.getValue());
- else if (value instanceof DefinitionAttribute)
+ } else if (value instanceof DefinitionAttribute) {
return processDefinition((ComponentDefinition) value.getValue());
- else if (value instanceof DefinitionNameAttribute) {
+ } else if (value instanceof DefinitionNameAttribute) {
return processDefinitionName((String) value.getValue());
}
//else if( value instanceof PathAttribute )
@@ -699,17 +744,17 @@
* @throws IOException - Thrown by call to pageContext.include()
*/
protected void doInclude(String page) throws ServletException, IOException {
- TilesUtil.doInclude( page,
- (HttpServletRequest)pageContext.getRequest(),
- (HttpServletResponse)pageContext.getResponse(),
- pageContext.getServletContext());
+ TilesUtil.doInclude(
+ page,
+ (HttpServletRequest) pageContext.getRequest(),
+ (HttpServletResponse) pageContext.getResponse(),
+ pageContext.getServletContext());
}
-
/////////////////////////////////////////////////////////////////////////////
/**
- * Inner Interface.
+ * Inner Interface.
* Sub handler for tag.
*/
protected interface TagHandler {
@@ -744,7 +789,12 @@
* Constructor.
* Create insert handler using Component definition.
*/
- public InsertHandler(Map attributes, String page, String role, Controller
controller) {
+ public InsertHandler(
+ Map attributes,
+ String page,
+ String role,
+ Controller controller) {
+
this.page = page;
this.role = role;
this.controller = controller;
@@ -768,9 +818,10 @@
public int doStartTag() throws JspException {
// Check role
if (role != null
- && !((HttpServletRequest)
pageContext.getRequest()).isUserInRole(role)) {
+ && !((HttpServletRequest) pageContext.getRequest()).isUserInRole(
+ role)) {
return SKIP_BODY;
- } // end if
+ }
// save current context
this.currentContext = getCurrentContext();
@@ -791,35 +842,43 @@
public int doEndTag() throws JspException {
// Check role
if (role != null
- && !((HttpServletRequest)
pageContext.getRequest()).isUserInRole(role)) {
+ && !((HttpServletRequest) pageContext.getRequest()).isUserInRole(
+ role)) {
return EVAL_PAGE;
- } // end if
+ }
try {
- if (log.isDebugEnabled())
+ if (log.isDebugEnabled()) {
log.debug("insert page='" + page + "'.");
+ }
// set new context for included component.
pageContext.setAttribute(
ComponentConstants.COMPONENT_CONTEXT,
subCompContext,
PageContext.REQUEST_SCOPE);
+
// Call controller if any
- if (controller != null)
+ if (controller != null) {
controller.perform(
subCompContext,
(HttpServletRequest) pageContext.getRequest(),
(HttpServletResponse) pageContext.getResponse(),
pageContext.getServletContext());
+ }
+
// include requested component.
- if (flush)
+ if (flush) {
pageContext.getOut().flush();
+ }
doInclude(page);
} catch (IOException ex) {
- processException(ex, "Can't insert page '" + page + "' : " +
ex.getMessage());
+ processException(
+ ex,
+ "Can't insert page '" + page + "' : " + ex.getMessage());
} catch (IllegalArgumentException ex) { // Can't resolve page uri
// Do we ignore bad page uri errors ?
- if (!(page == null && isErrorIgnored))
+ if (!(page == null && isErrorIgnored)) {
// Don't ignore bad page uri errors
processException(
ex,
@@ -827,6 +886,7 @@
+ page
+ "'. Check if it exists.\n"
+ ex.getMessage());
+ }
} catch (ServletException ex) {
Throwable realEx = ex;
if (ex.getRootCause() != null) {
@@ -834,20 +894,28 @@
}
processException(
realEx,
- "[ServletException in:" + page + "] " + realEx.getMessage() +
"'");
+ "[ServletException in:"
+ + page
+ + "] "
+ + realEx.getMessage()
+ + "'");
} catch (Exception ex) {
- processException(ex, "[Exception in:" + page + "] " +
ex.getMessage());
+ processException(
+ ex,
+ "[Exception in:" + page + "] " + ex.getMessage());
} finally {
// restore old context
// done only if currentContext not null (bug with Silverstream ?;
related by Arvindra Sehmi 20010712)
- if (currentContext != null)
+ if (currentContext != null) {
pageContext.setAttribute(
ComponentConstants.COMPONENT_CONTEXT,
currentContext,
PageContext.REQUEST_SCOPE);
+ }
}
return EVAL_PAGE;
}
+
/**
* Process an exception.
* Depending of debug attribute, print full exception trace or only
@@ -855,18 +923,19 @@
* @param ex Exception
* @param msg An additional message to show in console and to propagate if
we can't output exception.
*/
- protected void processException(Throwable ex, String msg) throws
JspException {
+ protected void processException(Throwable ex, String msg)
+ throws JspException {
try {
- if (msg == null)
+ if (msg == null) {
msg = ex.getMessage();
-
+ }
if (log.isDebugEnabled()) { // show full trace
log.debug(msg, ex);
pageContext.getOut().println(msg);
ex.printStackTrace(new PrintWriter(pageContext.getOut(), true));
} else { // show only message
pageContext.getOut().println(msg);
- } // end if
+ }
} catch (IOException ioex) { // problems. Propagate original exception
pageContext.setAttribute(
ComponentConstants.EXCEPTION_KEY,
@@ -883,18 +952,16 @@
* @param role Comma-delimited list of roles.
* @param request The request.
*/
- static public boolean userHasRole(HttpServletRequest request, String role)
- {
- StringTokenizer st = new StringTokenizer(role, ROLE_DELIMITER, false);
- while( st.hasMoreTokens())
- {
- if(request.isUserInRole(st.nextToken()))
- return true;
- } // end loop
- return false;
- }
+ static public boolean userHasRole(HttpServletRequest request, String role) {
+ StringTokenizer st = new StringTokenizer(role, ROLE_DELIMITER, false);
+ while (st.hasMoreTokens()) {
+ if (request.isUserInRole(st.nextToken()))
+ return true;
+ }
+ return false;
+ }
/** The role delimiter. */
- static public final String ROLE_DELIMITER =",";
+ static public final String ROLE_DELIMITER = ",";
/////////////////////////////////////////////////////////////////////////////
@@ -931,18 +998,21 @@
*/
public int doEndTag() throws JspException {
try {
- if (flush)
+ if (flush) {
pageContext.getOut().flush();
-
+ }
pageContext.getOut().print(value);
+
} catch (IOException ex) {
- if (log.isDebugEnabled())
+ if (log.isDebugEnabled()) {
log.debug("Can't write string '" + value + "' : ", ex);
+ }
pageContext.setAttribute(
ComponentConstants.EXCEPTION_KEY,
ex,
PageContext.REQUEST_SCOPE);
- throw new JspException("Can't write string '" + value + "' : " +
ex.getMessage());
+ throw new JspException(
+ "Can't write string '" + value + "' : " + ex.getMessage());
}
return EVAL_PAGE;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]