com.ibm.as400.util.html.HTMLServlet Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jt400 Show documentation
Show all versions of jt400 Show documentation
The Open Source version of the IBM Toolbox for Java
///////////////////////////////////////////////////////////////////////////////
//
// JTOpen (IBM Toolbox for Java - OSS version)
//
// Filename: HTMLServlet.java
//
// The source code contained herein is licensed under the IBM Public License
// Version 1.0, which has been approved by the Open Source Initiative.
// Copyright (C) 1997-2001 International Business Machines Corporation and
// others. All rights reserved.
//
///////////////////////////////////////////////////////////////////////////////
package com.ibm.as400.util.html;
import com.ibm.as400.access.Trace;
import com.ibm.as400.access.ExtendedIllegalStateException;
import com.ibm.as400.access.ExtendedIllegalArgumentException;
import java.util.Vector;
import java.beans.PropertyChangeSupport;
import java.beans.PropertyChangeListener;
/**
* The HTMLServlet class represents a server-side include in an HTML page.
*
* This example creates a HTMLServlet tag:
*
* // Create an HTMLServlet.
* HTMLServlet servlet = new HTMLServlet("myServlet", "http://server:port/dir");
*
* // Create a parameter, then add it to the servlet.
* HTMLParameter param = new HTMLParameter("parm1", "value1");
* servlet.addParameter(param);
*
* // Create and add second parameter
* HTMLParameter param2 = servlet.add("parm2", "value2");
* System.out.println(servlet);
*
*
* Here is the output of the HTMLServlet tag:
*
* <servlet name="myServlet" codebase="http://server:port/dir">
* <param name="parm1" value="value1">
* <param name="parm2" value="value2">
* If you see this text, the web server providing this page does not support the SERVLET tag.
* </servlet>
*
*
* HTMLServlet objects generate the following events:
*
* - ElementEvent - The events fired are:
*
* - elementAdded
*
- elementRemoved
*
* - PropertyChangeEvent
*
**/
public class HTMLServlet extends HTMLTagAttributes implements java.io.Serializable // @Z1C
{
private static final String copyright = "Copyright (C) 1997-2001 International Business Machines Corporation and others.";
static final long serialVersionUID = -3782566892366981877L;
private String name_;
// The alternate text will get displayed if the servlet does not appear in the browser.
private String text_ = loader_.getText("PROP_DESC_SERVLET_ALTTEXT");
private String location_;
private Vector list_; // The list of servlet parameters.
// Handles loading the appropriate resource bundle
private static ResourceBundleLoader_h loader_;
transient private Vector elementListeners; // The list of element listeners @CRS
/**
* Constructs a default HTMLServlet object.
**/
public HTMLServlet()
{
super();
list_ = new Vector();
}
/**
* Constructs an HTMLServlet object with the specified servlet name.
*
* @param name The servlet name.
**/
public HTMLServlet(String name)
{
super();
setName(name);
list_ = new Vector();
}
/**
* Constructs an HTMLServlet object with the specified servlet name and location.
*
* @param name The servlet name.
* @param location The servlet location (http://server:port/dir).
**/
public HTMLServlet(String name, String location)
{
super();
setName(name);
setLocation(location);
list_ = new Vector();
}
/**
* Adds an HTMLparameter to the servlet tag.
*
* @param param The parameter.
**/
public void addParameter(HTMLParameter param) //$A2C
{
//@B1D
if (param == null)
throw new NullPointerException("param");
// add parameter to the list
list_.addElement(param);
fireElementEvent(ElementEvent.ELEMENT_ADDED);
}
/**
* Adds an HTMLParameter to the servlet.
*
* @param name The parameter name.
* @param value The parameter value.
*
* @return A HTMLParameter object.
**/
public HTMLParameter addParameter(String name, String value) //$A2C
{
//@B1D
if (name == null)
throw new NullPointerException("name");
if (value == null)
throw new NullPointerException("value");
//Create the HTMLParameter from the values passed in
HTMLParameter param = new HTMLParameter(name,value);
// Add the HTMLParameter to the group.
list_.addElement(param);
fireElementEvent(ElementEvent.ELEMENT_ADDED);
return param;
}
/**
* Adds an addElementListener.
* The specified addElementListeners elementAdded method will
* be called each time a HTMLParameter is added to the group.
* The addElementListener object is added to a list of addElementListeners
* managed by this HTMLServlet. It can be removed with removeElementListener.
*
* @see #removeElementListener
*
* @param listener The ElementListener.
**/
public void addElementListener(ElementListener listener)
{
if (listener == null)
throw new NullPointerException ("listener");
if (elementListeners == null) elementListeners = new Vector(); //@CRS
elementListeners.addElement(listener);
}
/**
* Fires the element event.
**/
private void fireElementEvent(int evt)
{
if (elementListeners == null) return;
Vector targets;
targets = (Vector) elementListeners.clone();
ElementEvent elementEvt = new ElementEvent(this, evt);
for (int i = 0; i < targets.size(); i++)
{
ElementListener target = (ElementListener)targets.elementAt(i);
if (evt == ElementEvent.ELEMENT_ADDED)
target.elementAdded(elementEvt);
else if (evt == ElementEvent.ELEMENT_REMOVED)
target.elementRemoved(elementEvt);
}
}
/**
* Returns the location of the servlet.
* @return The location.
**/
public String getLocation()
{
return location_;
}
/**
* Returns the name of the servlet.
* @return The name.
**/
public String getName()
{
return name_;
}
/**
* Returns the alternate text of the servlet.
* @return The text.
**/
public String getText()
{
return text_;
}
/**
* Returns a comment tag.
* This method should not be called. There is no XSL-FO support for this class.
* @return The comment tag.
**/
public String getFOTag() //@C1A
{
Trace.log(Trace.ERROR, "Attempting to getFOTag() for an object that doesn't support it.");
return "";
}
/**
* Returns the tag for the HTML servlet.
* @return The tag.
**/
public String getTag()
{
//@B1D
if (name_ == null)
{
Trace.log(Trace.ERROR, "Attempting to get tag before setting servlet name.");
throw new ExtendedIllegalStateException(
"name", ExtendedIllegalStateException.PROPERTY_NOT_SET );
}
StringBuffer s = new StringBuffer("\n");
}
else
{
s.append(getAttributeString()); // @Z1A
s.append(">\n");
}
// add parameters to the servlet tag
for (int i=0; i< list_.size(); i++)
{
HTMLParameter p = (HTMLParameter)list_.elementAt(i); //$A2C
s.append(p.getTag());
}
s.append(getText() + "\n");
s.append(" \n");
return s.toString();
}
/**
* Deserializes and initializes transient data.
**/
private void readObject(java.io.ObjectInputStream in)
throws java.io.IOException, ClassNotFoundException
{
in.defaultReadObject();
//@CRS changes_ = new PropertyChangeSupport(this);
//@CRS elementListeners = new Vector();
}
/**
* Removes an HTMLParameter from the servlet tag.
* @param param The parameter.
**/
public void removeParameter(HTMLParameter param) //$A2C
{
if (param == null)
throw new NullPointerException("param");
//@B1D
if (list_.removeElement(param))
fireElementEvent(ElementEvent.ELEMENT_REMOVED);
}
/**
* Removes this ElementListener from the internal list.
* If the ElementListener is not on the list, nothing is done.
*
* @see #addElementListener
*
* @param listener The ElementListener.
**/
public void removeElementListener(ElementListener listener)
{
if (listener == null)
throw new NullPointerException ("listener");
if (elementListeners != null) elementListeners.removeElement(listener); //@CRS
}
/**
* Sets the location for the servlet source. It can refer to a remote location from which
* the servlet should be loaded. The default location is assumed to be local.
*
* @param location The location.
**/
public void setLocation(String location)
{
if (location == null)
throw new NullPointerException("location");
if (location.length() == 0 )
{
throw new ExtendedIllegalArgumentException("location", ExtendedIllegalArgumentException.LENGTH_NOT_VALID);
}
//@B1D
String old = location_;
location_ = location;
if (changes_ != null) changes_.firePropertyChange("location", old, location ); //@CRS
}
/**
* Sets the class name of the servlet.
*
* @param name The name.
**/
public void setName(String name)
{
if (name == null)
throw new NullPointerException("name");
if (name.length() == 0)
throw new ExtendedIllegalArgumentException("name",
ExtendedIllegalArgumentException.LENGTH_NOT_VALID);
//@B1D
String old = name_;
name_ = name;
if (changes_ != null) changes_.firePropertyChange("name", old, name ); //@CRS
}
/**
* Set the alternate text for the servlet, which will be displayed if
* the web server does not support the servlet tag.
*
* @param text The alternate text.
**/
public void setText(String text)
{
if (text == null)
throw new NullPointerException("text");
if (text.length() == 0)
throw new ExtendedIllegalArgumentException("text",
ExtendedIllegalArgumentException.LENGTH_NOT_VALID);
//@B1D
String old = text_;
text_ = text;
if (changes_ != null) changes_.firePropertyChange("text", old, text ); //@CRS
}
/**
* Returns a String representation for the HTMLServlet tag.
* @return The tag.
**/
public String toString()
{
return getTag();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy