/* * 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): */ package com.silverwrist.dynamo.obj; import java.util.*; import com.silverwrist.dynamo.except.*; import com.silverwrist.dynamo.iface.*; public class DynamicObjectImpl implements DynamicObject { /*-------------------------------------------------------------------------------- * Attributes *-------------------------------------------------------------------------------- */ private DynamicClass m_dclass; /*-------------------------------------------------------------------------------- * Constructor *-------------------------------------------------------------------------------- */ protected DynamicObjectImpl(DynamicClass dclass) { m_dclass = dclass; } // end constructor /*-------------------------------------------------------------------------------- * Internal operations *-------------------------------------------------------------------------------- */ protected final void verifyParameterLength(String method_name, Object[] parameters, int len) { if (parameters.length!=len) throw new ParameterCountException(m_dclass,method_name,len,parameters.length); } // end verifyParameterLength protected final void verifyParameterType(String method_name, Object[] parameters, int ndx, Class klass) { if (parameters[ndx]==null) return; if (!(klass.isInstance(parameters[ndx]))) throw new ParameterTypeException(m_dclass,method_name,ndx,klass,parameters[ndx].getClass()); } // end verifyParameterType /*-------------------------------------------------------------------------------- * Implementations from interface DynamicObject *-------------------------------------------------------------------------------- */ public Object get(String property_name) throws DynamicObjectException { throw new CodeNotFoundException(m_dclass,CodeNotFoundException.GET,property_name); } // end get public void set(String property_name, Object value) throws DynamicObjectException { throw new CodeNotFoundException(m_dclass,CodeNotFoundException.SET,property_name); } // end set public Object call(String method_name, Object[] parameters) throws DynamicObjectException { throw new CodeNotFoundException(m_dclass,CodeNotFoundException.CALL,method_name); } // end call public Object call(String method_name, List parameters) throws DynamicObjectException { Object[] parray = new Object[parameters.size()]; if (parray.length>0) parameters.toArray(parray); return call(method_name,parray); } // end call public DynamicClass getDClass() { return m_dclass; } // end getDClass } // end class DynamicObjectImpl