helma/src/helma/framework/core/ApplicationBean.java
2003-11-28 20:15:28 +00:00

503 lines
9.3 KiB
Java

/*
* Helma License Notice
*
* The contents of this file are subject to the Helma License
* Version 2.0 (the "License"). You may not use this file except in
* compliance with the License. A copy of the License is available at
* http://adele.helma.org/download/helma/license.txt
*
* Copyright 1998-2003 Helma Software. All Rights Reserved.
*
* $RCSfile$
* $Author$
* $Revision$
* $Date$
*/
package helma.framework.core;
import helma.objectmodel.INode;
import helma.util.CronJob;
import helma.util.SystemMap;
import helma.util.WrappedMap;
import java.io.File;
import java.io.Serializable;
import java.util.Date;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
/**
*
*/
public class ApplicationBean implements Serializable {
Application app;
WrappedMap properties = null;
/**
* Creates a new ApplicationBean object.
*
* @param app ...
*/
public ApplicationBean(Application app) {
this.app = app;
}
/**
*
*/
public void clearCache() {
app.clearCache();
}
/**
*
*
* @param msg ...
*/
public void log(Object msg) {
String str = (msg == null) ? "null" : msg.toString();
app.logEvent(str);
}
/**
*
*
* @param logname ...
* @param msg ...
*/
public void log(String logname, Object msg) {
String str = (msg == null) ? "null" : msg.toString();
app.getLogger(logname).info(str);
}
/**
*
*
* @param msg ...
*/
public void debug(Object msg) {
if (app.debug()) {
String str = (msg == null) ? "null" : msg.toString();
app.logEvent(str);
}
}
/**
*
*
* @param logname ...
* @param msg ...
*/
public void debug(String logname, Object msg) {
if (app.debug()) {
String str = (msg == null) ? "null" : msg.toString();
app.getLogger(logname).info(str);
}
}
/**
*
*
* @return ...
*/
public int countSessions() {
return app.sessions.size();
}
/**
*
*
* @param sessionID ...
*
* @return ...
*/
public SessionBean getSession(String sessionID) {
if (sessionID == null) {
return null;
}
Session session = app.getSession(sessionID.trim());
if (session == null) {
return null;
}
return new SessionBean(session);
}
/**
*
*
* @param sessionID ...
*
* @return ...
*/
public SessionBean createSession(String sessionID) {
if (sessionID == null) {
return null;
}
Session session = app.checkSession(sessionID.trim());
if (session == null) {
return null;
}
return new SessionBean(session);
}
/**
*
*
* @return ...
*/
public SessionBean[] getSessions() {
SessionBean[] theArray = new SessionBean[app.sessions.size()];
int i = 0;
for (Enumeration e = app.sessions.elements(); e.hasMoreElements();) {
SessionBean sb = new SessionBean((Session) e.nextElement());
theArray[i++] = sb;
}
return theArray;
}
/**
*
*
* @param username ...
* @param password ...
*
* @return ...
*/
public INode registerUser(String username, String password) {
if ((username == null) || (password == null) || "".equals(username.trim()) ||
"".equals(password.trim())) {
return null;
} else {
return app.registerUser(username, password);
}
}
/**
*
*
* @param username ...
*
* @return ...
*/
public INode getUser(String username) {
if ((username == null) || "".equals(username.trim())) {
return null;
}
return app.getUserNode(username);
}
/**
*
*
* @return ...
*/
public INode[] getActiveUsers() {
List activeUsers = app.getActiveUsers();
return (INode[]) activeUsers.toArray(new INode[0]);
}
/**
*
*
* @return ...
*/
public INode[] getRegisteredUsers() {
List registeredUsers = app.getRegisteredUsers();
return (INode[]) registeredUsers.toArray(new INode[0]);
}
/**
*
*
* @param usernode ...
*
* @return ...
*/
public SessionBean[] getSessionsForUser(INode usernode) {
if (usernode == null) {
return new SessionBean[0];
} else {
return getSessionsForUser(usernode.getName());
}
}
/**
*
*
* @param username ...
*
* @return ...
*/
public SessionBean[] getSessionsForUser(String username) {
if ((username == null) || "".equals(username.trim())) {
return new SessionBean[0];
}
List userSessions = app.getSessionsForUsername(username);
return (SessionBean[]) userSessions.toArray(new SessionBean[0]);
}
/**
*
*
* @param functionName ...
*/
public void addCronJob(String functionName) {
CronJob job = new CronJob(functionName);
job.setFunction(functionName);
app.customCronJobs.put(functionName, job);
}
/**
*
*
* @param functionName ...
* @param year ...
* @param month ...
* @param day ...
* @param weekday ...
* @param hour ...
* @param minute ...
*/
public void addCronJob(String functionName, String year, String month, String day,
String weekday, String hour, String minute) {
CronJob job = CronJob.newJob(functionName, year, month, day, weekday, hour, minute);
app.customCronJobs.put(functionName, job);
}
/**
*
*
* @param functionName ...
*/
public void removeCronJob(String functionName) {
app.customCronJobs.remove(functionName);
}
// getter methods for readonly properties of this application
public int getCacheusage() {
return app.getCacheUsage();
}
/**
*
*
* @return ...
*/
public INode getData() {
return app.getCacheNode();
}
/**
*
*
* @return ...
*/
public Map getModules() {
return app.modules;
}
/**
*
*
* @return ...
*/
public String getDir() {
return app.getAppDir().getAbsolutePath();
}
/**
*
*
* @return ...
*/
public String getName() {
return app.getName();
}
/**
*
*
* @return ...
*/
public Date getUpSince() {
return new Date(app.starttime);
}
/**
*
*
* @return ...
*/
public long getRequestCount() {
return app.getRequestCount();
}
/**
*
*
* @return ...
*/
public long getXmlrpcCount() {
return app.getXmlrpcCount();
}
/**
*
*
* @return ...
*/
public long getErrorCount() {
return app.getErrorCount();
}
/**
*
*
* @return ...
*/
public Application get__app__() {
return app;
}
/**
*
*
* @return ...
*/
public Map getProperties() {
if (properties == null) {
properties = new WrappedMap(app.getProperties());
properties.setReadonly(true);
}
return properties;
}
/**
*
*
* @return ...
*/
public int getFreeThreads() {
return app.countFreeEvaluators();
}
/**
*
*
* @return ...
*/
public int getActiveThreads() {
return app.countActiveEvaluators();
}
/**
*
*
* @return ...
*/
public int getMaxThreads() {
return app.countEvaluators();
}
/**
*
*
* @param n ...
*/
public void setMaxThreads(int n) {
// add one to the number to compensate for the internal scheduler.
app.setNumberOfEvaluators(n + 1);
}
/**
*
*
* @return ...
*/
public Map getSkinfiles() {
Map skinz = new SystemMap();
for (Iterator it = app.getPrototypes().iterator(); it.hasNext();) {
Prototype p = (Prototype) it.next();
skinz.put(p.getName(), p.getSkinMap());
}
return skinz;
}
/**
*
*
* @param skinpath ...
*
* @return ...
*/
public Map getSkinfilesInPath(Object[] skinpath) {
Map skinz = new SystemMap();
for (Iterator it = app.getPrototypes().iterator(); it.hasNext();) {
Prototype p = (Prototype) it.next();
skinz.put(p.getName(), p.getSkinMap(skinpath));
}
return skinz;
}
/**
*
*
* @return ...
*/
public String getAppDir() {
return app.getAppDir().getAbsolutePath();
}
/**
*
*
* @return ...
*/
public String getServerDir() {
File f = app.getServerDir();
if (f == null) {
f = app.getAppDir();
}
return f.getAbsolutePath();
}
/**
*
*
* @return ...
*/
public String toString() {
return "[Application " + app.getName() + "]";
}
}