mate-objectbuilder

ObjectBuilder技术内幕(一) ObjectBuilder技术内幕之一 如果你使用过Enterprise Library 2.0 CTP或者使用过Composite UI Application Block,你一定发现它们中间包含了一个ObjectBuilder的程序集。如果你还不知道它是什么、做什么用、它的内部如何实现的话,那么现在就来听听ObjectBuilder(以下简称OB)讲述它的故事吧。OB顾名思义就是对象创建器,它 阅读详情
OK!

I had time to play some with Mate and my example, and I finally got a scheme
that may just work without using a 'global' Singleton instance reference. Yes
I can be slow, but ...

So here is what I have:

1) Main MXML loading a MainUIViews MXML with a simple mx:List.
2) Main also has a MainEventMap MXML.
3) MainDataManager MXML to store system state data.
4) The normal other stuff like events, utilities, vos, etc...

So the MainEventMap first instantiates my MainDataModel into Mate's cache. This 
eliminates my need for the Singleton.getInatance() method, ...hopefully. Once 
instantiated, the XML data is ordered, HTTPServiceInvoker - here just an XML file.

//-------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<EventMap xmlns:mx="http://www.adobe.com/2006/mxml"
	xmlns="http://mate.asfusion.com/" >
	
	<mx:Script>
		<![CDATA[
			import views.*;
			import models.*;
			
			import mx.events.FlexEvent;
			import mx.collections.XMLListCollection;
			import mx.controls.Alert;
			
			// Event map local utility functions.
			private function XMLResultsConverter( xml:XML ):XMLListCollection
			{ return( new XMLListCollection(  xml..image ) ); }

			private function XMLServiceFault( fault:String ):Alert
			{ return Alert.show("Error: ...bad HTTP call. /n"+fault); }
		]]>
	</mx:Script>
	
	<Debugger level="{Debugger.ALL}" />

	<!-- FlexEvent.PREINITIALIZE -->
	<EventHandlers type="{FlexEvent.PREINITIALIZE}" debug="false" >
		<ObjectBuilder generator="{MainDataManager}" >
			<Properties globalDispatcher="{scope.dispatcher}" />
		</ObjectBuilder>
	</EventHandlers>

	<!-- FlexEvent.CREATION_COMPLETE -->
	<EventHandlers type="{FlexEvent.CREATION_COMPLETE}" debug="false" >
		<HTTPServiceInvoker id="get_XML_db" url="./image_db.xml"
				useProxy="false" resultFormat="e4x" debug="false" >
			<resultHandlers>
				<InlineInvoker method="XMLResultsConverter" arguments="{[resultObject]}" />
				<ObjectBuilder generator="{MainDataManager}" >
					<Properties XMLDataLC="{lastReturn}" />
				</ObjectBuilder>
			</resultHandlers>

			<faultHandlers>
				<InlineInvoker method="XMLServiceFault" arguments="{[fault]}" />
				<ObjectBuilder generator="{MainDataManager}" >
					<Properties alert="{lastReturn}" />
				</ObjectBuilder>
			</faultHandlers>
		</HTTPServiceInvoker>
	</EventHandlers>
		
	<!-- BINDINGS: XML Data Injector -->
	<Injectors target="{MainUIViews}" >
		<PropertyInjector targetKey="XMLDataLC" source="{MainDataManager}" sourceKey="XMLDataLC" />
	</Injectors>

</EventMap>
//-------------------------------------------

In the resultHandlers, I first use an InlineInvoker that simply converts the 
resultObject, XML, to an XMLListCollection that is passed along as the 
SmartObject, lastReturn. 

The next step is an ObjectBuilder using the cached MainDataModel to store this 
XMLListCollection. In the MainDataModel I used getters/setters and bind them:

