From d5809b205b0b38aaa420e82b3b8d77b624841086 Mon Sep 17 00:00:00 2001 From: "Eric J. Bowersox" Date: Fri, 27 Jun 2003 07:40:42 +0000 Subject: [PATCH] implemented internals of ConferenceManager (ConferenceAccessObject), database operations, attributes of ConferenceImpl and LinkedConferenceImpl --- .../conf/iface/ConferenceAccessObject.java | 7 +- .../venice/conf/impl/ConferenceImpl.java | 34 ++- .../venice/conf/impl/ConferenceManager.java | 123 +++++++- .../conf/impl/ConferenceManagerOps.java | 24 ++ .../conf/impl/ConferenceManagerOps_mysql.java | 262 ++++++++++++++++++ .../conf/impl/ConferenceMessages.properties | 22 ++ .../conf/impl/LinkedConferenceImpl.java | 14 +- .../venice/conf/module/Controller.java | 2 + .../conf/obj/DynamicImplConferenceAccess.java | 27 +- 9 files changed, 491 insertions(+), 24 deletions(-) create mode 100644 src/conferencing-module/com/silverwrist/venice/conf/impl/ConferenceMessages.properties diff --git a/src/conferencing-module/com/silverwrist/venice/conf/iface/ConferenceAccessObject.java b/src/conferencing-module/com/silverwrist/venice/conf/iface/ConferenceAccessObject.java index 1e1db2a..f69ea7c 100644 --- a/src/conferencing-module/com/silverwrist/venice/conf/iface/ConferenceAccessObject.java +++ b/src/conferencing-module/com/silverwrist/venice/conf/iface/ConferenceAccessObject.java @@ -20,14 +20,19 @@ package com.silverwrist.venice.conf.iface; import java.util.List; import com.silverwrist.dynamo.except.DatabaseException; import com.silverwrist.dynamo.iface.DynamicObject; +import com.silverwrist.dynamo.iface.DynamoUser; import com.silverwrist.venice.iface.VeniceCommunity; public interface ConferenceAccessObject extends DynamicObject { - public List getConferences(VeniceCommunity comm) throws DatabaseException; + public List getConferences(DynamoUser user, VeniceCommunity comm) throws DatabaseException; public VeniceConference getConference(int confid) throws DatabaseException; public VeniceConference getConference(String alias) throws DatabaseException; + public VeniceLinkedConference getLinkedConference(VeniceCommunity comm, int confid) throws DatabaseException; + + public VeniceLinkedConference getLinkedConference(VeniceCommunity comm, String alias) throws DatabaseException; + } // end interface ConferenceAccessObject diff --git a/src/conferencing-module/com/silverwrist/venice/conf/impl/ConferenceImpl.java b/src/conferencing-module/com/silverwrist/venice/conf/impl/ConferenceImpl.java index cd79f10..e65b249 100644 --- a/src/conferencing-module/com/silverwrist/venice/conf/impl/ConferenceImpl.java +++ b/src/conferencing-module/com/silverwrist/venice/conf/impl/ConferenceImpl.java @@ -33,16 +33,28 @@ class ConferenceImpl implements VeniceConference private DynamicImplConference m_dobj; private ConferenceOps m_ops; + private int m_confid; + private java.util.Date m_createdate; + private java.util.Date m_lastupdate; + private int m_hosts_gid; + private int m_aclid; + private String m_name; /*-------------------------------------------------------------------------------- * Constructor *-------------------------------------------------------------------------------- */ - ConferenceImpl(ConferenceOps ops) + ConferenceImpl(ConferenceOps ops, Map params) { m_dobj = new DynamicImplConference(this); m_ops = ops; + m_confid = ((Integer)(params.get(ConferenceManagerOps.KEY_CONFID))).intValue(); + m_createdate = (java.util.Date)(params.get(ConferenceManagerOps.KEY_CREATE_DATE)); + m_lastupdate = (java.util.Date)(params.get(ConferenceManagerOps.KEY_LAST_UPDATE)); + m_hosts_gid = ((Integer)(params.get(ConferenceManagerOps.KEY_HOSTS_GID))).intValue(); + m_aclid = ((Integer)(params.get(ConferenceManagerOps.KEY_ACLID))).intValue(); + m_name = (String)(params.get(ConferenceManagerOps.KEY_NAME)); } // end constructor @@ -93,9 +105,9 @@ class ConferenceImpl implements VeniceConference */ public String getName() { - return null; // TEMP + return m_name; - } + } // end getName /*-------------------------------------------------------------------------------- * Implementations from interface ObjectProvider @@ -194,9 +206,9 @@ class ConferenceImpl implements VeniceConference public int getConfID() { - return -1; // TEMP + return m_confid; - } + } // end getConfID public void setName(DynamoUser caller, String name) throws DatabaseException, DynamoSecurityException { @@ -204,15 +216,15 @@ class ConferenceImpl implements VeniceConference public java.util.Date getCreatedDate() { - return null; // TEMP + return m_createdate; - } + } // end getCreatedDate public java.util.Date getLastUpdateDate() { - return null; // TEMP + return m_lastupdate; - } + } // end getLastUpdateDate public void setLastUpdateDate(DynamoUser caller, java.util.Date date) throws DatabaseException, DynamoSecurityException @@ -221,9 +233,9 @@ class ConferenceImpl implements VeniceConference public int getHostsGID() { - return -1; // TEMP + return m_hosts_gid; - } + } // end getHostsGID public DynamoGroup getHosts() throws DatabaseException { diff --git a/src/conferencing-module/com/silverwrist/venice/conf/impl/ConferenceManager.java b/src/conferencing-module/com/silverwrist/venice/conf/impl/ConferenceManager.java index 0bfe2aa..988ee2c 100644 --- a/src/conferencing-module/com/silverwrist/venice/conf/impl/ConferenceManager.java +++ b/src/conferencing-module/com/silverwrist/venice/conf/impl/ConferenceManager.java @@ -17,10 +17,13 @@ */ package com.silverwrist.venice.conf.impl; +import java.security.acl.AclNotFoundException; import java.util.*; +import org.apache.commons.collections.*; import com.silverwrist.dynamo.except.*; import com.silverwrist.dynamo.iface.*; import com.silverwrist.venice.iface.*; +import com.silverwrist.venice.conf.ConfNamespaces; import com.silverwrist.venice.conf.iface.*; import com.silverwrist.venice.conf.obj.*; @@ -34,6 +37,7 @@ public class ConferenceManager implements ConferenceAccessObject private DynamicImplConferenceAccess m_dobj; private UseCount m_uc; private ConferenceManagerOps m_ops; + private ReferenceMap m_confs; /*-------------------------------------------------------------------------------- * Constructor @@ -56,8 +60,30 @@ public class ConferenceManager implements ConferenceAccessObject } // end catch + m_confs = new ReferenceMap(ReferenceMap.HARD,ReferenceMap.SOFT); + } // end constructor + /*-------------------------------------------------------------------------------- + * Internal operations + *-------------------------------------------------------------------------------- + */ + + private final ConferenceImpl loadConference(Map params) + { + Integer key = (Integer)(params.get(ConferenceManagerOps.KEY_CONFID)); + ConferenceImpl rc = (ConferenceImpl)(m_confs.get(key)); + if (rc==null) + { // create a new conference implementation object and save it + rc = new ConferenceImpl(m_ops.getConferenceOps(),params); + m_confs.put(key,rc); + + } // end if + + return rc; + + } // end loadConference + /*-------------------------------------------------------------------------------- * Implementations from interface DynamicObject *-------------------------------------------------------------------------------- @@ -98,24 +124,113 @@ public class ConferenceManager implements ConferenceAccessObject *-------------------------------------------------------------------------------- */ - public List getConferences(VeniceCommunity comm) throws DatabaseException + public List getConferences(DynamoUser user, VeniceCommunity comm) throws DatabaseException { - return Collections.EMPTY_LIST; // TEMP + boolean show_hidden = false; + try + { // do we want to show hidden conferences? + show_hidden = comm.getAcl().testPermission(user,ConfNamespaces.PERMISSIONS_NAMESPACE,"see.hidden"); + + } // end try + catch (AclNotFoundException e) + { // convert the AclNotFoundException + DatabaseException de = new DatabaseException(ConferenceManager.class,"ConferenceMessages","no.community.acl",e); + de.setParameter(0,comm.getName()); + throw de; + + } // end catch + + List in_list = m_ops.getConferences(comm.getCID()); + if (in_list.isEmpty()) + return Collections.EMPTY_LIST; + + ArrayList rc = new ArrayList(); + Iterator it = in_list.iterator(); + while (it.hasNext()) + { // get each data element and convert it + Map d = (Map)(it.next()); + if (show_hidden || !(((Boolean)(d.get(ConferenceManagerOps.KEY_HIDE))).booleanValue())) + { // skip hidden conferences if we don't have the "show hidden" permission + ConferenceImpl conf = loadConference(d); + rc.add(new LinkedConferenceImpl(m_ops.getLinkedConferenceOps(),conf,comm,d)); + + } // end if + + } // end while + + if (rc.isEmpty()) + return Collections.EMPTY_LIST; + rc.trimToSize(); + return Collections.unmodifiableList(rc); } // end getConferences public VeniceConference getConference(int confid) throws DatabaseException { - return null; // TEMP + Map d = m_ops.getConferenceData(confid); + if (d==null) + { // throw the not-found exception + DatabaseException de = new DatabaseException(ConferenceManager.class,"ConferenceMessages","confid.notfound"); + de.setParameter(0,String.valueOf(confid)); + throw de; + + } // end if + + return loadConference(d); } // end getConference public VeniceConference getConference(String alias) throws DatabaseException { - return null; // TEMP + Map d = m_ops.getConferenceData(alias); + if (d==null) + { // throw the not-found exception + DatabaseException de = new DatabaseException(ConferenceManager.class,"ConferenceMessages","confalias.notfound"); + de.setParameter(0,alias); + throw de; + + } // end if + + return loadConference(d); } // end getConference + public VeniceLinkedConference getLinkedConference(VeniceCommunity comm, int confid) throws DatabaseException + { + Map d = m_ops.getConferenceData(comm.getCID(),confid); + if (d==null) + { // throw the not-found exception + DatabaseException de = new DatabaseException(ConferenceManager.class,"ConferenceMessages", + "confid.comm.notfound"); + de.setParameter(0,String.valueOf(confid)); + de.setParameter(1,comm.getName()); + throw de; + + } // end if + + ConferenceImpl conf = loadConference(d); + return new LinkedConferenceImpl(m_ops.getLinkedConferenceOps(),conf,comm,d); + + } // end getLinkedConference + + public VeniceLinkedConference getLinkedConference(VeniceCommunity comm, String alias) throws DatabaseException + { + Map d = m_ops.getConferenceData(comm.getCID(),alias); + if (d==null) + { // throw the not-found exception + DatabaseException de = new DatabaseException(ConferenceManager.class,"ConferenceMessages", + "confalias.comm.notfound"); + de.setParameter(0,alias); + de.setParameter(1,comm.getName()); + throw de; + + } // end if + + ConferenceImpl conf = loadConference(d); + return new LinkedConferenceImpl(m_ops.getLinkedConferenceOps(),conf,comm,d); + + } // end getLinkedConference + /*-------------------------------------------------------------------------------- * External operations *-------------------------------------------------------------------------------- diff --git a/src/conferencing-module/com/silverwrist/venice/conf/impl/ConferenceManagerOps.java b/src/conferencing-module/com/silverwrist/venice/conf/impl/ConferenceManagerOps.java index 7b5f052..16dfb65 100644 --- a/src/conferencing-module/com/silverwrist/venice/conf/impl/ConferenceManagerOps.java +++ b/src/conferencing-module/com/silverwrist/venice/conf/impl/ConferenceManagerOps.java @@ -24,6 +24,20 @@ import com.silverwrist.dynamo.iface.*; abstract class ConferenceManagerOps extends OpsBase { + /*-------------------------------------------------------------------------------- + * Static data members + *-------------------------------------------------------------------------------- + */ + + static final String KEY_CONFID = "confid"; + static final String KEY_CREATE_DATE = "createdate"; + static final String KEY_LAST_UPDATE = "lastupdate"; + static final String KEY_HOSTS_GID = "hosts_gid"; + static final String KEY_ACLID = "aclid"; + static final String KEY_NAME = "name"; + static final String KEY_SEQUENCE = "sequence"; + static final String KEY_HIDE = "hide"; + /*-------------------------------------------------------------------------------- * Attributes *-------------------------------------------------------------------------------- @@ -69,6 +83,16 @@ abstract class ConferenceManagerOps extends OpsBase protected abstract LinkedConferenceOps createLinkedConferenceOps(DBConnectionPool pool); + abstract List getConferences(int cid) throws DatabaseException; + + abstract Map getConferenceData(int confid) throws DatabaseException; + + abstract Map getConferenceData(int cid, int confid) throws DatabaseException; + + abstract Map getConferenceData(String alias) throws DatabaseException; + + abstract Map getConferenceData(int cid, String alias) throws DatabaseException; + /*-------------------------------------------------------------------------------- * External operations *-------------------------------------------------------------------------------- diff --git a/src/conferencing-module/com/silverwrist/venice/conf/impl/ConferenceManagerOps_mysql.java b/src/conferencing-module/com/silverwrist/venice/conf/impl/ConferenceManagerOps_mysql.java index 52f52bc..37d9e5e 100644 --- a/src/conferencing-module/com/silverwrist/venice/conf/impl/ConferenceManagerOps_mysql.java +++ b/src/conferencing-module/com/silverwrist/venice/conf/impl/ConferenceManagerOps_mysql.java @@ -26,6 +26,13 @@ import com.silverwrist.dynamo.util.*; public class ConferenceManagerOps_mysql extends ConferenceManagerOps { + /*-------------------------------------------------------------------------------- + * Attributes + *-------------------------------------------------------------------------------- + */ + + private DBUtilities m_utils; + /*-------------------------------------------------------------------------------- * Constructor *-------------------------------------------------------------------------------- @@ -34,9 +41,22 @@ public class ConferenceManagerOps_mysql extends ConferenceManagerOps public ConferenceManagerOps_mysql(DBConnectionPool pool) { super(pool); + m_utils = (DBUtilities)(pool.queryService(DBUtilities.class)); } // end constructor + /*-------------------------------------------------------------------------------- + * Overrides from class ConferenceManagerOps + *-------------------------------------------------------------------------------- + */ + + public void dispose() + { + m_utils = null; + super.dispose(); + + } // end dispose + /*-------------------------------------------------------------------------------- * Abstract implementations from class ConferenceManagerOps *-------------------------------------------------------------------------------- @@ -54,4 +74,246 @@ public class ConferenceManagerOps_mysql extends ConferenceManagerOps } // end createLinkedConferenceOps + List getConferences(int cid) throws DatabaseException + { + Connection conn = null; + PreparedStatement stmt = null; + ResultSet rs = null; + try + { // get a connection + conn = getConnection(); + + // create and execute the statement + stmt = conn.prepareStatement("SELECT c.confid, c.createdate, c.lastupdate, c.hosts_gid, c.aclid, c.name, " + + "l.sequence, l.hide FROM conferences c, conf_links l WHERE c.confid = l.confid " + + "AND l.cid = ? ORDER by l.sequence;"); + stmt.setInt(1,cid); + rs = stmt.executeQuery(); + + // prepare the return value (a list of maps) + ArrayList rc = new ArrayList(); + while (rs.next()) + { // load the fields into the HashMaps + HashMap tmp = new HashMap(); + tmp.put(KEY_CONFID,new Integer(rs.getInt(1))); + tmp.put(KEY_CREATE_DATE,m_utils.getDateTime(rs,2)); + java.util.Date d = m_utils.getDateTime(rs,3); + if (d!=null) + tmp.put(KEY_LAST_UPDATE,d); + tmp.put(KEY_HOSTS_GID,new Integer(rs.getInt(4))); + tmp.put(KEY_ACLID,new Integer(rs.getInt(5))); + tmp.put(KEY_NAME,rs.getString(6)); + tmp.put(KEY_SEQUENCE,new Integer(rs.getInt(7))); + tmp.put(KEY_HIDE,(rs.getInt(8)==1) ? Boolean.TRUE : Boolean.FALSE); + rc.add(tmp); + + } // end while + + return rc; + + } // end try + catch (SQLException e) + { // translate to a general DatabaseException + throw generalException(e); + + } // end catch + finally + { // shut everything down + SQLUtils.shutdown(rs); + SQLUtils.shutdown(stmt); + SQLUtils.shutdown(conn); + + } // end finally + + } // end getConferences + + Map getConferenceData(int confid) throws DatabaseException + { + Connection conn = null; + PreparedStatement stmt = null; + ResultSet rs = null; + try + { // get a connection + conn = getConnection(); + + // create and execute the statement + stmt = conn.prepareStatement("SELECT createdate, lastupdate, hosts_gid, aclid, name FROM conferences " + + "WHERE confid = ?"); + stmt.setInt(1,confid); + rs = stmt.executeQuery(); + if (!(rs.next())) + return null; + + // prepare the return value + HashMap rc = new HashMap(); + rc.put(KEY_CONFID,new Integer(confid)); + rc.put(KEY_CREATE_DATE,m_utils.getDateTime(rs,1)); + java.util.Date d = m_utils.getDateTime(rs,2); + if (d!=null) + rc.put(KEY_LAST_UPDATE,d); + rc.put(KEY_HOSTS_GID,new Integer(rs.getInt(3))); + rc.put(KEY_ACLID,new Integer(rs.getInt(4))); + rc.put(KEY_NAME,rs.getString(5)); + return rc; + + } // end try + catch (SQLException e) + { // translate to a general DatabaseException + throw generalException(e); + + } // end catch + finally + { // shut everything down + SQLUtils.shutdown(rs); + SQLUtils.shutdown(stmt); + SQLUtils.shutdown(conn); + + } // end finally + + } // end getConferenceData + + Map getConferenceData(int cid, int confid) throws DatabaseException + { + Connection conn = null; + PreparedStatement stmt = null; + ResultSet rs = null; + try + { // get a connection + conn = getConnection(); + + // create and execute the statement + stmt = conn.prepareStatement("SELECT c.createdate, c.lastupdate, c.hosts_gid, c.aclid, c.name, l.sequence, " + + "l.hide FROM conferences c, conf_links l WHERE c.confid = ? " + + "AND c.confid = l.confid AND l.cid = ?"); + stmt.setInt(1,confid); + stmt.setInt(2,cid); + rs = stmt.executeQuery(); + if (!(rs.next())) + return null; + + // prepare the return value + HashMap rc = new HashMap(); + rc.put(KEY_CONFID,new Integer(confid)); + rc.put(KEY_CREATE_DATE,m_utils.getDateTime(rs,1)); + java.util.Date d = m_utils.getDateTime(rs,2); + if (d!=null) + rc.put(KEY_LAST_UPDATE,d); + rc.put(KEY_HOSTS_GID,new Integer(rs.getInt(3))); + rc.put(KEY_ACLID,new Integer(rs.getInt(4))); + rc.put(KEY_NAME,rs.getString(5)); + rc.put(KEY_SEQUENCE,new Integer(rs.getInt(6))); + rc.put(KEY_HIDE,(rs.getInt(7)==1) ? Boolean.TRUE : Boolean.FALSE); + return rc; + + } // end try + catch (SQLException e) + { // translate to a general DatabaseException + throw generalException(e); + + } // end catch + finally + { // shut everything down + SQLUtils.shutdown(rs); + SQLUtils.shutdown(stmt); + SQLUtils.shutdown(conn); + + } // end finally + + } // end getConferenceData + + Map getConferenceData(String alias) throws DatabaseException + { + Connection conn = null; + PreparedStatement stmt = null; + ResultSet rs = null; + try + { // get a connection + conn = getConnection(); + + // create and execute the statement + stmt = conn.prepareStatement("SELECT c.confid, c.createdate, c.lastupdate, c.hosts_gid, c.aclid, c.name " + + "FROM conferences c, conf_alias a WHERE c.confid = a.confid AND a.alias = ?;"); + stmt.setString(1,alias); + rs = stmt.executeQuery(); + if (!(rs.next())) + return null; + + // prepare the return value + HashMap rc = new HashMap(); + rc.put(KEY_CONFID,new Integer(rs.getInt(1))); + rc.put(KEY_CREATE_DATE,m_utils.getDateTime(rs,2)); + java.util.Date d = m_utils.getDateTime(rs,3); + if (d!=null) + rc.put(KEY_LAST_UPDATE,d); + rc.put(KEY_HOSTS_GID,new Integer(rs.getInt(4))); + rc.put(KEY_ACLID,new Integer(rs.getInt(5))); + rc.put(KEY_NAME,rs.getString(6)); + return rc; + + } // end try + catch (SQLException e) + { // translate to a general DatabaseException + throw generalException(e); + + } // end catch + finally + { // shut everything down + SQLUtils.shutdown(rs); + SQLUtils.shutdown(stmt); + SQLUtils.shutdown(conn); + + } // end finally + + } // end getConferenceData + + Map getConferenceData(int cid, String alias) throws DatabaseException + { + Connection conn = null; + PreparedStatement stmt = null; + ResultSet rs = null; + try + { // get a connection + conn = getConnection(); + + // create and execute the statement + stmt = conn.prepareStatement("SELECT c.confid, c.createdate, c.lastupdate, c.hosts_gid, c.aclid, c.name, " + + "l.sequence, l.hide FROM conferences c, conf_alias a, conf_links l " + + "WHERE c.confid = a.confid AND a.alias = ? AND c.confid = l.confid " + + "AND l.cid = ?;"); + stmt.setString(1,alias); + stmt.setInt(2,cid); + rs = stmt.executeQuery(); + if (!(rs.next())) + return null; + + // prepare the return value + HashMap rc = new HashMap(); + rc.put(KEY_CONFID,new Integer(rs.getInt(1))); + rc.put(KEY_CREATE_DATE,m_utils.getDateTime(rs,2)); + java.util.Date d = m_utils.getDateTime(rs,3); + if (d!=null) + rc.put(KEY_LAST_UPDATE,d); + rc.put(KEY_HOSTS_GID,new Integer(rs.getInt(4))); + rc.put(KEY_ACLID,new Integer(rs.getInt(5))); + rc.put(KEY_NAME,rs.getString(6)); + rc.put(KEY_SEQUENCE,new Integer(rs.getInt(7))); + rc.put(KEY_HIDE,(rs.getInt(8)==1) ? Boolean.TRUE : Boolean.FALSE); + return rc; + + } // end try + catch (SQLException e) + { // translate to a general DatabaseException + throw generalException(e); + + } // end catch + finally + { // shut everything down + SQLUtils.shutdown(rs); + SQLUtils.shutdown(stmt); + SQLUtils.shutdown(conn); + + } // end finally + + } // end getConferenceData + } // end class ConferenceManagerOps_mysql diff --git a/src/conferencing-module/com/silverwrist/venice/conf/impl/ConferenceMessages.properties b/src/conferencing-module/com/silverwrist/venice/conf/impl/ConferenceMessages.properties new file mode 100644 index 0000000..bc0619f --- /dev/null +++ b/src/conferencing-module/com/silverwrist/venice/conf/impl/ConferenceMessages.properties @@ -0,0 +1,22 @@ +# The contents of this file are subject to the Mozilla Public License Version 1.1 +# (the "License"); you may not use this file except in compliance with the License. +# You may obtain a copy of the License at . +# +# Software distributed under the License is distributed on an "AS IS" basis, WITHOUT +# WARRANTY OF ANY KIND, either express or implied. See the License for the specific +# language governing rights and limitations under the License. +# +# The Original Code is the Venice Web Communities System. +# +# The Initial Developer of the Original Code is Eric J. Bowersox , +# for Silverwrist Design Studios. Portions created by Eric J. Bowersox are +# Copyright (C) 2003 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved. +# +# Contributor(s): +# --------------------------------------------------------------------------------- +# This file has been localized for the en_US locale +no.community.acl=The community ACL for community "{0}" could not be found. +confid.notfound=No conference was found with conference ID #{0}. +confalias.notfound=No conference was found with conference alias "{0}." +confid.comm.notfound=No conference was found with conference ID #{0} in community "{1}." +confalias.comm.notfound=No conference was found with conference alias "{0}" in community "{1}." diff --git a/src/conferencing-module/com/silverwrist/venice/conf/impl/LinkedConferenceImpl.java b/src/conferencing-module/com/silverwrist/venice/conf/impl/LinkedConferenceImpl.java index 19c2ab0..3fd9862 100644 --- a/src/conferencing-module/com/silverwrist/venice/conf/impl/LinkedConferenceImpl.java +++ b/src/conferencing-module/com/silverwrist/venice/conf/impl/LinkedConferenceImpl.java @@ -36,18 +36,22 @@ class LinkedConferenceImpl implements VeniceLinkedConference private LinkedConferenceOps m_ops; private ConferenceImpl m_conf; private VeniceCommunity m_comm; + private int m_sequence; + private boolean m_hide; /*-------------------------------------------------------------------------------- * Constructor *-------------------------------------------------------------------------------- */ - LinkedConferenceImpl(LinkedConferenceOps ops, ConferenceImpl conf, VeniceCommunity comm) + LinkedConferenceImpl(LinkedConferenceOps ops, ConferenceImpl conf, VeniceCommunity comm, Map params) { m_dobj = new DynamicImplLinkedConference(this); m_ops = ops; m_conf = conf; m_comm = comm; + m_sequence = ((Integer)(params.get(ConferenceManagerOps.KEY_SEQUENCE))).intValue(); + m_hide = ((Boolean)(params.get(ConferenceManagerOps.KEY_HIDE))).booleanValue(); } // end constructor @@ -295,9 +299,9 @@ class LinkedConferenceImpl implements VeniceLinkedConference public int getSequence() { - return -1; // TEMP + return m_sequence; - } + } // end getSequence public void setSequence(DynamoUser caller, int sequence) throws DatabaseException, DynamoSecurityException { @@ -305,9 +309,9 @@ class LinkedConferenceImpl implements VeniceLinkedConference public boolean isHidden() { - return false; // TEMP + return m_hide; - } + } // end isHidden public void setHidden(DynamoUser caller, boolean flag) throws DatabaseException, DynamoSecurityException { diff --git a/src/conferencing-module/com/silverwrist/venice/conf/module/Controller.java b/src/conferencing-module/com/silverwrist/venice/conf/module/Controller.java index 6d43a57..ded5ac1 100644 --- a/src/conferencing-module/com/silverwrist/venice/conf/module/Controller.java +++ b/src/conferencing-module/com/silverwrist/venice/conf/module/Controller.java @@ -138,6 +138,7 @@ class Controller implements CommunityServiceController DynamoAcl acl = comm.getAcl(); helper.addPermission(hostuser,acl,hostgroup,false,ConfNamespaces.PERMISSIONS_NAMESPACE,"create"); helper.addPermission(hostuser,acl,hostgroup,false,ConfNamespaces.PERMISSIONS_NAMESPACE,"manage.order"); + helper.addPermission(hostuser,acl,hostgroup,false,ConfNamespaces.PERMISSIONS_NAMESPACE,"see.hidden"); } // end try catch (AclNotFoundException e) @@ -171,6 +172,7 @@ class Controller implements CommunityServiceController DynamoAcl acl = comm.getAcl(); helper.stripPermission(hostuser,acl,ConfNamespaces.PERMISSIONS_NAMESPACE,"create"); helper.stripPermission(hostuser,acl,ConfNamespaces.PERMISSIONS_NAMESPACE,"manage.order"); + helper.stripPermission(hostuser,acl,ConfNamespaces.PERMISSIONS_NAMESPACE,"see.hidden"); } // end try catch (AclNotFoundException e) diff --git a/src/conferencing-module/com/silverwrist/venice/conf/obj/DynamicImplConferenceAccess.java b/src/conferencing-module/com/silverwrist/venice/conf/obj/DynamicImplConferenceAccess.java index 535a720..278b2e1 100644 --- a/src/conferencing-module/com/silverwrist/venice/conf/obj/DynamicImplConferenceAccess.java +++ b/src/conferencing-module/com/silverwrist/venice/conf/obj/DynamicImplConferenceAccess.java @@ -69,9 +69,10 @@ public class DynamicImplConferenceAccess extends DynamicObjectImpl { // call the getConferences method try { // verify the parameters and call the method - verifyParameterLength(method_name,parameters,1); - verifyParameterType(method_name,parameters,0,VeniceCommunity.class); - return m_impl.getConferences((VeniceCommunity)(parameters[0])); + verifyParameterLength(method_name,parameters,2); + verifyParameterType(method_name,parameters,0,DynamoUser.class); + verifyParameterType(method_name,parameters,1,VeniceCommunity.class); + return m_impl.getConferences((DynamoUser)(parameters[0]),(VeniceCommunity)(parameters[0])); } // end try catch (DatabaseException e) @@ -101,6 +102,26 @@ public class DynamicImplConferenceAccess extends DynamicObjectImpl } // end if + if (method_name.equals("getLinkedConference")) + { // call one of the getLinkedConference methods + try + { // verify the parameters and call the method + verifyParameterLength(method_name,parameters,2); + verifyParameterType(method_name,parameters,0,VeniceCommunity.class); + if ((parameters[1]==null) || (parameters[1] instanceof String)) + return m_impl.getLinkedConference((VeniceCommunity)(parameters[0]),(String)(parameters[1])); + int foo = getIntValue(method_name,parameters,1); + return m_impl.getLinkedConference((VeniceCommunity)(parameters[0]),foo); + + } // end try + catch (DatabaseException e) + { // reflect the exception back up + throw callFailed(e); + + } // end catch + + } // end if + return super.call(method_name,parameters); } // end call