blob: 0a96946d46abaf2b21eb3556f5fa16acdca1bb52 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2001, 2005 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.jem.internal.proxy.ide;
/*
*/
import org.eclipse.jem.internal.proxy.core.*;
/**
* Number BeanType Proxy.
*/
public abstract class IDENumberBeanTypeProxy extends IDEBeanTypeProxy {
protected final IDENumberBeanProxy zeroProxy;
/**
* IDENumberBeanTypeProxy constructor comment.
* @param aRegistry com.ibm.etools.vce.proxy.ProxyFactoryRegistry
* @param aClass java.lang.Class
*/
protected IDENumberBeanTypeProxy(IDEProxyFactoryRegistry aRegistry, Class aClass, Number zeroNumber) {
super(aRegistry, aClass);
// Cache a zero proxy of this type (though the number will be Long).
zeroProxy = new IDENumberBeanProxy(aRegistry, zeroNumber , this);
}
/**
* Helper to create a bean proxy
* Package protected because everyone should go through the factory API
* that is defined as part of IBeanProxyFactory
*/
INumberBeanProxy createNumberBeanProxy(Number aNumber) {
if (aNumber == null || zeroProxy.fBean.equals(aNumber))
return zeroProxy;
return new IDENumberBeanProxy(fProxyFactoryRegistry, aNumber, this);
}
/**
* Specialized from IDEBeanTypeProxy to ensure INumberBeanProxies are created correctly.
*/
protected IIDEBeanProxy newBeanProxy(Object anObject){
return (IIDEBeanProxy)createNumberBeanProxy((Number) anObject);
}
}