[Bindable] public dynamic class MainDataManager implements IEventDispatcher
{
	//-------------------------------------------
	// Main UI views model data storage elements...
	private var _XMLDataLC:XMLListCollection;
	public function get XMLDataLC( ):XMLListCollection
	{ return _XMLDataLC as XMLListCollection; }
	public function set XMLDataLC( value:XMLListCollection ):void
	{ _XMLDataLC = value as XMLListCollection; }
	//-------------------------------------------

Now in the MainUIViews, I have added a bindable local variable, XMLDataLC, which 
is used as the data provider for my MX:List:

	<mx:Script>
		<![CDATA[
			import mx.collections.XMLListCollection;

			[Bindable] public var XMLDataLC:XMLListCollection = new XMLListCollection();
		]]>
	</mx:Script>
	
	<!-- Simple list of images -->
	<mx:List id="mainDataList" width="300" height="400"
		dataProvider="{XMLDataLC}" labelField="file" />
		
Finally, the injectors in the MainEventMap push the image file data into the list:

	<!-- BINDINGS: XML Data Injector -->
	<Injectors target="{MainUIViews}" >
		<PropertyInjector targetKey="XMLDataLC" source="{MainDataManager}" sourceKey="XMLDataLC" />
	</Injectors>


Well, so far, it all works thanks to the help that all have provided. TY

I hope that this is as it was meant.
Comments welcomed.


Greg


http://www.gypsytrader.com/mate/post01.txt
http://www.gypsytrader.com/mate/image_db.xml
Hierarchical Flow Partition(Top-down&&Bottom-up) hierarchy flow是将设计切分成多个block,分别处理单个block,然后完成后,将它们进行拼接以完成最终的chip。一般划分为三个阶段:chip planning;physical budget就是pin assignmenthierarchy flow实现的方法有两种,一种是top-down,另一种是bottom-up,无论是哪种,都是都要通过flatten的方法分别全局范围进行优化实现。 阅读详情

相关推荐

西门子Simotion运动控制

SIMOTION

rjimhcd的博客 3024

metaObjecthandler 的基本理解与使用

metaObjecthandler:元数据对象处理器 MetaObjectHandler接口是mybatisPlus为我们提供的的一个扩展接口,我们可以利用这个接口在我们插入或者更新数据的时候,为一些字段指定默认值。 使用场景:公共字段填充等,如updateTime、createTime、createUser、updateUser等公共字段多的填充。

fengzheng1232的博客 9370

多普勒频移测速与FMCW测距

文章目录时域与频域基于多普勒频移估计速度基于传统的FMCW测距什么是FMCWFMCW测距原理参考论文 时域与频域 时域 — 自变量是时间,即横轴是时间,纵轴是信号振幅的变化。表示振幅随时间的变化。 频域 — 自变量是频率,即横轴是频率,纵轴是该频率信号幅度的峰值。表示振幅峰值随频率的变化。 基于多普勒频移估计速度 当发送端静止而接收端相对运动时,有: v=FsFcv=\frac{F^s}{F}cv=FFs​c 其中,F是信号的原始频率;FsF^sFs 是接收信号频率与发送信号频率之差,即多普勒频移;c是

dsaaf21的博客 9187

MetaObjectHandler

MetaObjectHandler

qq_43960768的博客 1万+

扫地机器人:从仿真到决策,一个完整SLAM导航系统的自研之路

本文详细记录了从零开始自研扫地机器人SLAM导航系统的全过程,涵盖ROS-Gazebo仿真系统搭建、地图预处理优化、全覆盖规划算法迭代等关键技术。通过三次算法升级,最终实现92%的清洁效率,并分享DWA调参、状态机设计等实战经验,为开发者提供从仿真到落地的完整解决方案。

weixin_29053695的博客 352

C#海康威视摄像头控制,将IntPtr转换成Bitmap图片

C#通过skd控制海康威视摄像头,获取bitmap格式图片

ReflexMechanism的博客 6586

MyBatis MetaObjectHandler:动态字段处理与对象元数据处理

这种机制允许开发者在不修改实体类代码的情况下,对实体对象的字段值进行自定义处理,如自动填充创建时间、更新时间等。在开发过程中,经常需要为实体类的某些字段设置默认值,比如创建时间、更新时间等。是 MyBatis-Plus 提供的一个强大功能,它允许开发者在不修改实体类代码或 XML 映射文件的情况下,动态地处理实体类的字段值。的工作原理是通过反射机制,获取实体类的字段信息,然后根据开发者定义的规则,对字段值进行处理。还支持在更新操作时,对实体类的字段进行动态处理,如根据条件自动更新某些字段的值。

wddblog的博客 3928

用Python玩转Carla-Apollo联合仿真:手把手教你实现自动驾驶测试

本文详细介绍了如何使用Python实现Carla-Apollo联合仿真,从环境搭建到自动驾驶算法测试的全流程。通过Carla提供的高逼真仿真环境和Apollo的自动驾驶算法栈,开发者可以高效验证感知、规划和控制模块。文章包含环境配置、Python API操作、桥接实现及实战测试,为自动驾驶开发提供完整解决方案。

wasm7browser的博客 266

metaObjecthandler 的基本理解与使用(自动插入更新人和创建人)

metaObjecthandler 的基本理解与使用(自动插入更新人和创建人)

weixin_43564627的博客 2168

【制作100个Unity游戏之35】从零开始构建类《月圆之夜》《杀戮尖塔》的卡牌游戏(附带项目源码)

本文介绍了如何从零开始构建类似《月圆之夜》《杀戮尖塔》的卡牌游戏。主要内容包括:1)获取游戏素材资源;2)导入xyframe框架工具集;3)实现手牌弯曲排列效果,通过样条曲线控制卡牌位置和旋转;4)设计可扩展的MVD卡牌系统架构,分离数据层(ScriptableObject存储)、模型层(业务逻辑)和视图层(显示控制)。文中提供了完整的代码实现,并展示了卡牌动态排列的GIF效果演示。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1429

