小编Jer*_*oss的帖子

编写编程语言的代码格式化工具

我正在研究为Apex语言编写代码格式化工具的可行性,Java上的Salesforce.com变体,以及基于标记的标记语言perhams VisualForce.

我不知道从哪里开始这个,除了感觉/知道从头开始编写语言解析器可能不是最好的方法.

我对Antlr是什么以及它做了什么有一个相当薄的把握,但从概念上讲,我想象一个人可以"训练"antlr来理解Apex的语法.然后,我可以在数据结构(AST?)中获得代码的结构化版本,然后我可以走,以生成格式正确的代码.

这是正确的概念吗?Antlr是一个可以做到这一点的工具吗?有关此的简要概要的任何链接?我正在寻找投资这几天的任务,而不是几个月,我不确定它是否甚至模糊地实现.

parsing antlr salesforce force.com lexer

8
推荐指数
1
解决办法
4084
查看次数

如何实现此REST API并保持DRY?

我正在构建一个REST API,用于在数据库上执行CRUD操作.我的暂定堆栈是Jersey,Spring,Spring Data,JPA和Hibernate.我也使用jersey-spring来提供资源类的实例,以便Spring可以自动装配它们.

API将支持数十个表上的CRUD操作,伴随着由Spring Data存储库支持的JPA实体和DAO.DAO接口和相关DTO系列看起来像这样:

public interface CrudService<T extends PersistedObject> { /* ... */  }
public interface PersonService extends CrudService<Person> { /* ... */  }

public class PersistedObject { /* ... */ }
public class Person extends PersistedObject { /* ... */ }
Run Code Online (Sandbox Code Playgroud)

这是JAX-RS资源类的简化版本:

@Component
@Path("/people")
public class PersonResource {

    @Autowired
    private PersonService personService;

    @Path("/{id}")
    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public Person get(@PathParam("id") String id) {
        return personService.findOne(Long.valueOf(id));
    }

    @POST
    @Consumes(MediaType.APPLICATION_JSON)
    public Response post(Person person) {
        personService.save(person);
        return Response.created().build();
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是几十个资源类的其余部分看起来几乎相同,唯一的区别是它们在不同的PersistedObject子类及其相应的DAO上运行.我想通过拥有一个可以支持所有实体类型的CRUD操作的资源类来保持DRY,可能是通过多态和巧妙注入DAO.它可能看起来像这样:

@Component …
Run Code Online (Sandbox Code Playgroud)

java spring jax-rs jersey spring-data

7
推荐指数
1
解决办法
816
查看次数

Maven:在一个阶段中将插件的多次执行与其他插件执行交错

我需要在预集成测试阶段执行以下操作:

  1. SQL-Maven的插件:执行
  2. 码头 - Maven的插件:部署战
  3. SQL-Maven的插件:执行

步骤1和3具有不同的配置.我尝试将1和3定义为单独的插件元素,但我相信Maven只是将它们合并为一个插件定义,从而导致执行顺序为1,3,2.

我需要一些方法来按上面定义的顺序执行它们.

maven

6
推荐指数
1
解决办法
252
查看次数

Can Enunciate为处理泛型类型的API生成文档?

给定一个抽象的,通用的Resource类和具体实现:

public abstract class AbstractResource<T> {

    @Autowired
    private SomeService<T> service;

    @Path("/{id}")
    @GET
    public T get(@PathParam("id") String id) {
        return service.get(id);
    }
}

@Path("/people")
public class PersonResource extends AbstractResource<Person> { }
Run Code Online (Sandbox Code Playgroud)

看来,在生成文档时PersonResource,Enunciate没有拿起get()返回a 的事实Person.

  1. Person未列在"数据模型">"数据类型"部分中.

  2. 在GET部分下,Response Body将元素类型显示为"(custom)".

这些问题是因为使用泛型作为实体类型吗?有没有办法提示发音真实类型是什么,以便正确生成文档?

在此输入图像描述

java rest jax-rs enunciate

5
推荐指数
1
解决办法
960
查看次数

salesforce.com Metadata API*不支持哪些组件类型?

我正在寻找salesforce.com Metadata API不支持的组件类型列表.作为一个例子,我不相信它支持分配规则.

salesforce的某个人不久前发布了一个列表,但我找不到它,也不知道它是否已更新.

salesforce force.com

4
推荐指数
1
解决办法
983
查看次数

Salesforce:获取“已关闭”机会阶段的列表

在 Apex 中,我需要获取已关闭的机会阶段的列表。这些阶段在设置中属于“结束/获胜”或“结束/失败”类型。

我可以使用以下方法获取舞台名称列表:

Opportunity.StageName.getDescribe().getPicklistValues()

这会返回一个对象列表Schema.PicklistEntry,但它们不指示阶段的类型。

salesforce apex-code

3
推荐指数
1
解决办法
3941
查看次数

如何在Visualforce页面上显示聚合SOQL查询的结果?

我是Visualforce的新手.

我在这里看这个页面:http://force.siddheshkabe.co.in/2010/11/displaying-aggregate-result-on.html

所以,当我将此代码添加到VisualForce页面时:

  AggregateResult[] groupedResults  = [SELECT Name, Days__c FROM Contact WHERE Days__c != ];

  for (AggregateResult ar : groupedResults)  {
    System.debug('Name: ' + ar.get('Name') + '\nDays Taken : ' + ar.get('Days__c') + '\n');
Run Code Online (Sandbox Code Playgroud)

但它只是打印代码而不是执行它.我该怎么办?谢谢你的指导.

salesforce soql visualforce

2
推荐指数
1
解决办法
2万
查看次数