container/services/src/main/java/org/mobicents/slee/runtime/sbbentity/SbbEntityImpl.java
public SbbLocalObjectImpl getSbbLocalObject() {
		
		if (doTraceLogs)
			log.trace("getSbbLocalObject()");

		// The concrete class generated in ConcreteLocalObjectGenerator
		final Class<?> sbbLocalClass = getSbbComponent().getSbbLocalInterfaceConcreteClass();
		if (sbbLocalClass != null) {
			Object[] objs = { this };
			Constructor<?> constructor = getSbbComponent().getSbbLocalObjectClassConstructor();
			if (constructor == null) {
				final Class<?>[] types = { SbbEntityImpl.class };
				try {
					constructor = sbbLocalClass.getConstructor(types);
				} catch (Throwable e) {
					throw new SLEEException("Unable to retrieve sbb local object generated class constructor",e);
				}
				getSbbComponent().setSbbLocalObjectClassConstructor(constructor);
			}
			try {
				return (SbbLocalObjectImpl) constructor.newInstance(objs);
			} catch (Throwable e) {
				throw new SLEEException(
						"Failed to create Sbb Local Interface.", e);
			}
		} else {
			return new SbbLocalObjectImpl(this);
		}
	}
public SbbLocalObjectImpl getSbbLocalObject() {
		
		if (doTraceLogs)
			log.trace("getSbbLocalObject()");

		// The concrete class generated in ConcreteLocalObjectGenerator
		final Class<?> sbbLocalClass = getSbbComponent().getSbbLocalInterfaceConcreteClass();
		if (sbbLocalClass != null) {
			Object[] objs = { this };
			Constructor<?> constructor = getSbbComponent().getSbbLocalObjectClassConstructor();
			if (constructor == null) {
				final Class<?>[] types = { SbbEntityImpl.class };
				try {
					constructor = sbbLocalClass.getConstructor(types);
				} catch (Throwable e) {
					throw new SLEEException("Unable to retrieve sbb local object generated class constructor",e);
				}
				getSbbComponent().setSbbLocalObjectClassConstructor(constructor);
			}
			try {
				return (SbbLocalObjectImpl) constructor.newInstance(objs);
			} catch (Throwable e) {
				throw new SLEEException(
						"Failed to create Sbb Local Interface.", e);
			}
		} else {
			return new SbbLocalObjectImpl(this);
		}
	}
public SbbLocalObjectImpl getSbbLocalObject ( ) { if ( doTraceLogs ) log . trace ( "getSbbLocalObject()" ) ; // The concrete class generated in ConcreteLocalObjectGenerator final Class < ? > sbbLocalClass = getSbbComponent ( ) . getSbbLocalInterfaceConcreteClass ( ) ; if ( sbbLocalClass != null ) { Object [ ] objs = { this } ; Constructor < ? > constructor = getSbbComponent ( ) . getSbbLocalObjectClassConstructor ( ) ; if ( constructor == null ) { final Class < ? > [ ] types = { SbbEntityImpl . class } ; try { constructor = sbbLocalClass . getConstructor ( types ) ; } catch ( Throwable e ) { throw new SLEEException ( "Unable to retrieve sbb local object generated class constructor" , e ) ; } getSbbComponent ( ) . setSbbLocalObjectClassConstructor ( constructor ) ; } try { return ( SbbLocalObjectImpl ) constructor . newInstance ( objs ) ; } catch ( Throwable e ) { throw new SLEEException ( "Failed to create Sbb Local Interface." , e ) ; } } else { return new SbbLocalObjectImpl ( this ) ; } }
TODO improve with sbb local object storage
@return
TODO improve with sbb local object storage