抽取实体公共字段

通用字段填充

weixin_43637386的博客 467

2026 蓝牙技术趋势展望:信道探测、Auracast、高吞吐 HID 与 AI 融合引领行业变革

蓝牙技术2026年展望:信道探测、Auracast广播音频和AI融合将引领创新。蓝牙信道探测技术将实现亚米级精确定位,在工业资产追踪和汽车数字钥匙领域大显身手。Auracast广播音频将持续拓展公共场所应用,提升音频包容性体验。高数据吞吐量和超低延迟功能将支持AR/VR等新兴场景。AI与蓝牙的深度融合将推动可穿戴设备智能化发展,实现实时健康监测和个性化音频服务。蓝牙技术凭借其多功能性和创新力,正成为连接万物的关键技术,持续推动行业变革和生活品质提升。

专业开发者的博客,一个从事Android WiFi和蓝牙的工程师 113

20090422

继续研究mate框架,想在自己写的as类里面引用到mate框架中创建的实例,即引用cache里面保存的实例。在官方网站上有两个帖子,一个是讲通过objectBuilder这个标签来去掉singleton这个模式,由此引申出一些关于singleton这个模式优缺点的讨论。另一个帖子是讲如何添加自己创建的实例到mate框架中cache里面去,里面介绍了可能会在后续版本中添加一个新标签来允许自己添加实例

supsteven的专栏 455

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

mybatis-plus 多张表查询

autogenerator 自动代码生成器。分页查询,以及返回的数据。mybatis代码生成器。使用fill自动填充。

u011013840的博客 748

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Mybatisplus常用注解

1、@Data lombook注解(自动生成get set toString()方法) @Data @TableName(value = "user") public class Account { private Integer id; @TableField(value = "name") private String title; private Integer age; }  使用Data注解后,点击左侧的Struceure可以看到get、set和toString方

自知者明,知人者智 5641

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

如何实现Mybatis-plus的公共字段填充

Mybatisplus的公共字段填充是指,在进行数据库操作时,自动将公共字段(例如创建时间、修改时间、创建者、修改者等)的值填充到对应的实体对象中,从而避免手动填写这些字段带来的麻烦和错误。这个功能在实现上是通过在实体类中定义对应的公共字段,并在Mybatisplus的配置中设置相应的拦截器来实现的。公共字段填充可以大大简化代码编写,提高代码效率和准确性,特别是在大型系统中更为重要。简单来说就是在新增或者修改的时候为指定字段添加指定值。

