blob: bf446575c1d7937f649d301c9093c6b734d18e32 [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 v2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* 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);
}
}