list = getOrMakePropertyList( ref );
makeLocalCompositeValue( ref ); list = ref.getList( design, element ); assert list != null;
	public void replaceItem( MemberRef ref, IStructure oldItem,			IStructure newItem ) throws SemanticException	{		assert ref != null;		PropertyDefn propDefn = ref.getPropDefn( );		assert propDefn != null;		assertExtendedElement( design, element, propDefn );		checkListMemberRef( ref );		List list = ref.getList( design, element );		if ( list == null )			throw new PropertyValueException( element, ref.getPropDefn( ),					null,					PropertyValueException.DESIGN_EXCEPTION_ITEM_NOT_FOUND );		if ( newItem != null )		{			checkItem( ref, newItem );			element.checkStructureList( design, ref.getPropDefn( ), list,					newItem );		}		ActivityStack stack = design.getActivityStack( );		stack.startTrans( ModelMessages				.getMessage( MessageConstants.REPLACE_ITEM_MESSAGE ) );		list = getOrMakePropertyList( ref );		int index = list.indexOf( oldItem );		if ( index == -1 )			throw new PropertyValueException( element, ref.getPropDefn( )					.getName( ), oldItem,					PropertyValueException.DESIGN_EXCEPTION_ITEM_NOT_FOUND );		PropertyReplaceRecord record = new PropertyReplaceRecord( element, ref,				list, index, newItem );		stack.execute( record );		if ( oldItem.isReferencable( ) )			adjustReferenceClients( (ReferencableStructure) oldItem );		stack.commit( );	}