m0_56853686的博客 2651

mybatisPlus属性自动填充配置之MetaObjectHandler接口实战

前言:在我们向数据库插入一条数据的时候,少不了一些向createTime、updateTime此类字段,每次插入的数据都要设置这些个值,很烦,通过实现MetaObjectHandler接口重写insertFill、updateFill方法可以帮你摆脱烦恼 本文概括MetaObjectHandler介绍1:编写MetaObjectHandler 实现类2:实体类上边加上@TableField(fill = FieldFill.INSERT_UPDATE)注意点小节代码链接 MetaObjectHandle.

风团团 3万+

MybatisPlus MetaObjectHandler 配置了没起作用

mybatis自动填充功能 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客: 全新的界面...

黎明的那道光 1万+

接口及方式实现重要编程思想 (dbutils中BeanHandler)

定义接口,便于功能扩展            重要编程思想A:.当程序不确实数据的处理方式时,或数据的处理方式需要用户指定时,则程序设计时,可提供接口供用户或其它程序处理。让使用者实现此接口并同时完善处理方式。(接口的多实现特性,导致可以设计多种处理方式)        interface ResultSetHandler{     public Object handler(ResultSet ...

dhzbkj的博客 882

Mybatis-Plus 3.4.0多租户的实现方案

使用背景 微服务matecloud希望支持saas的多租户的管理模式,mybatis plus正好已经考虑支持该模式,下面就简单说说其应用案例 多租户模式介绍 数据隔离有三种方案: 1、独立数据库:简单来说就是一个租户使用一个数据库,这种数据隔离级别最高,安全性最好,但是提高成本。 2、共享数据库、隔离数据架构:多租户使用同一个数据裤,但是每个租户对应一个Schema(数据库user)。- 3、共享数据库、共享数据架构:使用同一个数据库,同一个Schema,但是在表中增加了租户ID的字段,这种共享数据程度最

bufegar0的博客 7859

mybatis-plus配置自动填充

1.在需要自动填充的实体类属性上加上注解@TableField(fill = FieldFill.INSERT) 2.新建一个类实现元对象处理器接口并重写其方法 package com.wq.mybatisDemo.mateObject; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import org.apache.ibatis.reflection.MetaObject; import org.spring

weiqiang915的博客 846

Qt的元对象系统

Qt的主要成就之一就是使用了一种机制对C++进行了扩展,并且使用这种机制创建了独立的软件组件。这些组件可以绑定在一起,但任一个组件对于它所要连的组件的情况事先都一无所知。 这种机制称为元对象系统(mate-object system),它提供了关键的两项技术:信号槽以及内省(introspection)。内省功能对于实现信号槽是必需的,并且允许应用程序的开发人员在行时获得有关QObject子类的...

ingy 472

自定义MetaObjectHandler在微服务中的使用讨论

自定义MetaObjectHandler在微服务中的使用讨论 MetaObjectHandler是mybatis-plus提供的一个接口,用来定义填充实体对象某些属性在执行insert或者update操作时的默认值的策略。感觉对于像createDate和updateDate这样的属性非常好用。 使用方法 引入mybatis-plus依赖 实现MetaObjectHandler接口中的连个方法,一个是insert操作时的赋值策略,一个时update时的赋值策略,另外实现类要加@Component注解。 在需

shengzhijian5的博客 2499

MetaObjectHandler 自动填充

需要一个mybatis配置类 @Configuration public class MybatisConfig { @Bean public MetaObjectHandler metaObjectHandler() { return new MetaObjectHandler() { @Override public void insertFill(MetaObject metaObject) { .

qq_27480059的博客 928

Application初始化

FLEX生成的SWF运行的顺序是preloader->systemManager->FlexApplication started…然后才是preinitialize在所有的初始化之前触发,没有子组件的定义,但是可以引用组件的变量.、 initialize当所有子组件生成完成后触发,在这个时间点还没有组件被渲染出来. creationComplete组件定义完成并已经在显示

supsteven的专栏 2176
上一篇: 关于组件大小的一点经验
下一篇: 20090422
supsteven
博客等级 码龄20年 0粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值