PDEF Java生成器

pdef-java的Python项目详细描述


PDEF JavaBR/> Java语言代码生成器[PDEF编译器](http://GITHUB.COM/PDEF/PDEF)BR/>以及JSON格式和HTTP RPC的Java实现。
< BR/>要求
-
-Java 6 + .BR/> -代码生成器:[PDEF编译器1.2 +](http://GITHUB.COM/PDEF/PDEF),Pyt2.6或Python 3.3 + .BR/>安装< BR/> -< BR/> -代码生成器:BR/>"BASH < BR/> $PDEF Java
"
BR/>或[下载](HTTPS://GITHUBCOM/PDEF/PDFE-JAVA/RAPP)发布,
解压,并在"生成器"目录运行:
` BASH$Python Stupp.Py安装< BR/>‘XML’BR/> & lt;Brime/gt;Io.PDEF& lt;/GlutPID & gt;Br//>;< BR>>;

<;依赖项>;
<;groupid>;io.pdef<;/groupid>;
<;artifactid>;pdef servlet<;/artifactid>;
<;version>;1.2.0<;/version>;
<;/依赖项>;
`````

代码生成
----
包路径或编译器的URL: $pDEFC生成Java HTTPS://RW.GITHUBCOM/PDEF/PDFE/1.2/ActhPult/Word .YAML\BR/>——外目标/生成源
` BR/>< BR> >生成器使用绝对模块名("包·模块")作为Java包名。BR/>也可以通过"-前缀"参数添加命名空间类前缀。
'Bash
$pDEFC生成Java HTTPS://RAW.GITHUBCOM/PDEF/PDFE/1.2/ActhPult/Word .YAML\BR/>前缀世界:W\BR/>模块世界:COM.MyCype.world\
--模块world.space:com.mycompany.common\
--输出目标/生成源
`````

消息
----
生成的消息实现"equals"、"hashcode"、复制构造函数、返回消息深层副本的"copy"方法
,以及合并方法。这些消息不是线程安全的。BR/>这些例子是基于[PDPSF示例包](http://Github.com/pDEF/pDEF/树/ 1.1 /示例)。消息BR/> BR/>消息具有流畅的接口。
‘JavaBR/>人类新人类=(BR/>)SETID(1)
StNeNT("约翰")
SETSEX(性别,男性)
.setcontain(continentname.asia)


human copy0=human.copy();
human copy1=new human(human);


assert human.equals(copy0);
assert human.equals(copy1);
`````

消息支持合并哪些深度复制将字段从源消息复制到目标消息:
```
human human=new human()
.setid(1)
.setname("john")
.setsex(sex.male)
.setcontain(continentname.asia)


human another=new human();
another.merge(human);

assert another.getname().equals(human.getname());
``````

NULL字段的null安全和返回默认值。如果NULL字段是一个集合或一个消息,那么它在第一次访问时被初始化为一个空的对象。br/>assert human.getid()==0;
assert human.getname().equals("";

/特殊方法允许检查字段是否存在。
assert human.hasid()==false;
assert human.hasname()==false;

///集合和消息获取程序将空字段初始化为空对象。
c大陆大陆=新大陆();
断言大陆.hashumans()==false;

/集合初始化为空集合。
大陆.gethumans().add(human);
断言大陆.gethumans().equals(arrays.aslist(human));
断言大陆.hashumans();

/清除字段.
大陆.clearname().clearHumans();
````

——
json序列化是基于[Jackson分析器](http://gthub.com /FasestXML/Jackson核)
(不是数据绑定包):
‘JavaBR/> /到JSON兼容的映射。打印的json字符串。
json=human.tojson(true);

/写入输出流。
output stream stream=getoutput();
human.tojson(stream,true);//indent=true/false。

/写入打印写入程序。
printwiter writer=getwriter();
human.tojson(writer,true);
```
< BR/>句法分析:从JSON兼容映射(仅JSON原语和集合)。BR/> MAP& LT;String,Objult& Gt;MAP=新Hasmap and lt;&;
MAP.PUT("姓名","约翰");OBMAP(MAP);Abjr/Authman Hoo.GETNAMEL();
BR/> //来自JSON字符串:
字符串JSON= GETJSONE();人类人1=人类.OrjJSON(JSON);< BR/>< BR/> //合并用于解析输入流和读取器。
` BR/>< BR/> >使用"JsonFormat"来读/写其他PDEF数据类型:
` `` Java
/将int转换为json字符串。
string json=jsonformat.write(descriptors.int32,123);

/将整数列表写入输出流。
output stream output=getoutput();
listdescriptor<;integer>;listdescriptor=descriptors.list(descriptors.int32);
jsonformat.write(output,listdescriptor,arrays.aslist(1,2,3));

///从输入流中读取消息。
input stream input=getinput();
human=jsonformat.read(human.descriptor,input);
`````

http-rpc客户端阅读安全。< BR/>< BR/>基于httpullCluts.< BR/>‘JavaBR/> RPClient & lt;Word & Gt;Client =新RPClient & lt;Word & Gt;(Word .Deultor,http://Simult/COM/Works/[)];
WorlWork=客户端.Pro();
BR/> / /执行远程方法。ANS= Work.Huffs();//限制=10,偏移=0。< BR/> BR/> / /执行空隙远程方法。
Word。br/>```

使用自定义的"rpc session"创建rpc客户端:
````
rpcsession session=createcustomsession();
rpc client<;world>;client=new rpcclient<;world>;(world.descriptor,session);
world world=client.proxy();
``````

csession session=new httpurlconnectionrpcsession("http://example.com/world/");
rpcclient<;world>;client=new rpcclient<;world>;(world.descriptor,session);
invoker invoker=client;
world world=invocationproxy.create(world.descriptor,invoker);
````
添加自定义HEAdS或其他HTTP逻辑子类"httpUlClulnRPCIsAcess",
或实现自定义的RPCScript。
BR/> HTTP RPC Server
---------BR/>创建HTTP RPC处理程序:
‘JavaBR/> WorkWorks= GETWorkDimPlices();RbCHANDANL&LT;Word & Gt;HANDLRER =新RPCHANDANL&LT;world>;(world.descriptor,world);
rpcservlet<;world>;servlet=new rpcservlet<;world>;(handler);
///将servlet传递到您的servlet容器中,
/或作为委托包装在另一个servlet中。
`````

需要获取新的服务实例时,请使用自定义提供程序或每一个请求:
‘javaBr/>提供者:世界& gt;提供者= GETWorkPosivor();< RPCHANDANLL&LT;Word & Gt;HANDLRER =新RPCHANDANL&LT;Word & Gt;(Word .描述符,提供者);
` BR/>< BR/>原始null参数将自动转换为默认值。ans实现humans{
public list<;world.human>;all(int limit,int offset){
//null limit和offset设置为0。
返回null;
}
}
````


将一个"rpcservlet"包装在另一个servlet中作为委托,以添加自定义头和自定义http
逻辑(身份验证、速率限制等)。

"rpchandler"接受一个类似"rpcrequest"的简单bean并返回一个'rpcresult',
允许与自定义http传输(如netty)一起使用。



license and copyright
----
版权:2013 Ivan Korobkov<;Ivan.Korobkov@gmail.com>;

除非符合许可证的要求,否则不要使用此文件。
您可以在http://www.apache.org/licenses/license-2.0

ASIS,
无任何明示或暗示的保证或条件。
请参阅许可证,了解管辖许可的特定语言和许可证下的限制。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何拆分字符串(基于各种分隔符),但不保留空格?   解析。Json格式的txt文件和knime中的java   java Spring rest api为什么在rest api调用的响应中更改了数据类型   升华文本3抛出java。lang.ClassNotFoundException,而记事本++不存在   java Android指纹扫描仪在尝试5次后停止工作?   java Android如何设置精确的重复报警?   java如何使用HTTPGET connect为access API输入用户名和密码   java当测试报告显示没有测试失败时,Gradle为什么说“有失败的测试”?   用Gson实现java获取响应   MapReduce程序中函数错误的java不可映射参数   java spring安全性不符合自动代理的条件   java GWT使用异步回调进行同步/阻塞调用   java奇怪的类数组问题无法在jsp中显示   如何在java中使用PrinterJob使用epl打印条形码   java如何在JTable中居中单元格   将Java Mockito测试转换为Kotlin   html Java正则表达式模式匹配到多个相同标记   testCompile中缺少java Gradle(Android)多项目依赖项   在输入提示后输入字符串时发生java FileNotFoundException