if ( prop.getTypeCode( ) != PropertyType.ELEMENT_REF_TYPE )
if ( prop.getTypeCode( ) != IPropertyType.ELEMENT_REF_TYPE )
	protected ElementRefValue resolveElementReference( Module module,			StructPropertyDefn prop )	{		if ( prop.getTypeCode( ) != PropertyType.ELEMENT_REF_TYPE )			return null;		Object value = getIntrinsicProperty( prop.getName( ) );		assert value == null || value instanceof ElementRefValue;		if ( value == null || module == null )			return (ElementRefValue) value;		ElementRefValue ref = (ElementRefValue) value;		if ( ref.isResolved( ) )			return ref;		// The element exist and is not resolved. Try to resolve it.		// If it is now resolved, cache the back pointer.		// Note that this is a safe operation to do without the		// use of the command stack. We are not changing the meaning		// of the property: we are only changing the form: from name		// to element pointer.		ElementRefPropertyType refType = (ElementRefPropertyType) prop				.getType( );		refType.resolve( module, prop, ref );		if ( !ref.isResolved( ) )			return ref;		DesignElement me = getContextElement( );		// if it is recursively reference, not resolve it.		if ( me instanceof ReferenceableElement				&& ModelUtil.isRecursiveReference( ref.getElement( ),						(ReferenceableElement) me ) )		{			ref.unresolved( ref.getName( ) );			return ref;		}		String propName = getContextPropertyName( );		// how to handle back reference.		if ( me != null && propName != null )			ref.getTargetElement( ).addClient( me, propName );		return ref;	}