/* * 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) 2002 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved. * * Contributor(s): */ package com.silverwrist.dynamo.obj; import java.util.*; import java.lang.reflect.*; import com.silverwrist.dynamo.except.*; import com.silverwrist.dynamo.iface.*; class JavaDynamicObject implements DynamicObject, DynamicWrapper { /*-------------------------------------------------------------------------------- * Attributes *-------------------------------------------------------------------------------- */ private JavaDynamicClass m_dclass; private Object m_object; /*-------------------------------------------------------------------------------- * Constructor *-------------------------------------------------------------------------------- */ JavaDynamicObject(JavaDynamicClass dclass, Object obj) { m_dclass = dclass; m_object = obj; } // end constructor /*-------------------------------------------------------------------------------- * Overrides from class Object *-------------------------------------------------------------------------------- */ public boolean equals(Object obj) { if (obj==null) return false; if (obj instanceof DynamicObject) return obj.equals(m_object); else return m_object.equals(obj); } // end equals public int hashCode() { return m_object.hashCode(); } // end hashCode public String toString() { return m_object.toString(); } // end toString /*-------------------------------------------------------------------------------- * Implementations from interface DynamicObject *-------------------------------------------------------------------------------- */ public Object get(String property_name) throws DynamicObjectException { return m_dclass.getForObject(m_object,property_name); } // end get public void set(String property_name, Object value) throws DynamicObjectException { m_dclass.setForObject(m_object,property_name,value); } // end set public Object call(String method_name, Object[] parameters) throws DynamicObjectException { return m_dclass.callForObject(m_object,method_name,parameters); } // end call public Object call(String method_name, List parameters) throws DynamicObjectException { return m_dclass.callForObject(m_object,method_name,parameters.toArray()); } // end call public DynamicClass getDClass() { return m_dclass; } // end getDClass /*-------------------------------------------------------------------------------- * Implementations from interface DynamicWrapper *-------------------------------------------------------------------------------- */ public Object unwrap() { return m_object; } // end unwrap } // end class JavaDynamicObject